Skip to content

备份与恢复

MySQL 的可恢复性通常由完整数据基线与连续 Binary Log 组成。Backup 解决历史和介质恢复,Replica 解决冗余与接管,两者不能互相替代。


备份方式

方式特点边界
mysqldump逻辑 SQL、可读且便于选择对象大库慢,恢复需要重放 SQL 和重建索引
MySQL Shell Dump并行逻辑导出导入需确认版本、对象与目标兼容
MySQL Enterprise BackupInnoDB 在线物理备份商业产品,版本与授权需确认
文件系统快照生成快,适合大数据卷必须保证数据、Redo 和所有表空间一致
Replica 备份降低 Source 负载需记录 GTID/位置并确认复制追平

直接复制运行中的 Data Directory 通常不能得到一致备份。也不能通过删除 ibdata、Redo 或 Undo 文件尝试“重建”生产实例,这可能造成不可逆数据损坏。


PITR

Point-in-Time Recovery 先恢复完整备份,再用 mysqlbinlog 等工具重放备份之后的 Binlog,停止在误操作之前。

Binlog 归档必须连续。PURGE BINARY LOGS 前应确认 Replica、备份和 PITR 不再需要相关日志;不要直接删除文件系统中的 Binlog 文件。


备份范围

  • 业务 Schema、表、View、Trigger、Event 和 Routine。
  • 用户、角色、授权和认证插件信息。
  • 配置文件、TLS 证书、Keyring 与加密密钥。
  • GTID、Binlog 坐标和复制拓扑信息。
  • 外部任务、代理、监控和连接配置。

只恢复业务表但缺少密钥或权限,数据库仍可能无法正常提供服务。


恢复演练

  1. 在隔离环境恢复完整备份。
  2. 重放 Binlog 到指定目标点。
  3. 检查表、索引、约束、账户和字符集。
  4. 比较关键行数、金额汇总和业务不变量。
  5. 测量实际 RPO/RTO,并记录自动化步骤。

“备份任务成功”只证明产出了文件,不证明文件完整、密钥可用或恢复时间满足要求。

参考资料