mysql 主从复制如何跳过报错

MySQL 主从复制是一种常见的数据库备份和读写分离解决方案。然而,由于各种原因,可能会导致主从复制中出现错误。这时,我们可以使用跳过报错的方式来强制使主从复制继续进行,本文将介绍跳过报错的完整攻略。

跳过报错的方式

在 MySQL 主从复制中,跳过报错的方式有两种:跳过单个 SQL 语句和跳过多个 SQL 语句。

跳过单个 SQL 语句

如果主库中某个 SQL 语句不能被从库正确执行,从库将会停止复制,此时我们可以使用 SQL_SKIP_COUNTER 选项继续复制。

具体步骤如下:

  1. 在从库上查看出错语句的具体信息,使用 SHOW SLAVE STATUS 命令,找到 Last_Error 字段,或者查看从库错误日志。
  2. 在主库上通过 mysqlbinlog 工具查看复制的二进制日志,找到出错语句的位置。
  3. 在从库上使用 STOP SLAVE 命令停止复制。
  4. 在从库上使用 SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 命令跳过一个语句。如果需要跳过多个语句,将 1 替换成需要跳过的语句数量即可。
  5. 在从库上使用 START SLAVE 命令恢复复制。

这样就可以解决单个 SQL 语句的错误。

跳过多个 SQL 语句

如果多个 SQL 语句出错,可以使用 SET GLOBAL SQL_SLAVE_SKIP_COUNTER 命令跳过多个 SQL 语句。

具体步骤如下:

  1. 在从库上查看出错语句的具体信息,使用 SHOW SLAVE STATUS 命令,找到 Last_Error 字段,或者查看从库错误日志。
  2. 在主库上通过 mysqlbinlog 工具查看复制的二进制日志,找到出错语句的位置。
  3. 在从库上使用 STOP SLAVE 命令停止复制。
  4. 在从库上使用 mysql 命令行客户端连接主库,使用 SELECT @@GLOBAL.gtid_executed; 命令查看主库 GTID(全局事务标识符)。
  5. 在从库上使用 SET GLOBAL gtid_slave_pos='master_uuid:executed_gtid_set' 命令设置 GTID 复制位置,其中 master_uuid 是主库的 UUID,可以在主库上使用 SELECT @@server_uuid; 命令查看,executed_gtid_set 是在主库上使用 SELECT @@GLOBAL.gtid_executed; 命令查看到的 GTID,设置时需要将 UUID 和 GTID 使用逗号隔开。
  6. 在从库上使用 START SLAVE 命令恢复复制。

这样就可以解决多个 SQL 语句的错误。

示例说明

下面是两个关于跳过报错的示例说明:

示例1:跳过单个 SQL 语句

假设主库执行 SQL 语句:

CREATE TABLE `test` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(50) NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB;

当从库执行该语句时,报错了,出错信息为:

ERROR 1060 (42S21): Duplicate column name 'id'

这时,我们可以跳过该语句,在从库上执行以下命令即可:

STOP SLAVE; 
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; 
START SLAVE;

这样就可以跳过报错语句继续复制。

示例2:跳过多个 SQL 语句

假设主库执行了多个 SQL 语句,从库在执行第二个语句时报错,出错信息为:

ERROR 1054 (42S22): Unknown column 'test' in 'field list'

此时我们可以使用以下步骤跳过多个语句。

首先,在从库上执行以下命令:

STOP SLAVE;

然后,在主库上使用 mysqlbinlog 工具查看复制的二进制日志,找到出错语句的位置,假设位置为 320,复制的 SQL 语句如下:

INSERT INTO `test` (`name`) VALUES ('hello');
INSERT INTO `test` (`test`) VALUES ('world');

执行以下命令跳过多个语句:

mysql> SET GLOBAL gtid_slave_pos='bb9f4463-7b89-11ea-9b33-0242ac1c0002:1-320';
mysql> START SLAVE;

