码迷,mamicode.com
首页 > 数据库 > 详细

腾讯云数据库备用-基于GTID复制的mysql作为CDB的从库

时间:2018-08-27 15:26:02      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:com   cto   pre   bb10   跳过   term   mysql数据库   mysql   备份文件   

原因:腾讯云数据丢失,但是又有业务在腾讯云上,所以需要对数据库进行备份(自建从库,腾讯云的说法),做腾讯云数据库的从库
基于mysql 5.7实现.
1、首先用户通过在控制台创建一个用于复制的账户wjqrepl;

2、给wjqrepl用户赋予相应的权限

需要进入数据库命令行中,
grant replication slave on *.* to ‘xxxxx‘@‘%‘ identified by ‘1234567‘;
flush privileges;

3、导出云数据库中的业务库数据

4、确认自建从库是否开启GTID

show variables like ‘%gtid%‘  查看gtid_mode 的value是否为on
如果没有,则修改my.cnf 在[mysqld]中增加如下内容:
gtid-mode=on
enforce-gtid-consistency=on

5、将上述导出的备份文件导入到自建的mysql数据库中;

带有 GTID 信息的备份 文件, 要求目标数据库实例必须开启 GTID 功能, 且当前数据库中无其他 GTID 信息. 如果目标数据库中已经记录了一条或一条以上的 GTID 信息, 那么在导入数据库时会上面类似的错误;
解决方法:

1、重新 dump 数据库, 使用--set-gtid-purged=OFF的参数禁止;
2、在目标数据库中执行 reset slave all;和 reset master;清空所有 GTID 信息之后就可以导入了;

6、在CVM自建mysql数据库配置主从同步关系,并启动slave;

change master to master_host=‘bj-cdb-d8xcsyv6..com‘, master_user=‘re49pl‘, master_port=63021, master_password=‘re43sswo@‘, master_auto_position=1;

7, 出现“The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.”

1、这个应该是由于你在主库上执行过purge binary logs,然后当从库change master的时候,却要执行那些事务。
你可以在主库上先查找哪些gtid被purge了。

show global variables like ‘gtid_purged‘;

然后拿着这个value,去从库上依次

stop slave;

set global gtid_purged = ‘8170836d-8e48-11e0c29b48f84:1-2‘; # xxx是你主库上查到的value。 如果有多个,就一起写在后面,用,隔开

start slave;

这样能跳过执行被主库已经purge的事务了。

附一张从腾讯云文档的截图比较清楚
技术分享图片

腾讯云数据库备用-基于GTID复制的mysql作为CDB的从库

标签:com   cto   pre   bb10   跳过   term   mysql数据库   mysql   备份文件   

原文地址:http://blog.51cto.com/9393764/2164902

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!