• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > Mysql开启GTID后遇到错误跳过方法

Mysql开启GTID后遇到错误跳过方法

作者:分支的博客 字体:[增加 减小] 来源:互联网 时间:2017-08-28

分支的博客通过本文主要向大家介绍了mysql gtid,mysql 5.6 gtid 主从,mysql5.6 gtid,mysql 5.7 gtid,mysql gtid复制等相关知识,希望本文的分享对您有所帮助

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: NULL
Master_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: 1
1 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:13‘;
mysql> START SLAVE;

 

 

 

三:使用pt-slave-restart工具(暂未测试)

# pt-slave-restart  -S  /var/lib/mysql/mysql.sock   --error-numbers=test.hello   --user=root --password='xxx'

 

 

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Mysql开启GTID后遇到错误跳过方法

相关文章

  • 2017-05-11MYSQL删除匿名用户的方法(提高安全性)
  • 2018-12-05MySQL中锁的必要性及分类介绍
  • 2018-12-05MySQL之-Cluster集群搭建(基于手动编译安装包)详解
  • 2017-05-11浅谈mysql数据库中的using的用法
  • 2017-05-11mysql中多表删除其中ID相同记录的方法
  • 2018-12-05修改mysql密码与忘记mysql密码的处理方法
  • 2018-12-05mysql 4个sql语句特殊处理语句总结(收藏)
  • 2018-12-05oracle 日期函数
  • 2017-05-11MySQL 不允许从远程访问的解决方法
  • 2018-12-05一个DDL导致MySQL主从停止问题及解决

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Mysql中文汉字转拼音的实现(每个汉字转换全拼)
    • MySQL数据库常见问题汇总
    • Oracle Table Demo语句应用介绍
    • 关于MySQL中REGEXP正则表达式使用小结
    • mysql误删root用户恢复方法
    • 在Oracle中向视图中插入数据的方法_Oracle应用_脚本之家
    • MySQL中的if和case语句的使用
    • Oracle 查看表空间的大小及使用情况sql语句
    • 详细讲解mysql主从同步原理、配置以及延迟
    • 使用SQL实现小计,合计以及排序

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有