Runbook

MySQL 备份和恢复 Runbook

用于上线前备份、迁移前保护、定期备份和恢复演练。

怎么执行这份 Runbook

先检查前置条件,再按命令块执行。任何命令都要根据客户环境替换域名、路径、服务名和数据库名,不要复制示例里的占位值直接跑。

部署完成后必须做验证;验证不过就按回滚路径退回,并在交接记录里写清原因。

执行命令

命令是模板,不含真实密钥。执行前必须替换项目名、路径、域名、服务名和数据库名。

生成备份

mkdir -p /opt/backups/mysql
mysqldump --single-transaction --routines --triggers database_name > /opt/backups/mysql/database_name-$(date +%F-%H%M).sql

压缩和校验

gzip /opt/backups/mysql/database_name-YYYY-MM-DD-HHMM.sql
ls -lh /opt/backups/mysql
sha256sum /opt/backups/mysql/database_name-YYYY-MM-DD-HHMM.sql.gz

恢复演练

mysql -e "CREATE DATABASE restore_test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
gunzip -c backup.sql.gz | mysql restore_test

前置条件

数据库名、账号权限、主机位置和备份目录已确认。
备份账号只授予必要权限,不使用应用明文密码写脚本。
服务器磁盘空间足够保存备份文件。
恢复目标库和恢复演练方式已确认。

部署验证

确认备份文件非空、可压缩、可复制到安全位置。
确认恢复测试库能导入并查询核心表。
确认备份保留周期、清理策略和磁盘空间监控。
迁移前后对比核心表数量和关键业务数据。

回滚路径

生产迁移失败时,停止写入或进入维护状态。
使用迁移前备份恢复到原库或新库。
恢复后验证应用连接、核心接口和数据数量。
记录失败 SQL、恢复文件和恢复时间。

交接说明

记录数据库名、备份目录、备份文件名、恢复命令和演练结果。
不要提交数据库密码、真实数据导出文件或客户数据样本。
如果备份无法恢复,不能把项目标记为可上线。
Contact

部署完成后,记录验证和回滚

部署不是跑完命令就结束。必须记录验证 URL、日志路径、备份位置、回滚命令和未验证风险。

刘鸡血 微信二维码微信扫码添加