这样,就可以跳过多个语句继续复制。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql 主从复制如何跳过报错 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • Oracle 11G密码180天过期后的修改方法

    下面是关于“Oracle 11G密码180天过期后的修改方法”的完整攻略。 标题一:新建oracle用户并设置密码 首先,在Oracle 11G中新建一个用户,方法如下: CREATE USER username IDENTIFIED BY password; 其中,username是新建用户的用户名,password是用户的密码。 示例1:新建一个名为“t…

    database 2023年5月21日
    00
  • MySQL命令行导出与导入数据库

    MySQL命令行导出与导入数据库 MySQL提供了命令行工具来完成数据库的导入和导出操作。这是一种没有GUI的操作方式,可以为需要处理大量数据的开发人员提供更多的灵活性和控制权。 导出数据库 可以使用导出命令将MySQL数据库导出到一个文件: mysqldump -u [用户名] -p [密码] [数据库名称] > [导出文件名].sql 以上面的命令…

    database 2023年5月22日
    00
  • 使用node.js实现接口步骤详细记录

    使用node.js实现接口步骤详细记录 一、什么是接口? 在计算机编程中,接口(Interface)通常是指为了满足特定的通信协议而进行的多种系统之间的通信方式。通俗地说,接口是将不同系统之间复杂的调用关系进行简化,从而提高系统之间的交互效率。接口不仅能够简化系统之间的调用关系,还能够保障系统的稳定性和安全性,减少错误率。 二、node.js实现接口的步骤 …

    database 2023年5月21日
    00
  • Docker实现Mariadb分库分表及读写分离功能

    准备工作 在开始分库分表及读写分离功能的实现前,需要完成以下准备工作: 安装和配置Docker 创建两个或以上的Mariadb容器 使用mydumper工具备份原始数据库中的表 在备份数据上运行分库分表工具 按照需要在不同的数据库中保存备份数据 实现分库分表功能 按照以下步骤实现分库分表功能: 创建用于存储分片的数据容器。可使用以下命令创建数据容器: doc…

    database 2023年5月21日
    00
  • 腾讯面试:一条SQL语句执行得很慢的原因有哪些?—不看后悔系列(推荐)

    下面是这个主题的完整攻略: 问题 一条SQL语句执行得很慢的原因有哪些? 答案 一条SQL语句执行得很慢,可能有以下原因: 索引问题:如果查询涉及的表上没有可用的索引,那么数据库必须扫描整个表来查找被查询的记录,这会导致查询速度缓慢。索引的使用方式,可以通过EXPLAIN命令来查看。 查询过程中的大量数据处理:如果查询结果集中的数据量很大,而且需要复杂的计算…

    database 2023年5月19日
    00
  • 非常不错的MySQL优化的8条经验

    非常不错的MySQL优化的8条经验 MySQL 是一种现代的数据库管理系统,广泛用于各种类型的 Web 应用程序中。当您的应用程序承载大量数据时,优化 MySQL 数据库非常重要。本文将介绍一些简单的技术,可以帮助您优化MySQL 数据库性能,提高您的应用程序的响应速度。 1. 使用正确的数据类型 当设计表时,请始终使用最小的数据类型。例如,如果您需要存储一…

    database 2023年5月22日
    00
  • SQL语句多表联查的实现方法示例

    下面是“SQL语句多表联查的实现方法示例”的完整攻略: 什么是SQL语句多表联查 SQL语句多表联查指的是在SQL语句中同时查询两个或多个表,并将它们的信息联合在一起展示。 SQL语句多表联查的实现方法 INNER JOIN INNER JOIN是最常用的多表联查方法之一。它会返回两个表中都存在的行。具体语法如下: SELECT * FROM table1 …

    database 2023年5月22日
    00
  • Linux基础知识99问(二)

    针对“Linux基础知识99问(二)”这篇文章,本次将对其进行完整的攻略。 第一步:了解文章结构与目录 在阅读本文之前,我们首先需要了解这篇文章的结构与目录。该文结构清晰,包含以下章节: 操作系统和进程 Linux系统启动过程 Shell常用命令 文件和目录权限 文件的查看、编辑、复制和移动 软件安装与卸载 网络管理与优化 每个章节都是由多个常见问题组成,这…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部