mysql 中文名不能同步_关于恢复MySQL主主数据的同步问题

2.数据文件大小同步

mysql01和mysql02两个数据刚装配完成时,从实施后盾可知。互为主从,数据同步畸形,运行过程中某些原由招致mysql02去同步mysql01毛病,而对外供给办事的vip一向在mysql上,数据一贯写入在mysql01上,最终导致发现时,mysql02数据跟mysql01上的数据相差庞大,必要手工同步,同时也警示我要无视数据同步监控报警的重要性!

对mysql02而言,从上可知。其数据已经没有意思了可以或许直接删除,现在须要的直接将mysql01数据拷贝给mysql02实现主从同步。

环节在于细节处理,落拓不羁向没有问题。mysql01mysql02都开启了二进制binlog中继日志 relaylog和 慢日志slowlog拷贝mysql01系统数据和业务数据到mysql02而不需要mysql01二进制binlog中继日志 relaylog和 慢日志slowlog

1.暂停营业,找一台空闲服务器,将mysql01mysql02所有数据备份

2.别离在mysql01mysql02遏制mysql办事

#systemctlstopmysqld

3.mysql02删除mysql所有其他数据,只备份/opt/data/mysql/auto.cnf文件

#cp/opt/data/mysql/auto.cnf/home/auto.cnf.bak

#rm-rf/opt/data/mysql/*

4.删除mysql01二进制binlog中继日志 relaylog和 慢日志slowlog

#cd/opt/data/mysql

#rm-rf主机名-bin.*主机名-relay-bin.*主机名-slow*1236db3f4e84e03d9c2959efbc773725.png

5.拷贝mysql01数据文件到mysql02数据目次

#scp-r/opt/data/mysql/*root@192.168.1.105:/opt/data/mysql/

6.mysql02上还原auto.cnf文件,变更拷贝过去的文件属主属组

#cp/home/auto.cnf.bak/opt/data/mysql/auto.cnf

#chown-Rmysql:mysql/opt/data/mysql/

7.mysql01mysql02上启动 mysql和keepalived

#systemctlstartmysqld

#systemctlrestartkeepalived

#systemctlstatusmysqldkeepalived253089759f2791fadc5bcce7a87e6b67.png

登录mysql01

#mysql-uroot-p”MySQL@123″

>showslavestatusG81b888466baf51c09c813e9c18551649.png

mysql01同步mysql02畸形

登录mysql02

#mysql-uroot-p”MySQL@123″

>showslavestatusG43082399d13372d2f95d7a72d0473f2d.png

发明了报错:

Fatalerror:TheslaveI/OthreadstopbecausmasterandslavehaveequalMySQLserverids;theseidmustbedifferforreplictoworkorthe–replicate-same-server-idoptionmustbeusonslavebutthidoenotalwaimakesense;pleascheckthemanualbeforusit.

关键字眼:masterandslavehaveequalMySQLserverids

清楚一切同步消息:数据库上做如下操作.

>stopslave;

>resetslave;

>resetmaster;

master_port=3306,>changmastertomaster_host=\’192.168.1.104\’.master_user=\’repl\’,master_password=\’MySQL@123\’,master_auto_position=1;

>startslave;

>showslavestatusG1b531c5e4b7e5f5974f927d59195d766.png

butthemasterhapurgbinarilogcontainGTIDthattheslaverequires.Last_IO_Error:Gotfatalerror1236frommasterwhenreaddatafrombinarilog:\’TheslaveisconnectusCHA NGEMA STERTOMA STER_A UTO_POSITION=1.\’

典范的MySQL封闭GTID主从同步出现1236过错这次报错不一样了谷歌搜索了一下。

个体两种情况会出现以上景象:

1.主库上手动执行清除二进制日志文件

重新同步时2.主库重启。

处置惩罚方式:

查问gtid_purg并记录其值1.mysql01上执行以下饬令。>

#mysql-uroot-p”MySQL@123″

>showglobalvariabllike\’%gtid%\’G1321783d56625d155e7e72e6312abcc1.png

mysql02执行以下饬令,查问gtid_executed,并做记录

#mysql-uroot-p”MySQL@123″

>showglobalvariabllike\’%gtid%\’G68e4e95c0622cc14cb3113f77229f4cc.png

此处mysql02上的gtid_execut值为空。

3.mysql02上执行以下命令停止同步线程及重置同步相关消息

#mysql-uroot-p”MySQL@123″

>stopslave;

>resetslave;

>resetmaster;

该值有两个来源,设置mysqlgtid_purg值。一是主库上查询的gtid_purg二是从库上查询的已经执行过的gtid_execut值。

同步过程会出现其他过错,注重:必定记得加上从库上已经执行过的gtid_execut值若只设置了主库上的gtid_purg此时从库会重新拉取主库上所有的二进制日志文件。导致同步无法执行,但此处我从库的gtid_execut值为空,没什么可加,就不用加了

>set@@global.gtid_purged=\’d19dcd86-39cf-11e9-a540-000c29d0d7ee:1-1042789\’;

master_port=3306,>changmastertomaster_host=\’192.168.1.104\’.master_user=\’repl\’,master_password=\’MySQL@123\’,master_auto_position=1;

>startslave;

>showslavestatusG3a9f14cf465e03a419dde39f19e10c37.png

剩下的事就是策动办事,看对业务是否有影响。现在,mysql02同步mysql01畸形了完成了mysql01mysql02主主同步。

至少保存了同步前,如果同步失利。mysql01全部数据,停服务器和数据库,回填数据,策动数据库和服务。

用shell脚本批量生成测试用SQL语句

https://my.oschina.net/zhuguowei/blog/474572

ToolforGenerMockData

https://stackoverflow.com/questions/591892/tools-for-generating-mock-data

MySQLShard批量执行工具

https://github.com/shilion/mysqlbatch

处理mysql封闭GTID主从同步出现1236错误成绩

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值