栏目头部广告

MySQL mysqldump备份之--set-gtid-purged=OFF参数影响

背景描述:在生产环境中,我们经常会遇到这样的情况,在MySQL高可用架构或主从架构的数据库集群中进行逻辑备份通过mysqldump工具备份的数据还原的时候,会出现主从数据不一致,主从同步异常的情况。

根因分析:通过分析不难发现,主从同步异常的原因是进行数据还原的时候,主库没有记录binlog,导致从库无法复制新增的数据。(主从同步原理可参考文章:https://www.starcto.com/mysql/112.html进一步排查MySQL主库不难发现,主库是开启了binlog记录的,如下图:

image.png

1、不带--set-gtid-purged=OFF参数备份

既然主库开启了binlog记录功能,但导入数据的时候,又没有binlog记录,那问题肯定是出在了备份文件上,于是我们就查看了备份文件。发现了下面截图的一条记录,即不记录binlog。此时用的备份命令:mysqldump --all-databases --master-data=2 --single-transaction --quick -R --events -uroot -h$IP -P3306 -p$password > backup.sql

image.png

2、带--set-gtid-purged=OFF参数备份

将备份命令调整为:mysqldump --all-databases --master-data=2 --single-transaction --set-gtid-purged=OFF --quick -R --events -uroot -h$IP -P3306 -p$password  > backup1.sql

image.png

由上图可见,mysqldump备份时,加上--set-gtid-purged=OFF参数后,会去掉逻辑备份中,不记录binlog的设置。

3、MySQL官网参数解读

https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_master-data

image.png

作者:UStarGao
链接:https://www.starcto.com/mysql/320.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处

UCloud云平台推荐


UCloud新用户专属注册连接

UCloud CDN超值特惠专场

UCloud全球云主机(UHost/VPS)大促页面

UCloud快杰云主机大促页面

加载中~
文章详情页广告

随便看看

底部广告
`