跳转到主要内容

这是本节的多页打印视图。 .

返回本页常规视图.

任务

面向目标的操作指南,如备份、恢复、部署等具体任务。

任务文档提供面向目标的具体操作指南。

如何使用

每个任务指南专注于完成一个具体目标:

  • 问题导向:从你想要实现的目标出发
  • 逐步操作:清晰的步骤说明
  • 实战场景:真实世界的应用场景

主题

主题 描述
备份 备份数据库和文件
恢复 从备份或快照恢复
克隆 克隆数据库或环境
部署 部署 Web 应用
SSL 配置 SSL 证书
域名 设置自定义域名
扩容 扩展或缩减资源
迁移 从其他系统迁移数据
监控 设置告警和监控
升级 升级 Piglet Run

1 - 备份

了解如何在 Piglet Run 中备份数据库和文件。

概述

Piglet Run 提供多种备份方式来保护您的数据:

  • 数据库备份:PostgreSQL 全量和增量备份
  • 文件备份:用户文件和配置
  • 快照:完整系统状态捕获

快速备份

使用单个命令创建完整备份:

pig backup create

备份数据库

全量数据库备份

pig backup db --full

增量备份

pig backup db --incremental

备份指定数据库

pig backup db mydb

备份文件

备份用户文件

pig backup files

备份配置

pig backup config

定时备份

/etc/piglet/backup.yml 中配置自动备份:

backup:
  schedule: "0 2 * * *"  # 每天凌晨 2 点
  retention: 7           # 保留 7 天
  type: incremental

备份存储

备份存储位置:

类型 位置
数据库 /data/backup/postgres/
文件 /data/backup/files/
配置 /data/backup/config/

下一步

2 - 恢复

了解如何从备份或快照恢复数据库和文件。

概述

Piglet Run 支持多种恢复场景:

  • 时间点恢复:恢复到任意时间点
  • 全量恢复:从完整备份恢复
  • 选择性恢复:恢复特定数据库或文件

快速恢复

从最新备份恢复:

pig restore latest

恢复数据库

列出可用备份

pig backup list

恢复全量备份

pig restore db --backup 2024-01-15

时间点恢复

pig restore db --time "2024-01-15 14:30:00"

恢复指定数据库

pig restore db mydb --backup 2024-01-15

恢复文件

恢复所有文件

pig restore files --backup 2024-01-15

恢复指定目录

pig restore files /home/dba/projects --backup 2024-01-15

从快照恢复

pig snapshot restore snap-20240115

验证

恢复后验证数据完整性:

pig verify db
pig verify files

下一步

3 - 克隆

了解如何在 Piglet Run 中克隆数据库和环境。

概述

克隆允许您创建以下内容的精确副本:

  • 数据库:为测试或开发克隆数据库
  • 环境:克隆整个 Piglet Run 实例
  • 仅结构:克隆结构而不包含数据

快速克隆

即时克隆数据库:

pig clone db mydb mydb_copy

克隆数据库

完整克隆

pig clone db production development

仅结构

pig clone db production development --schema-only

带数据过滤的克隆

pig clone db production development --filter "created_at > '2024-01-01'"

克隆环境

创建环境克隆

pig clone env --name staging

克隆到远程服务器

pig clone env --target user@remote-server

从快照克隆

pig clone snapshot snap-20240115 --name dev-clone

克隆选项

选项 描述
--schema-only 仅克隆结构不含数据
--no-owner 跳过所有权信息
--no-privileges 跳过权限信息
--parallel N 使用 N 个并行任务

使用场景

  • 开发:克隆生产环境用于本地开发
  • 测试:创建隔离的测试环境
  • 分析:克隆用于报表而不影响生产环境

下一步

4 - 部署

了解如何在 Piglet Run 上部署 Web 应用。

概述

Piglet Run 支持部署多种 Web 应用:

  • 静态站点:HTML、CSS、JavaScript
  • Node.js:Express、Next.js、React
  • Python:Flask、Django、FastAPI
  • PHP:Laravel、WordPress

快速部署

部署静态站点:

pig deploy ./my-site

部署静态站点

从本地目录

pig deploy ./dist --name my-site

从 Git 仓库

pig deploy https://github.com/user/repo --name my-site

部署 Node.js 应用

基本部署

cd my-node-app
pig deploy --type nodejs

自定义端口

pig deploy --type nodejs --port 3000

配置

在项目中创建 piglet.yml

type: nodejs
entry: server.js
port: 3000
env:
  NODE_ENV: production

部署 Python 应用

Flask 应用

pig deploy --type python --framework flask

Django 应用

pig deploy --type python --framework django

部署管理

列出部署

pig deploy list

查看日志

pig deploy logs my-site

重启应用

pig deploy restart my-site

移除部署

pig deploy remove my-site

下一步

5 - SSL

了解如何配置 SSL 证书以启用安全的 HTTPS 连接。

概述

Piglet Run 支持多种 SSL 证书选项:

  • Let’s Encrypt:免费自动证书
  • 自签名:用于开发和测试
  • 自定义:使用您自己的证书

快速设置

使用 Let’s Encrypt 启用 SSL:

pig ssl enable --domain example.com

Let’s Encrypt 证书

为域名启用

pig ssl letsencrypt --domain example.com --email [email protected]

多个域名

pig ssl letsencrypt --domain example.com --domain www.example.com

通配符证书

pig ssl letsencrypt --domain "*.example.com" --dns cloudflare

自签名证书

生成自签名证书

pig ssl self-signed --domain localhost

用于开发

pig ssl self-signed --domain dev.local --days 365

自定义证书

安装自定义证书

pig ssl install --cert /path/to/cert.pem --key /path/to/key.pem

包含证书链

pig ssl install \
  --cert /path/to/cert.pem \
  --key /path/to/key.pem \
  --chain /path/to/chain.pem

证书管理

查看证书

pig ssl list

检查过期时间

pig ssl status

续期证书

pig ssl renew

配置

/etc/piglet/ssl.yml 中的 SSL 设置:

ssl:
  provider: letsencrypt
  email: [email protected]
  auto_renew: true
  renew_days: 30

下一步

6 - 域名

了解如何为 Piglet Run 服务设置自定义域名。

概述

为以下内容配置自定义域名:

  • 主应用:您的主域名
  • 子域名:服务专用子域名
  • 多域名:支持多个域名

快速设置

添加自定义域名:

pig domain add example.com

DNS 配置

所需 DNS 记录

将您的域名指向 Piglet Run:

类型 名称
A @ 您的服务器 IP
A www 您的服务器 IP
CNAME code @
CNAME jupyter @

使用 Cloudflare

pig domain add example.com --dns cloudflare --api-key YOUR_API_KEY

添加自定义域名

主域名

pig domain add example.com --primary

服务子域名

pig domain add code.example.com --service vscode
pig domain add jupyter.example.com --service jupyter

域名管理

列出域名

pig domain list

移除域名

pig domain remove old-domain.com

设置主域名

pig domain primary example.com

配置

/etc/piglet/domains.yml 中的域名设置:

domains:
  primary: example.com
  aliases:
    - www.example.com
  services:
    vscode: code.example.com
    jupyter: jupyter.example.com
    grafana: monitor.example.com

验证域名

检查域名配置:

pig domain verify example.com

下一步

7 - 扩容

了解如何扩展或缩减 Piglet Run 资源。

概述

Piglet Run 支持扩展:

  • 数据库:调整 PostgreSQL 资源
  • 存储:扩展磁盘容量
  • 服务:扩展服务资源

快速扩容

扩展数据库资源:

pig scale db --cpu 4 --memory 8G

扩展数据库

增加资源

pig scale db --cpu 4 --memory 16G

调整连接限制

pig scale db --max-connections 200

配置共享缓冲区

pig scale db --shared-buffers 4G

扩展存储

扩展磁盘

pig scale storage --size 100G

添加存储卷

pig scale storage add --mount /data/extra --size 50G

扩展服务

VS Code 服务器

pig scale service vscode --memory 4G

JupyterLab

pig scale service jupyter --memory 8G

资源限制

查看当前资源分配:

pig scale status

示例输出:

服务        CPU    内存     存储
---------   ----   ------   -------
PostgreSQL  2      4G       20G
VS Code     1      2G       -
Jupyter     1      2G       -
Nginx       0.5    512M     -

配置

/etc/piglet/resources.yml 中的扩展设置:

resources:
  postgres:
    cpu: 2
    memory: 4G
    storage: 20G
  vscode:
    cpu: 1
    memory: 2G
  jupyter:
    cpu: 1
    memory: 2G

最佳实践

  • 扩展前监控资源使用情况
  • 逐步扩展以避免中断
  • 先在开发环境测试更改

下一步

8 - 迁移

了解如何从其他系统迁移数据到 Piglet Run。

概述

Piglet Run 支持从以下系统迁移:

  • 其他 PostgreSQL:从现有 PostgreSQL 实例迁移
  • MySQL/MariaDB:从 MySQL 转换并迁移
  • 云数据库:AWS RDS、Google Cloud SQL、Azure Database
  • 文件:从 SQL 转储或 CSV 文件导入

快速迁移

从另一个 PostgreSQL 迁移:

