首页 > 数据库 >MySQL GTID 主从复制错误修复方法

MySQL GTID 主从复制错误修复方法

时间:2023-06-14 17:02:44浏览次数:49  
标签:主从复制 slave none OK MySQL affected root GTID

MySQL GTID 主从复制错误修复方法

MySQL传统复制恢复方法:

root@(none) >stop slave;

Query OK, 0 rows affected (0.00 sec)

root@(none) >SET GLOBAL SQL_SLAVE_SKIP_COUNTER = N; #跳过N个事务

Query OK, 0 rows affected (0.00 sec)

root@(none) >start slave;

Query OK, 0 rows affected, 1 warning (0.03 sec)

如上述方法在GTID模式下执行会报错,如下:

ERROR 1858 (HY000): sql_slave_skip_counter can not be set when the server is running with @@GLOBAL.GTID_MODE = ON. Instead, for each transaction that you want to skip, generate an empty transaction with the same GTID as the transaction

示例:

root@(none) >stop slave;

Query OK, 0 rows affected (0.00 sec)

root@(none) >set global sql_slave_skip_counter = 1;

ERROR 1858 (HY000): sql_slave_skip_counter can not be set when the server is running with @@GLOBAL.GTID_MODE = ON. Instead, for each transaction that you want to skip, generate an empty transaction with the same GTID as the transaction

 

依据错误提示,在发生错误的GTID事务号上插入一个空事务,实现跳过错误,方法如下:

root@(none) >show slave status\G

*************************** 1. row ***************************

Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Cannot replicate anonymous transaction when AUTO_POSITION = 1, at file /log/mysqlbin/mysql_bin.000012, position 194.; the first event '' at 4, the last event read from '/log/mysqlbin/mysql_bin.000012' at 259, the last byte read from '/log/mysqlbin/mysql_bin.000012' at 259.'

...

Executed_Gtid_Set: 291f68c6-a5f4-11ed-a531-0242ac110003:1-170840

找到目前从库复制错误的GTID进行空事务插入

stop slave; # 关闭 slave 复制

SET GTID_NEXT='$GTID_NO'; # 设置 GTID_NEXT 为复制出错的 GTID_NO

begin; commit; # 向 $GTID_NO 写入空事务

SET GTID_NEXT="AUTOMATIC"; # 重新设置 GTID_NEXT 为自动获取

start slave; # 启动 slave 复制

示例如下:

root@(none) >stop slave;

Query OK, 0 rows affected (0.00 sec)

root@(none) >SET GTID_NEXT='291f68c6-a5f4-11ed-a531-0242ac110003:170840';

Query OK, 0 rows affected (0.00 sec)

root@(none) >begin;

Query OK, 0 rows affected (0.00 sec)

root@(none) >commit;

Query OK, 0 rows affected (0.00 sec)

root@(none) >SET GTID_NEXT="AUTOMATIC";

Query OK, 0 rows affected (0.00 sec)

root@(none) >start slave;

Query OK, 0 rows affected, 1 warning (0.03 sec)

再次验证 show slave status\G 双线程YES,Seconds_Behind_Master无延迟,error部分消除,基于GTID复制修复完成。

注意:在设置下个事务时取gtid的信息对应为uuid:tid (某个实例的事务号),而非某个实例的一组tid,如下:

SET GTID_NEXT='291f68c6-a5f4-11ed-a531-0242ac110003:1-170840'; ×

SET GTID_NEXT='291f68c6-a5f4-11ed-a531-0242ac110003:170840';√

标签:主从复制,slave,none,OK,MySQL,affected,root,GTID
From: https://www.cnblogs.com/arua-cc719720/p/17480744.html

相关文章

  • docker 安装mysql-server
    ################查找mysql-server镜像:dockersearchmysql-server[root@igoodful~]#dockersearchmysql-serverINDEXNAMEDESCRIPTIONSTARSOFFICIALAUTOMATEDdocker.iodock......
  • MySQL基础:安装和启动
    MySQL基础:安装和启动课程安排基础篇介绍数据库相关概念SQL是操作关系型数据库的编程语言主流关系型数据库总结安装MySQL数据库MySQL数据库启动与停止默认mysql开机启动客户端连接方式1方式2需要配置环境变量......
  • 如何使用MySQL存储过程简化数据库操作
    在数据库管理领域,MySQL已成为最受欢迎和最可靠的选择之一。MySQL不仅提供了强大的数据存储能力,还提供了一种称为“过程”的强大功能,使开发人员能够简化复杂的数据库操作。在本教程中,我们将深入研究MySQL过程的概念并探索它们的好处。然后,我将提供有关如何有效使用它们的分步......
  • Linux - MySQL修改临时密码并设置访问权限【Linux】
    1.查阅临时密码cat/var/log/mysqld.log|greppassword2.登录MySQL①.登录mysql(复制日志中的临时密码登录)mysql-uroot-p输入临时密码②.修改密码setglobalvalidate_password_length=4;设置密码长度最低位数setglobalvalidate......
  • mysql数据库数据同步几种通用方法?
    MySQL数据库数据同步的几种通用方法包括以下几个方面:一、基于主从同步主从同步是MySQL数据库最为常见和基本的同步方式,即其中一台MySQL服务器作为主服务器(Master),另外一台或多台MySQL服务器作为从服务器(Slave)。主服务器处理写入数据的请求,并将数据的变化复制到从服务器,以......
  • 在FreeSWITCH中使用Lua脚本来将电话记录存储到MySQL数据库中
    在FreeSWITCH中使用Lua脚本来将电话记录存储到MySQL数据库中,需要做以下几个步骤:安装MySQL客户端库首先需要通过包管理器(如apt-get或yum)安装MySQL客户端库,以便FreeSWITCH能够与MySQL数据库进行通信。例如,在Ubuntu系统中,可以运行以下命令进行安装:sudoapt-getinstalllibmysq......
  • mysql可视化工具有哪些?优点是什么?
    MySQL是一种广泛使用的关系型数据库管理系统(RDBMS),由于其开放源代码和高度可定制化的优势,广受开发者欢迎。为了更加高效地管理MySQL数据库,我们通常需要使用MySQL可视化工具。下面列出了几款MySQL可视化工具及其优点:NavicatforMySQLNavicatforMySQL是一款流行的MySQL可......
  • mysql可视化工具有哪些?优点是什么?
    MySQL是一种广泛使用的关系型数据库管理系统(RDBMS),由于其开放源代码和高度可定制化的优势,广受开发者欢迎。为了更加高效地管理MySQL数据库,我们通常需要使用MySQL可视化工具。下面列出了几款MySQL可视化工具及其优点:NavicatforMySQLNavicatforMySQL是一款流行的MySQ......
  • MySQL 表信息查询,便于补数据库结构设计文档
    MySQL表信息查询,便于补数据库结构设计文档selectc.table_name表名,t.TABLE_COMMENT表说明,c.COLUMN_NAME列名,c.COLUMN......
  • mysql常用语
    给某个字段添加另一个字段的值UPDATEproduct_noticeSETtitle=CONCAT(product_name)where(ISNULL(title)=1orLENGTH(trim(title))=0); 如果需要赋值拼接使用空格进行分隔UPDATEproduct_noticeSETtitle=CONCAT(product_name,'',content)where(ISNULL(t......