Mysql开启GTID后遇到错误跳过方法
来源:互联网 发布:java线程池是什么 编辑:程序博客网 时间:2024/05/21 17:53
1、数据库版本
root@localhost:mysql.sock 08:06:29 [(none)]>select version();+------------+| version() |+------------+| 5.6.37-log |+------------+1 row in set (0.00 sec)
2、问题产生
root@localhost:mysql.sock 08:09:04 [test]>show slave status\G*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.18.50 Master_User: copy Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mybinlog.000001 Read_Master_Log_Pos: 3292 Relay_Log_File: mysql-relay-bin.000006 Relay_Log_Pos: 694 Relay_Master_Log_File: mybinlog.000001 Slave_IO_Running: Yes Slave_SQL_Running: No Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 1146 Last_Error: Error executing row event: 'Table 'test.hello' doesn't exist' Skip_Counter: 0 Exec_Master_Log_Pos: 3046 Relay_Log_Space: 2929 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: NULLMaster_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 1146 Last_SQL_Error: Error executing row event: 'Table 'test.hello' doesn't exist' Replicate_Ignore_Server_Ids: Master_Server_Id: 203306 Master_UUID: 5385fd59-884a-11e7-90eb-080027eb4c97 Master_Info_File: /mydata/mysql/mysql_3306/master.info SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Master_Retry_Count: 86400 Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: 170828 07:58:47 Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: 5385fd59-884a-11e7-90eb-080027eb4c97:1-13 Executed_Gtid_Set: 5385fd59-884a-11e7-90eb-080027eb4c97:1-12 Auto_Position: 11 row in set (0.00 sec)
3、问题处理
如图可以看到当前从Master已经取到了日志13这个GTID的位置处,并且已经执行到了12这个事务处,但是在执行13的时候发生了错误。
在未开启GTID之前的处理方法:
mysql> stop slave;mysql> set global sql_slave_skip_counter=1;mysql> start slave;
但是现在不能这么处理了
处理方法如下:
一:跳过错误
mysql> STOP SLAVE;mysql> SET @@SESSION.GTID_NEXT= '5385fd59-884a-11e7-90eb-080027eb4c97:13‘;mysql> BEGIN; COMMIT;mysql> SET SESSION GTID_NEXT = AUTOMATIC;mysql> START SLAVE;
二:重置master跳过错误
手工调整SLAVE已清除的GTID列表GTID_PURGED,人为通知SLAVE哪些事务已经被清除了,后续可以忽略:
mysql> STOP SLAVE;mysql> RESET MASTER;mysql> SET @@GLOBAL.GTID_PURGED = '5385fd59-884a-11e7-90eb-080027eb4c97:1-13‘;mysql> START SLAVE;
三:使用pt-slave-restart工具(暂未测试)
# pt-slave-restart -S /var/lib/mysql/mysql.sock --error-numbers=test.hello --user=root --password='xxx'
阅读全文
0 0
- Mysql开启GTID后遇到错误跳过方法
- mysql开启GTID跳过错误的方法
- mysql gtid 复制跳过错误
- mysql GTID主从复制 跳过复制错误
- GTID:跳过错误
- mysql使用GTID跳过事务
- MySQL GTID 主从复制错误修复方法
- MySQL 跳过同步错误方法
- 解决mysql开启GTID主从同步出现1236错误问题
- mysql5.6GTID手动跳过复制错误
- mysql5.7跳过错误事务GTID
- 实战:mysql 5.6 跳过指定事务GTID
- MySQL 在线开启/关闭GTID
- MySQL GTID 错误处理汇总
- MySQL复制之GTID跳过与FEDERATED存储引擎
- GTID的常见错误和处理方法
- GTID的常见错误和处理方法
- 跳过mysql主从同步错误
- 面向对象的抽象类与接口
- windows常用的dos命令:
- 项目集成语音识别(科大讯飞)
- 剑指Offer—47—求1+2+3+...+n
- 管线流程
- Mysql开启GTID后遇到错误跳过方法
- springMVC的文件上传于下载
- java String类中的intern方法
- 浅析linux中的连接文件
- springboot1.5.6版本运行时动态切换日志级别
- Android Studio module + gradle的巧妙运用
- Restful形式接口文档生成之Swagger与SpringMVC整合手记
- PHP7.0微信公众平台开发4: 实例一:接收普通消息和接收事件推送
- R语言安装.tar.gz包方法