更新时间:2022-08-13 21:11:37

完全备份 

AnyBackup备份 MySQL 数据库,逻辑备份完全备份的原理如下:

AnyBackup 客户端安装完成以后,创建逻辑备份任务, 任务发起时:
1. 连接数据库获取 InnoDB 表和非 InnoDB 表 ;
2. 开启全局读锁;
3. 对 InnoDB 设置事务隔离集别为可重复读 (Repeated Read) ,开启事务,对非 InnoDB 单表加锁;
4. 释放全局锁,利用 mysqlclient 库公开的API获取数据库数据并切分成数据块,将数据块保存至备份存储介质; 
5. 备份其他数据(如:视图、触发器、事件、函数、存储过程)到存储介质;
6. 备份完数据后,备份 Binlog 日志;
7. 备份结束后将备份元数据信息写入到备份存储,形成完备时间点;

增量备份

AnyBackup 备份 MySQL 数据库,逻辑备份增量备份的原理如下:
1. 基于上一次成功的备份,备份变化的 Binlog 日志到备份存储;
2. 备份结束后将备份元数据信息写入到备份存储,形成增量备份时间点;
3. 在尚未进行完全备份的情况下,直接进行增量备份时,会自动转为完全备份;