MySQL:GTID切换回传统复制报错
来源:互联网 发布:api数据 编辑:程序博客网 时间:2024/06/04 00:41
最近测试GTID切换回传统复制,报错如下
Slave_IO_Running: No Slave_SQL_Running: Yes Last_IO_Errno: 1236 Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Found a Gtid_log_event or Previous_gtids_log_event when @@GLOBAL.GTID_MODE = OFF.; the first event 'mysql-bin.000069' at 424920, the last event read from '/data/mysql/mysql3306/logs/mysql-bin.000069' at 424968, the last byte read from '/data/mysql/mysql3306/logs/mysql-bin.000069' at 424968.'
解析mysql-bin.000069日志
/usr/local/mysql/bin/mysqlbinlog -v --base64-output=decode-rows /data/mysql/mysql3306/logs/mysql-bin.000069 > 1.log
# at 424920#160714 11:24:25 server id 1593306 end_log_pos 424968 CRC32 0x4ccfebf3 GTID [commit=yes]SET @@SESSION.GTID_NEXT= 'babb81f3-e8c4-11e5-bb5e-080027d6e4e2:10809'/*!*/;# at 424968#160714 11:24:25 server id 1593306 end_log_pos 425040 CRC32 0xd8cdbb41 Query thread_id=106 exec_time=0 error_code=0SET TIMESTAMP=1468466665/*!*/;BEGIN/*!*/;# at 425040#160714 11:24:25 server id 1593306 end_log_pos 425084 CRC32 0x05e03c37 Table_map: `test`.`t` mapped to number 116# at 425084#160714 11:24:25 server id 1593306 end_log_pos 425124 CRC32 0xb919347d Write_rows: table id 116 flags: STMT_END_F### INSERT INTO `test`.`t`### SET### @1=14# at 425124#160714 11:24:25 server id 1593306 end_log_pos 425197 CRC32 0x43c50bc1 Query thread_id=106 exec_time=0 error_code=0SET TIMESTAMP=1468466665/*!*/;COMMIT/*!*/;# at 425197#160714 11:24:26 server id 1593306 end_log_pos 425245 CRC32 0x5b5e813b GTID [commit=yes]SET @@SESSION.GTID_NEXT= 'babb81f3-e8c4-11e5-bb5e-080027d6e4e2:10810'/*!*/;# at 425245#160714 11:24:26 server id 1593306 end_log_pos 425317 CRC32 0x0adb8984 Query thread_id=106 exec_time=0 error_code=0SET TIMESTAMP=1468466666/*!*/;BEGIN/*!*/;# at 425317#160714 11:24:26 server id 1593306 end_log_pos 425361 CRC32 0x85722172 Table_map: `test`.`t` mapped to number 116# at 425361#160714 11:24:26 server id 1593306 end_log_pos 425401 CRC32 0xe889c20b Write_rows: table id 116 flags: STMT_END_F### INSERT INTO `test`.`t`### SET### @1=15# at 425401#160714 11:24:26 server id 1593306 end_log_pos 425474 CRC32 0x023e4997 Query thread_id=106 exec_time=0 error_code=0SET TIMESTAMP=1468466666/*!*/;COMMIT根据报错,我从新指定POS点
change master to master_host='192.168.56.159', master_port=3306, master_user='repl', master_password='repl', master_log_file='mysql-bin.000069', master_log_pos=424968;那他应该会在425245继续出错,原因就是 我从GTID已经关闭,不能执行SET @@SESSION.GTID_NEXT= 'babb81f3-e8c4-11e5-bb5e-080027d6e4e2:10810'/*!*/;执行后
Last_IO_Errno: 1236 Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Found a Gtid_log_event or Previous_gtids_log_event when @@GLOBAL.GTID_MODE = OFF.; the first event 'mysql-bin.000069' at 424968, the last event read from '/data/mysql/mysql3306/logs/mysql-bin.000069' at 425245, the last byte read from '/data/mysql/mysql3306/logs/mysql-bin.000069' at 425245.
整个原因是:我从GTID切换回传统复制,主从之间存在延迟,GTID会执行
SET @@SESSION.GTID_NEXT= 'babb81f3-e8c4-11e5-bb5e-080027d6e4e2:10810'/*!*/; 语句,但是从上@@GLOBAL.GTID_MODE = OFF,索引报错。
所以切换传统-GTID,GTID-传统,最好保持主从数据一致
0 0
- MySQL:GTID切换回传统复制报错
- mysql:GTID复制切换成传统复制
- mysql 5.7 gtid复制到传统复制在线切换
- mysql 5.7传统复制到gtid复制的在线切换
- mysql传统复制环境切换成gtid复制
- 传统复制在线切换到GTID模式
- MySQL 5.6的GTID复制报错没有事务号
- 从GTID复制模式在线切换到传统模式
- GTID切换至传统复制 异常处理
- MySQL传统复制与GTID复制原理及操作详解
- MySQL传统复制与GTID复制原理及操作详解
- MySQL的GTID复制比传统复制的优势
- MySQL传统复制与GTID复制原理及操作详解
- mysql复制复制切换主主复制开启GTID
- mysql传统复制(postion)与GTID原理解析
- GTID:传统复制向GTID迁移
- mysql GTID主从复制
- Mysql GTID主从复制
- 山东理工OJ 1163 C语言实验——排列
- DotLoopViewpager两个方法,几行代码实现轮播图,超强自定义的自动轮播的小圆点指示器
- CODEFORCES, 270D Greenhouse Effect
- 关于linux中的CONNTRACK_MAX和HASHSIZE要注意的地方
- DispatcherServlet初始化过程
- MySQL:GTID切换回传统复制报错
- 对java数组进行插入和删除比链表快很多(一)
- Mysql中如何对按年月日查询时间字段
- c语言输入输出函数总结
- POJ NO.3684
- 7_6_R题 Bad Luck Island题解[Codeforces 540D](概率DP)
- PRAGMA AUTONOMOUS_TRANSACTION
- Android状态栏一体化
- 理论: 数论(4):素数举例