更新时间:2025-07-16 GMT+08:00
分享

物理备份原理

混合云备份2.0-A的物理备份工具 mysqlphyproc 源于开源热备工具 Percona XtraBackup ,根据产品自身特点和需求对其进行了二次开发。

完全备份

混合云备份2.0-A备份 MySQL 数据库,物理备份完全备份的原理如下:
图1 物理备份原理图

混合云备份2.0-A客户端安装完成以后,创建物理备份任务,任务发起时:

  1. 备份开始前持续监测 Redo 日志的变化。
  2. 客户端拷贝数据文件,通过数据流将数据发送到备份存储。
  3. 备份监测到的 Redo 日志变化的数据,并将变化的数据备份到存储。
  4. 备份 Binlog 日志文件到备份存储。
  5. 备份结束后将备份元数据信息写入到备份存储,形成完备时间点。

增量备份/差异备份

混合云备份2.0-A备份 MySQL 数据库,物理备份增量备份/差异备份的原理如下:

图2 物理备份增量备份图

混合云备份2.0-A完成物理备份完全备份后可以发起增量备份,任务发起时:

  1. 备份开始前持续监测 Redo 日志的变化。
  2. 客户端备份自上次备份时数据文件对应 LSN 之后的变化块,通过数据流将数据发送到备份存储。
  3. 备份监测到的 Redo 日志变化的数据,并将变化的数据备份到存储。
  4. 备份 Binlog 日志文件到备份存储。
  5. 备份结束后将备份元数据信息写入到备份存储,形成增量时间点。

增量备份和差异备份的区别

图3 增量备份差异备份区别
差异备份和增量备份原理相同,增量备份是基于上一次成功的备份文件备份增量数据块,差异备份是基于上一次成功的完全备份备份增量数据块。
图3 恢复到星期三数据过程

恢复到多次增量备份后的时间点需要按照时间先后顺序把所有增量备份时间点的数据块应用到完全备份数据中,最后将完全备份数据恢复到MySQL数据目录,启动数据库服务。

图5 恢复到星期四数据过程

恢复到差异备份时间点时,只需要将差异备份的数据块应用到完全备份的数据中,最后将完全备份的数据恢复到MySQL数据目录,启动数据库服务。

差异备份的备份数据比增量备份大但是恢复速度比增量备份快,可根据实际需要选择备份类型。

增量备份、差异备份时,如果待备份数据库中表的存储引擎不是InnoDB,则会按照完备逻辑来实现备份,界面上也不会提示转完备,只不过数据传输量会比完备时数据传输量大,这种情况下如果想做到数据传输量小于完备,可以选择归档日志备份。
图5 增备数据传输量大于完备

如何满足增量备份/差异备份条件

任务备份成功且备份时间点未被删除。

MySQL 数据库备份成功后,保留的副本未被全部删除。

任务的数据路径与归档日志路径未发生变更。

任务未执行过恢复任务到备份实例的数据路径下。

相关文档