- 首页 >
- 问答 >
-
云计算 >
- ubuntu中mysql的备份策略有哪些
ubuntu中mysql的备份策略有哪些
小樊
36
2025-12-14 07:45:21
Ubuntu 下 MySQL 的备份策略总览
一 备份类型与适用场景
- 全量备份:导出数据库结构与数据,适合作为恢复基线。常用工具为 mysqldump(逻辑备份、可读性强)与 mysqlpump(支持并行、适合较大库)。示例:单库 mysqldump、多库/全库备份、压缩与定时执行。
- 增量/差异备份:仅备份自上次备份后变化的数据,减少时间与空间开销。实现思路包括:基于 二进制日志(binlog) 的增量恢复,或在逻辑层按时间点导出。
- 物理备份:直接拷贝数据文件(如 InnoDB 表空间),恢复速度快,适合大库与严格 RPO/RTO 场景;通常通过企业版工具或文件系统快照实现(社区版需自行保障一致性)。
- 逻辑 vs 物理:逻辑备份(SQL 文本)便于跨版本迁移与审计,物理备份恢复更快、对大库更友好。
二 常用工具与基本用法
- mysqldump:
- 单库:
mysqldump -u user -p db > db.sql
- 多库:
mysqldump -u user -p --databases db1 db2 > multi.sql
- 全库:
mysqldump -u user -p --all-databases > all.sql
- 压缩:
mysqldump -u user -p db | gzip > db.sql.gz
- mysqlpump(并行):
mysqlpump -u user -p --databases db1 db2 | gzip > multi.sql.gz
- 定时与自动化:使用 cron 调度脚本,结合日志与保留策略,形成稳定例行备份。
- 远程复制:备份完成后用 rsync/scp 同步到远程存储或备份服务器,提升容灾能力。
三 自动化与保留策略示例
- 典型流程:
- 定义备份目录、保留天数、日志文件;2) 使用 mysqldump 导出;3) gzip 压缩;4) 删除 N 天前 旧备份;5) 可选 rsync 同步到远端;6) 记录日志;7) cron 定时执行。
- 示例脚本要点(可按需调整):
- 变量:
backup_dir、backup_day、logfile、db_user、db_password、db_host、db_port
- 备份:
mysqldump -u$db_user -h$db_host -P$db_port $db > file.sql
- 压缩:
tar czf file.tar.gz file.sql && rm file.sql
- 清理:
find $backup_dir -type f -mtime +$backup_day -delete
- 远端:
rsync -avz --delete $backup_dir -e "ssh -p $ssh_port -i $id_rsa" user@host:$remote_dir
- 定时:如
0 3 * * * /root/mysql_backup.sh(每日 03:00 执行)
- 实践建议:保留周期可按业务选择 7/10/30 天;脚本与日志分离;对远端同步使用 SSH 密钥 免交互。
四 异地容灾与恢复演练
- 异地/离线存储:定期将备份通过 rsync/scp 复制到 不同物理位置或云存储,避免单点故障;必要时使用对象存储生命周期策略降低成本。
- 恢复方法:
- 逻辑备份恢复:
mysql -u user -p db < db.sql;压缩包:gunzip < db.sql.gz | mysql -u user -p db
- 全库恢复:
mysql -u user -p < all.sql
- 验证与演练:定期抽样恢复备份,校验表数量、数据一致性、主外键与视图/存储过程可用性;将恢复步骤固化为 SOP 并演练,确保在故障发生时可按 RTO/RPO 要求执行。
五 安全与运维要点
- 凭据安全:避免在命令行或 crontab 中明文写密码,建议使用
~/.my.cnf 配置凭据或 凭据文件/密钥 方式读取。
- 权限最小化:备份用户仅需 SELECT、SHOW VIEW、LOCK TABLES、RELOAD 等必要权限。
- 监控与告警:记录 成功/失败 日志,结合 cron 邮件 或监控系统对失败进行告警。
- 空间与性能:全量备份对 I/O 与空间有压力,建议在业务低峰执行;压缩可显著降低存储占用;定期清理过期备份。
- 版本兼容:跨大版本恢复前先小范围验证;生产变更前先备份并在测试环境演练。