如何通过rsync同步实现MySQL数据库跨地域的灾备备份?

2026-04-30 14:121阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计964个文字,预计阅读时间需要4分钟。

如何通过rsync同步实现MySQL数据库跨地域的灾备备份?

直接使用 rsync 命令同步 MySQL 的 /var/lib/mysql 目录时,若出现失败,通常是 InnoDB 表空间处于活跃状态,文件内容不一致。恢复后,大约有 50% 的几率报错 Tablespace is missing for table... 或启动失败。只有 MySQL 完全停止时才可能成功,但生产环境无法接受停机。

正确做法是先生成逻辑备份文件:

  • mysqldump --single-transaction --routines --triggers --databases db1 db2 > /backup/full_$(date +\%Y\%m\%d).sql(适合中小库,--single-transaction 保证一致性)
  • 大库(>50GB)建议用 mysqlpump(支持并行导出)或 mydumper(需额外安装),避免单线程卡死
  • 备份前加 FLUSH LOGS(可选),便于后续 binlog 恢复定位起点

rsync 同步备份文件时必须加 --delete--checksum

只用 rsync -avz 同步会导致异地备份目录不断膨胀:旧的 .sql 文件不会被清理,磁盘迟早占满;且默认按修改时间+大小判断是否跳过,若因网络中断导致文件写半截、大小未变但内容损坏,rsync 就会跳过,灾备失效。

阅读全文
标签:Mysql

本文共计964个文字,预计阅读时间需要4分钟。

如何通过rsync同步实现MySQL数据库跨地域的灾备备份?

直接使用 rsync 命令同步 MySQL 的 /var/lib/mysql 目录时,若出现失败,通常是 InnoDB 表空间处于活跃状态,文件内容不一致。恢复后,大约有 50% 的几率报错 Tablespace is missing for table... 或启动失败。只有 MySQL 完全停止时才可能成功,但生产环境无法接受停机。

正确做法是先生成逻辑备份文件:

  • mysqldump --single-transaction --routines --triggers --databases db1 db2 > /backup/full_$(date +\%Y\%m\%d).sql(适合中小库,--single-transaction 保证一致性)
  • 大库(>50GB)建议用 mysqlpump(支持并行导出)或 mydumper(需额外安装),避免单线程卡死
  • 备份前加 FLUSH LOGS(可选),便于后续 binlog 恢复定位起点

rsync 同步备份文件时必须加 --delete--checksum

只用 rsync -avz 同步会导致异地备份目录不断膨胀:旧的 .sql 文件不会被清理,磁盘迟早占满;且默认按修改时间+大小判断是否跳过,若因网络中断导致文件写半截、大小未变但内容损坏,rsync 就会跳过,灾备失效。

阅读全文
标签:Mysql