pig migrate postgres://user:pass@source-host/dbname

从 PostgreSQL 迁移

直接连接

pig migrate pg \
  --host source.example.com \
  --port 5432 \
  --user migrate_user \
  --database production

从 pg_dump 文件

pig migrate import backup.sql

仅结构

pig migrate pg --host source.example.com --schema-only

从 MySQL 迁移

直接迁移

pig migrate mysql \
  --host mysql.example.com \
  --user migrate_user \
  --database myapp

带类型映射

pig migrate mysql --host source --type-map mysql-to-pg.yml

从云迁移

AWS RDS

pig migrate rds \
  --instance mydb-instance \
  --region us-west-2 \
  --profile aws-profile

Google Cloud SQL

pig migrate cloudsql \
  --instance myproject:region:instance \
  --credentials /path/to/credentials.json

导入文件

SQL 转储

pig migrate import dump.sql --database mydb

CSV 文件

pig migrate csv data.csv --table users --database mydb

多个 CSV 文件

pig migrate csv ./data/ --database mydb

迁移选项

选项 描述
--schema-only 仅迁移结构
--data-only 仅迁移数据
--no-owner 跳过所有权
--parallel N 并行任务数
--exclude TABLE 排除表

验证

验证迁移:

pig migrate verify --source postgres://source/db --target postgres://target/db

下一步

9 - 监控

了解如何为 Piglet Run 实例设置告警和监控。

概述

Piglet Run 包含全面的监控功能:

  • Grafana 仪表盘:可视化监控
  • 告警:可配置的告警
  • 指标:基于 Prometheus 的指标
  • 日志:集中式日志

快速设置

访问监控仪表盘:

pig monitor open
# 在 http://<ip>/ui 打开 Grafana

Grafana 仪表盘

可用仪表盘

仪表盘 描述
Overview 系统概览和健康状态
PostgreSQL 数据库性能指标
Node 服务器资源使用
Nginx Web 服务器统计

访问仪表盘

# 默认凭据
URL: http://<ip>/ui
用户: admin
密码: (安装时显示)

设置告警

启用邮件告警

pig alert email --to [email protected] --smtp smtp.example.com

启用 Slack 告警

pig alert slack --webhook https://hooks.slack.com/services/...

启用 Webhook 告警

pig alert webhook --url https://api.example.com/alerts

告警规则

查看告警规则

pig alert list

添加自定义告警

pig alert add \
  --name "High CPU" \
  --condition "cpu_usage > 80" \
  --duration 5m \
  --severity warning

默认告警

告警 条件 严重级别
CPU 过高 > 80% 持续 5 分钟 警告
内存过高 > 90% 持续 5 分钟 警告
磁盘满 > 85% 严重
数据库宕机 连接失败 严重
复制延迟 > 1 秒 警告

配置

/etc/piglet/alerts.yml 中的告警配置:

alerts:
  email:
    enabled: true
    to: [email protected]
    smtp:
      host: smtp.example.com
      port: 587
  slack:
    enabled: false
    webhook: ""
  rules:
    - name: high_cpu
      expr: cpu_usage > 80
      for: 5m
      severity: warning

查看日志

# 所有服务日志
pig logs

# 特定服务
pig logs postgres
pig logs nginx

下一步

10 - 升级

了解如何升级 Piglet Run 安装。

概述

Piglet Run 升级包括:

  • 小版本更新:Bug 修复和安全补丁
  • 大版本升级:新功能和改进
  • PostgreSQL 升级:数据库版本升级

快速升级

升级到最新版本:

pig upgrade

检查更新

查看当前版本

pig version

检查可用更新

pig upgrade check

执行升级

标准升级

pig upgrade --backup

升级到特定版本

pig upgrade --version 2.5.0

试运行

pig upgrade --dry-run

升级 PostgreSQL

检查兼容版本

pig upgrade pg --list

升级数据库版本

pig upgrade pg --version 17

带完整备份

pig upgrade pg --version 17 --backup

升级前准备

  1. 创建备份

    pig backup create --full
  2. 检查兼容性

    pig upgrade check --verbose
  3. 查看发布说明

    pig upgrade notes

回滚

如果升级失败:

从备份恢复

pig restore --backup pre-upgrade

回滚到之前版本

pig upgrade rollback

升级历史

查看升级历史:

pig upgrade history

示例输出:

版本       日期         状态
-------    ----------   -------
2.5.0      2024-01-15   当前
2.4.1      2024-01-01   之前
2.4.0      2023-12-15   已归档

配置

/etc/piglet/upgrade.yml 中的升级设置:

upgrade:
  auto_backup: true
  notify: true
  channel: stable  # stable, beta, nightly

下一步