mysql 增量备份方法:使用 binlog 和 change master:启用二进制日志并记录起始位点,使用 mysqldump 备份并更新起始位点。使用 pt-table-checksum:创建初始快照,使用 pt-table-checksum 进行增量备份。
MySQL 增量备份方法
开门见山:如何进行 MySQL 增量备份?
MySQL 提供了两种主要方法进行增量备份:
方法 1:使用 binlog 和 CHANGE MASTER
- 开启二进制日志记录:确保已启用 MySQL 二进制日志,以便记录所有数据库更改。
- 记录起始位点:记下当前二进制日志文件和位点。
- 进行增量备份:使用如下命令进行备份:
<a style="color:#f60; text-decoration:underline;" href="https://www.codesou.cn/" target="_blank">mysql</a>dump -B --master-data=2 --start-position=START_POSITION --stop-position=STOP_POSITION DATABASE_NAME > backup.sql
- 更新起始位点:备份完成后,获取新二进制日志文件和位点,并更新 master-data 值。
方法 2:使用 pt-table- checksum
- 安装 pt-table-checksum 工具:这是一个开源工具,用于生成数据库快照和跟踪更改。
- 创建快照:使用以下命令创建初始快照:
pt-table-checksum --create DATABASE_NAME > snapshot.chk
- 增量备份:使用以下命令进行增量备份:
pt-table-checksum --update DATABASE_NAME --base-checksum=snapshot.chk --snapshot=new_snapshot.chk > incremental.sql
详细展开:
方法 1 的优点:
- 备份速度快,因为只备份了自上次备份以来发生的更改。
- 恢复容易,只需重放二进制日志即可。
方法 1 的缺点:
- 依赖于二进制日志,如果日志损坏,可能导致数据丢失。
- 备份大小受二进制日志大小限制。
方法 2 的优点:
- 与二进制日志无关,因此更可靠。
- 备份大小通常较小,因为只备份了更改的记录。
方法 2 的缺点:
- 备份速度可能比方法 1 慢。
- 恢复需要使用 pt-table-checksum 工具。