Linux数据库备份恢复项目教程_MySQLPostgreSQL全量增量

6次阅读

Linux 下 MySQL 和 PostgreSQL 备份恢复需区分全量与增量策略:MySQL 用 mysqldump 全量 +binlog 增量,PostgreSQL 用 pg_dump+pg_basebackup 全量 +WAL 归档增量,并通过 cron 自动化、恢复演练及权限校验保障可靠性。

Linux 数据库备份恢复项目教程_MySQLPostgreSQL 全量增量

Linux 下 MySQL 和 PostgreSQL 的备份与恢复,核心在于区分全量与增量策略,并结合系统定时任务与日志管理实现可靠保障。

MySQL 全量备份与恢复

全量备份适合数据量不大、恢复窗口宽松的场景,常用 mysqldump 工具 生成 SQL 文本文件。

  • 备份命令示例:mysqldump -u root -p --all-databases > /backup/mysql_full_$(date +%F).sql
  • --single-transaction 可保证 InnoDB 表一致性,避免锁表
  • 恢复前建议先创建空库或清空目标库,再用mysql -u root -p 导入
  • 定期压缩备份文件(如gzip)并校验 MD5,防止介质损坏导致恢复失败

MySQL 增量备份与恢复

依赖二进制日志(binlog),需提前开启并配置格式为 ROWMIXED,确保变更可重放。

  • 查看当前 binlog:执行SHOW MASTER LOGS;,记录起始位置
  • 备份后及时刷新日志:FLUSH LOGS;,便于划分时间段
  • 提取增量日志:mysqlbinlog --start-datetime="2024-06-01 09:00:00" --stop-datetime="2024-06-01 12:00:00" /var/lib/mysql/mysql-bin.000003 > inc.sql
  • 恢复顺序:先全量恢复 → 再按时间 / 位置顺序应用增量日志

PostgreSQL 全量与 WAL 增量备份

PostgreSQL 使用 pg_dump 做逻辑全量,配合 WAL 归档实现物理级增量备份,更稳定高效。

  • 全量备份:pg_dump -U postgres -F c -b -v -f /backup/dbname_$(date +%F).dump dbname(自定义格式便于压缩与选择恢复)
  • 启用 WAL 归档需修改 postgresql.conf:设置wal_level = replicaarchive_mode = onarchive_command 指向归档脚本
  • 基础备份用 pg_basebackup 生成快照目录,同时触发 WAL 归档,是增量恢复的前提
  • 恢复时将基础备份 解压 → 配置recovery.conf(PG 12+ 为recovery.signal)→ 指定归档路径与恢复目标(时间点 /PITR 或事务号)

自动化与验证建议

备份无价值,能恢复才算数。必须建立闭环机制。

  • cron 调度每日全量 + 每小时 binlog/WAL 归档,保留 7 天以上
  • 在测试环境定期执行“恢复演练”,检查脚本是否可跑通、数据是否完整
  • 备份文件权限设为600,存放路径独立于数据库目录,避免单点故障
  • 记录每次备份的开始 / 结束时间、大小、校验值到日志,方便审计与问题追溯

不复杂但容易忽略的是日志清理策略和恢复路径的权限控制——备份存得再全,恢复时没权限或磁盘满,一样白忙。

星耀云
版权声明:本站原创文章,由 星耀云 2026-01-04发表,共计1274字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources