`
wayne173
  • 浏览: 362904 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql主从同步出现异常语句跳过错误处理

 
阅读更多

1.跳过操作:

mysql>slave stop;

mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 跳过一个事务

mysql>slave start

2.SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1,跳过一个事务的概念。

在mysql中,对于sql的 binary log 他实际上是由一连串的event组成的一个组,即事务组。

我们在master上可以通过

SHOW BINLOG EVENTS 来查看一个sql里有多少个event。

例如:

mysql> SHOW BINLOG EVENTS in 'mysql-bin.000003' from 9508\G

*************************** 1. row ***************************一个row代表一个事务组

Log_name: mysql-bin.000003

Pos: 9508

Event_type: Query

Server_id: 2

End_log_pos: 9944

Info: use `BK`; CREATE DEFINER=`root`@`%` PROCEDURE `zoucm`( in Spwd VARCHAR(20), in Npwd varchar(20), in YH VARCHAR(20))

pwd_s:

BEGIN

DECLARE Pid int;

select count(*) into Pid from users where user = YH and PWD = Spwd;

if Pid=1 THEN

update users set PWD=Npwd where user = YH and PWD = Spwd;

select 0 state ;

LEAVE pwd_s;

ELSE

select 1 as state ;

end if;

end pwd_s

*************************** 2. row ***************************

Log_name: mysql-bin.000003

Pos: 9944

Event_type: Query

Server_id: 2

End_log_pos: 10080

Info: use `liguanjia_cn`; CREATE TABLE `sss` (

`ds` int(11) NULL ,

PRIMARY KEY (`ds`)

)

*************************** 3. row ***************************

Log_name: mysql-bin.000003

Pos: 10080

Event_type: Query

Server_id: 2

End_log_pos: 10214

Info: use `liguanjia_cn`; CREATE TABLE `dd` (

`ss` double NULL ,

PRIMARY KEY (`ss`)

)

3。实例出错解决:

slave出错信息:

mysql> show slave status\G

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

Slave_IO_State: Waiting for master to send event

Master_Host: XXXXXX

Master_User: replication

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000003

Read_Master_Log_Pos:14413

Relay_Log_File: LNMP3-relay-bin.000004

Relay_Log_Pos: 2782

Relay_Master_Log_File: mysql-bin.000003

Slave_IO_Running: Yes

Slave_SQL_Running: No

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table: liguanjia_cn.%,liguanjia_com.%

Replicate_Wild_Ignore_Table:

Last_Errno: 1305

Last_Error: Error 'PROCEDURE BK.zoucm does not exist' on query. Default database: 'BK'. Query: 'drop procedure zoucm'

Skip_Counter: 0

Exec_Master_Log_Pos:13973

Relay_Log_Space: 4472

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: 1305

Last_SQL_Error: Error 'PROCEDURE BK.zoucm does not exist' on query. Default database: 'BK'. Query: 'drop procedure zoucm'

1 row in set (0.00 sec)

master从出错开始binlog日志事务组列表:

mysql> SHOW BINLOG EVENTS in 'mysql-bin.000003' from13973 \G

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

Log_name: mysql-bin.000003

Pos:13973

Event_type: Query

Server_id: 2

End_log_pos:14054

Info: use `BK`; drop procedure zoucm

*************************** 2. row ***************************

Log_name: mysql-bin.000003

Pos: 14054

Event_type: Query

Server_id: 2

End_log_pos: 14162

Info: use `liguanjia_cn`; INSERT INTO `dd` (`ss`) VALUES ('dd')

*************************** 3. row ***************************

Log_name: mysql-bin.000003

Pos: 14162

Event_type: Query

Server_id: 2

End_log_pos: 14299

Info: use `liguanjia_cn`; ALTER TABLE `dd`

MODIFY COLUMN `ss` int NOT NULL DEFAULT 0 FIRST

*************************** 4. row ***************************

Log_name: mysql-bin.000003

Pos: 14299

Event_type: Query

Server_id: 2

End_log_pos:14413

Info: use `liguanjia_cn`;UPDATE `dd` SET `ss`='123' WHERE (`ss`='0')

4 rows in set (0.00 sec)

操作目标:

"drop procedure zoucm " 该语句是出错源头。

如果我们想直接跳到 “UPDATE `dd` SET `ss`='123' WHERE (`ss`='0')” 改语句,它们之间隔着3个事务组。

mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 3 就之间从“UPDATE `dd` SET `ss`='123' WHERE (`ss`='0')该语句开始同步

分享到:
评论

相关推荐

    MySQL主从同步配置过程.docx

    MySQL 主从同步配置过程 一、 MySQL 主从同步配置概述 MySQL 主从同步配置是指将 MySQL 数据库的数据从一台服务器(主服务器)同步到另一台服务器(从服务器)的过程。这种配置可以实现数据的高可用性和灾难恢复,...

    mysql主从同步解决方案及优化

    淘宝资深工程师丁奇在2009年的分享中详细介绍了MySQL主从同步的原理、配置、优化以及在实际应用中遇到的问题和解决方案。 首先,MySQL主从同步的基本概念指的是在一个数据库实例(主库)上对数据进行修改操作后,...

    Linux配置mysql主从同步

    ### Linux下MySQL主从同步配置详解 #### 一、引言 在数据库管理领域,MySQL主从同步是一种常见的数据复制技术,它可以帮助我们构建高可用性和数据冗余性,从而提高系统的稳定性和可靠性。本文将详细介绍如何在Linux...

    12.1: MySQL主从同步 、 主从同步模式 、 总结和答疑.docx

    MySQL主从同步配置和实现 MySQL主从同步是指将一个MySQL服务器的数据实时地复制到另一个或多个服务器上,以实现数据的高可用性和灾难恢复。这种方式可以实现数据的热备援、读写分离、负载均衡等功能。 1. 案例 1:...

    Linux-Mysql主从同步配置

    Linux-Mysql 主从同步配置 本文将详细解释 Linux-Mysql 主从同步配置的步骤和知识点。 一、主服务器配置 1. 编辑数据库配置文件 my.cnf, 一般在/etc/目录下。 2. 在[mysqld]下面加入以下代码: * log-bin=mysql...

    mysql主从同步检查脚本

    mysql主从同步检查脚本 。主要运用于日常maysql运行主从同步状态检查。

    Mysql主从同步备份策略

    Mysql主从同步备份策略 五月 18th, 2009 at 17:30 - 3,803 views 环境: 主从服务器上的MySQL数据库版本同为5.1.34 主机IP:192.168.0.1 从机IP:192.168.0.2 一. MySQL主服务器配置 1.编辑配置文件/etc/my.cnf # ...

    mysql主从同步搭建修改优化版.pdf

    MySQL主从同步是一种常见的数据库高可用性和数据冗余策略,它允许数据在多个服务器之间实时复制,确保即使在一台服务器故障时,数据仍然可以被访问。以下是对搭建、修改和优化MySQL主从同步过程的详细解释: 1. **...

    《深入理解MySQL主从原理32讲》推荐篇

    作者:高鹏(网名八怪),《深入理解MySQL主从原理32讲》系列文的作者。2008年开始至今一直从事Oracle/MySQL相关工作,现任易极付高级DBA,Oracle Ocm。有丰富的数据库性能调优,故障诊断经验,并且对MySQL源码有...

    windows下mysql主从同步备份步骤

    在Windows环境下,MySQL主从同步备份是一种常见的高可用性和数据冗余策略,确保数据的安全性和一致性。以下是详细步骤,适用于MySQL 5.0版本: 1. **创建备份账户**: 在主服务器A上,我们需要创建一个用于复制的...

    mysql主从同步配置

    MySQL主从同步是一种数据库复制技术,它允许数据从一个MySQL服务器(称为“主服务器”)实时复制到另一个或多个服务器(称为“从服务器”)。这种配置对于数据备份、负载均衡和高可用性至关重要。在Java开发中,了解...

    MySql主从同步监控程序源码

    MySQL主从同步是数据库高可用性和数据一致性的关键机制,特别是在大型分布式系统中。这个名为"MySql主从同步监控程序源码"的项目是用C#语言开发的,旨在帮助管理员实时监控MySQL数据库的主从复制状态,确保数据在...

    MySQL主从同步和主主同步详细过程

    超详细MySQL主从配置和主主同步总结。。。。。。。。。

    mysql主从同步+MyCat读写分离+分库分表+Haproxy高可用+Keepalived心跳机制+虚拟IP.rar

    MySQL主从同步是一种数据库复制技术,它允许一个MySQL服务器(主服务器)的数据被实时地复制到其他服务器(从服务器)上。这种同步可以确保数据的一致性,并在主服务器出现问题时提供故障转移的能力。实现主从同步的...

    Debian系统下MySQL主从同步复制

    ### Debian系统下MySQL主从同步复制 在Debian系统中实现MySQL主从同步复制是一种常见的数据库高可用性和负载均衡策略。这种技术可以确保数据的安全性并提高系统的整体性能。接下来,我们将详细介绍如何在Debian环境...

    Mysql主从半同步配置

    MySQL主从半同步复制是介于异步复制和全同步复制之间的一种模式,它提供了更好的数据安全性和一致性,同时也尽可能地减少了性能损失。 首先,我们来了解一下什么是MySQL半同步复制。在半同步复制模式下,主服务器在...

Global site tag (gtag.js) - Google Analytics