这是本节的多页打印视图。
.
返回本页常规视图.
任务
面向目标的操作指南,如备份、恢复、部署等具体任务。
任务文档提供面向目标的具体操作指南。
如何使用
每个任务指南专注于完成一个具体目标:
- 问题导向:从你想要实现的目标出发
- 逐步操作:清晰的步骤说明
- 实战场景:真实世界的应用场景
主题
1 - 备份
了解如何在 Piglet Run 中备份数据库和文件。
概述
Piglet Run 提供多种备份方式来保护您的数据:
- 数据库备份:PostgreSQL 全量和增量备份
- 文件备份:用户文件和配置
- 快照:完整系统状态捕获
快速备份
使用单个命令创建完整备份:
备份数据库
全量数据库备份
增量备份
pig backup db --incremental
备份指定数据库
备份文件
备份用户文件
备份配置
定时备份
在 /etc/piglet/backup.yml 中配置自动备份:
backup:
schedule: "0 2 * * *" # 每天凌晨 2 点
retention: 7 # 保留 7 天
type: incremental
备份存储
备份存储位置:
下一步
2 - 恢复
了解如何从备份或快照恢复数据库和文件。
概述
Piglet Run 支持多种恢复场景:
- 时间点恢复:恢复到任意时间点
- 全量恢复:从完整备份恢复
- 选择性恢复:恢复特定数据库或文件
快速恢复
从最新备份恢复:
恢复数据库
列出可用备份
恢复全量备份
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
克隆选项
使用场景
- 开发:克隆生产环境用于本地开发
- 测试:创建隔离的测试环境
- 分析:克隆用于报表而不影响生产环境
下一步
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 ./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 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 --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
证书管理
查看证书
检查过期时间
续期证书
配置
/etc/piglet/ssl.yml 中的 SSL 设置:
下一步
6 - 域名
了解如何为 Piglet Run 服务设置自定义域名。
概述
为以下内容配置自定义域名:
- 主应用:您的主域名
- 子域名:服务专用子域名
- 多域名:支持多个域名
快速设置
添加自定义域名:
pig domain add example.com
DNS 配置
所需 DNS 记录
将您的域名指向 Piglet Run:
使用 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 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
资源限制
查看当前资源分配:
示例输出:
服务 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
迁移选项
验证
验证迁移:
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 仪表盘
可用仪表盘
访问仪表盘
# 默认凭据
URL: http://<ip>/ui
用户: admin
密码: (安装时显示)
设置告警
启用邮件告警
启用 Slack 告警
pig alert slack --webhook https://hooks.slack.com/services/...
启用 Webhook 告警
pig alert webhook --url https://api.example.com/alerts
告警规则
查看告警规则
添加自定义告警
pig alert add \
--name "High CPU" \
--condition "cpu_usage > 80" \
--duration 5m \
--severity warning
默认告警
配置
/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 --version 2.5.0
试运行
升级 PostgreSQL
检查兼容版本
升级数据库版本
pig upgrade pg --version 17
带完整备份
pig upgrade pg --version 17 --backup
升级前准备
-
创建备份
-
检查兼容性
pig upgrade check --verbose
-
查看发布说明
回滚
如果升级失败:
从备份恢复
pig restore --backup pre-upgrade
回滚到之前版本
升级历史
查看升级历史:
示例输出:
版本 日期 状态
------- ---------- -------
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
下一步