不止热门角色,我们为你扩展了更多细分角色分类,覆盖职场提升、商业增长、内容创作、学习规划等多元场景。精准匹配不同目标,让每一次生成都更有方向、更高命中率。
立即探索更多角色分类,找到属于你的增长加速器。
备份与整库恢复方案概述(PostgreSQL,数据库:finance_prod_pgsql)
目标
方案选型与原则
一、备份架构与配置
二、自动化脚本
export PGDATA=${PGDATA:-/var/lib/postgresql/data} export WALG_S3_PREFIX="s3://backup/prod/finance-pg"
if [ ! -d /etc/wal-g/env ]; then echo "Missing /etc/wal-g/env" >&2 exit 1 fi
envdir /etc/wal-g/env wal-g backup-push "$PGDATA"
date -u +"%Y-%m-%dT%H:%M:%SZ Backup completed" >> /var/log/pg/backup.log
envdir /etc/wal-g/env wal-g delete retain 30 --confirm
CUTOFF="$(date -u -d '-7 days' +'%Y-%m-%dT%H:%M:%SZ')" envdir /etc/wal-g/env wal-g delete before --wal --date "$CUTOFF" --confirm
envdir /etc/wal-g/env wal-g delete target "LATEST" --find-full --confirm
三、S3生命周期与冷归档
建议对S3 Bucket: backup 配置Lifecycle,前缀:prod/finance-pg/。
示例配置(lifecycle.json): { "Rules": [ { "ID": "BaseBackups-Transition-After-30Days", "Filter": { "Prefix": "prod/finance-pg/basebackups_005/" }, "Status": "Enabled", "Transitions": [ { "Days": 30, "StorageClass": "GLACIER_IR" } ], "Expiration": { "Days": 120 } }, { "ID": "WAL-Expire-After-7Days", "Filter": { "Prefix": "prod/finance-pg/wal_005/" }, "Status": "Enabled", "Expiration": { "Days": 7 } } ] }
应用命令:
aws s3api put-bucket-lifecycle-configuration
--bucket backup
--lifecycle-configuration file://lifecycle.json
说明:
四、整库恢复方案(物理全库)
目标:将 finance_prod_pgsql 所在的PostgreSQL集群恢复到最新可用状态或指定备份时间点。物理恢复为“整集群”(包含所有数据库与全局对象),非单库级恢复。
前置条件
恢复步骤(到最新可用状态)
拉取最近的全量备份 sudo -u postgres bash -c ' export PGDATA=/var/lib/postgresql/data envdir /etc/wal-g/env wal-g backup-fetch "$PGDATA" LATEST '
配置恢复
启动实例并重放WAL systemctl start postgresql 观察日志,等待“database system is ready to accept connections”。
验证
恢复到备份时间点(不重放后续WAL)
注意事项
运维与监控
安全与合规
概述目标 为数据库 ecommerce_mysql_primary 设计以增量备份为主的物理备份方案,并提供覆盖至时间点恢复(Point-in-Time Recovery, PITR)的恢复流程。备份存储位置为 NAS:/mnt/backup/mysql/ecommerce。保留策略为:每小时增量保留 7 天,binlog 保留 14 天,月度全量保留 90 天。自动化脚本不要求,以下描述以手工执行为基准。
前提与依赖
备份策略与目录规划
类型与频率
目录结构(示例)
备份执行流程(手工)
时间点恢复(PITR)流程 目标:将 ecommerce_mysql_primary 恢复至指定时间戳 T(例如 2025-01-15 14:37:00)。
步骤
保留策略与可恢复性影响
运维要点
总结 该方案在 NAS:/mnt/backup/mysql/ecommerce 上维护月度全量与每小时增量,通过 binlog 回放实现时间点恢复。严格按照 prepare、copy-back、binlog 回放的顺序执行可实现精确的 PITR。需要重点关注保留周期之间的匹配关系:若保留的 binlog 周期短于最近全量与目标时间的间隔,PITR 将不可达。为确保 14 天的时间点恢复能力,应调整全量频率或延长 binlog 保留周期。
目标 为 ClickHouse 数据库 dw_clickhouse_analytics 定义差异备份方案与灾难恢复(DR)恢复方案。备份存储位置为 ObjectStorage://region2/dw-clickhouse;需要自动化脚本;数据保留策略为:周全量保留 8 周、日差异保留 21 天、异地副本保留 180 天。
前提与假设
备份方案概述
使用 clickhouse-client 执行 SQL BACKUP;通过 cron 或调度器触发脚本。
周全量备份示例(命名以当天日期为例): BACKUP DATABASE dw_clickhouse_analytics ON CLUSTER cluster_analytics TO Disk('objstore_region2', 'full/20250101') SETTINGS overwrite_existing_backup = 1;
日差异备份示例(相对于最近一次全量备份,例如 full/20241229): BACKUP DATABASE dw_clickhouse_analytics ON CLUSTER cluster_analytics TO Disk('objstore_region2', 'diff/20250102') SETTINGS base_backup = 'Disk('objstore_region2', 'full/20241229')', overwrite_existing_backup = 1;
说明:
自动化脚本概要
示例(伪代码): #!/usr/bin/env bash set -euo pipefail DATE=$(date +%Y%m%d) TARGET="full/${DATE}" clickhouse-client --query " BACKUP DATABASE dw_clickhouse_analytics ON CLUSTER cluster_analytics TO Disk('objstore_region2', '${TARGET}') SETTINGS overwrite_existing_backup = 1; " echo "$(date -Is) FULL ${TARGET}" >> /var/log/clickhouse/backups.log
示例(伪代码): #!/usr/bin/env bash set -euo pipefail DATE=$(date +%Y%m%d) TARGET="diff/${DATE}"
BASE=$(tail -n 1 /var/lib/clickhouse/backup_index_full.txt | awk '{print $3}') if [[ -z "${BASE}" ]]; then echo "No base full backup found"; exit 1 fi clickhouse-client --query " BACKUP DATABASE dw_clickhouse_analytics ON CLUSTER cluster_analytics TO Disk('objstore_region2', '${TARGET}') SETTINGS base_backup = 'Disk('objstore_region2', '${BASE}')', overwrite_existing_backup = 1; " echo "$(date -Is) DIFF ${TARGET} BASE ${BASE}" >> /var/log/clickhouse/backups.log
灾难恢复(DR)恢复方案 目标:在主集群不可用或数据损坏时,恢复到最近可用的差异备份时点。
注意:
运维与验证
结果
用一条可复用的高效提示词,快速生成“针对某个数据库+特定恢复场景”的专业备份与恢复方案。输出可直接用于评审与落地,涵盖:备份策略设计(全量/增量/日志/保留周期)、恢复流程与操作清单、演练与监控安排、风险与校验步骤、合规与成本优化建议,并支持中英等多语言。帮助团队在更短时间内形成标准化文档与可执行SOP,降低宕机损失、减少人力投入、提高审计通过率与跨团队协作效率。