2 wxc20062006 wxc20062006 于 2014.04.30 10:13 提问

紧急求助:生产环境,mysql双主结构,备机同步DDL语句成功,但是同步DML语句失败

问题描述:双主架构环境,最近在主机上执行DDL语句能成功同步到备机,但是在主机上执行DML语句失败,请各位帮忙看一下,谢谢!
Linux版本:
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
mysql版本
+----------------------------+
| @@version |
+----------------------------+
| 5.1.59 |
+----------------------------+

主机:192.168.0.100
备机:192.168.0.101
操作过程:
(1)在101上执行flush logs;
(2)在100上执行如下sql语句:
create table ttt(a int, b varchar(10));
insert into ttt values(1,'wxc'),(2,'wyh'),(3,'byq');
(3)在101上查看ttt的数据,结构只存在表结构,但是表中没有数据;
(4)查看101上的relaylog日志,发现如下信息:
11101 # at 102837
11102 #140430 9:52:10 server id 9 end_log_pos 97358117 Query thread_id=1498768873 exec_time=0 error_code=0
11103 use mgr/*!*/;
11104 SET TIMESTAMP=1398822730/*!*/;
11105 create table ttt(a int, b varchar(10))
11106 /*!*/;

11170 # at 103496
11171 # at 103540
11172 #140430 9:52:10 server id 9 end_log_pos 97358715 Table_map: mgr.ttt mapped to number 5791859673
11173 #140430 9:52:10 server id 9 end_log_pos 97358771 Write_rows: table id 5791859673 flags: STMT_END_F
11174
11175 BINLOG '
11176 SldgUxMJAAAALAAAAHuTzQUAANnDOFkBAAEAA21ncgADdHR0AAIDDwIeAAM=
11177 SldgUxcJAAAAOAAAALOTzQUAANnDOFkBAAEAAv/8AQAAAAN3eGP8AgAAAAN3eWj8AwAAAANieXE=
11178 '/*!*/;
11179 ### INSERT INTO mgr.ttt
11180 ### SET
11181 ### @1=1
11182 ### @2='wxc'
11183 ### INSERT INTO mgr.ttt
11184 ### SET
11185 ### @1=2
11186 ### @2='wyh'
11187 ### INSERT INTO mgr.ttt
11188 ### SET
11189 ### @1=3
11190 ### @2='byq'

从上面看,明显能看到ddl和dml语句的存在。

(5)在101上查看binlog日志中与ttt相关的内容,内容如下:
11042 # at 100405
11043 #140430 9:52:10 server id 9 end_log_pos 100510 Query thread_id=1498768873 exec_time=0 error_code=0
11044 use mgr/*!*/;
11045 SET TIMESTAMP=1398822730/*!*/;
11046 create table ttt(a int, b varchar(10))
11047 /*!*/;
但是没有发现任何插入表ttt相关的insert语句。

(6)查看了一下双主的slave状态,状态一切均正常,如下:
100状态如下:
admin@localhost : test 10:02:47> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.101
Master_User: coolcloud
Master_Port: 3307
Connect_Retry: 60
Master_Log_File: mysql-bin.000375
Read_Master_Log_Pos: 3053614
Relay_Log_File: mysql-relay-bin.000774
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000375
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 3053614
Relay_Log_Space: 449
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: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:

101状态如下:
admin@localhost : test 09:57:12> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.100
Master_User: coolcloud
Master_Port: 3307
Connect_Retry: 60
Master_Log_File: mysql-bin.000393
Read_Master_Log_Pos: 98301418
Relay_Log_File: mysql-relay-bin.001058
Relay_Log_Pos: 925373
Relay_Master_Log_File: mysql-bin.000393
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 98301418
Relay_Log_Space: 1046500
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: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:

请各位大拿帮忙看一下什么原因。
对了,忘记补充一个现象,从101的数据是能同步到100上的。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
MySQL中的DDL语句,DML语句初步
MySQL中的DDL语句: 1.建表语句 - CREATE TABLE ...; CREATE TABLE 表名( columnName dataType(length) [行级约束], columnName dataType(length) [行级约束], columnName dataType(length) [行级约束], columnName dataType(length)
mysql的DML与DDL语句
DML: Data Manipulation Language, 数据操纵语言;DDL: Data Definition Language,数据定义语言;另外,DCL:Data Control Language,数据控制语言,下节详细讲解.DML,用于查询和修改数据,包括:         insert :新增记录        update:更新原有记录        delete:删除原有记录...
DCL/DML/DDL及动态SQL语句
/* 1.动态SQL的概念 动态SQL是指在运行PL/SQL块时动态输入SQL语句。在PL/SQL块中只能执行DDL(create、alter、drop)、DCL (grant、revoke)或比较灵活的SQL语句(如select子句不带where条件); 动态SQL的性能不如静态SQL,但是比较灵活; 在PL/SQL块中编写动态SQL语句时需要将SQL语句存放到字符串变量中而且SQL语
sql重要的DML和DDL语句
查询和更新指令构成了 SQL 的 DML (数据操作语言)部分: SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT INTO - 向数据库表中插入数据 SQL 的数据定义语言 (DDL数据定义语言) 部分,重要的 DDL 语句: CREATE DATABASE - 创建新数据库 ALTER
oracle DML、DDL语句区别
DML:数据操作语言,SQL中处理数据等操作统称为数据操纵语言        它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言,不修改表的结构,只修改表的内容 需要commit 才能真正被执行 DDL:数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言        DDL比DML
DDL,DML,DCL语句的区别(MYSQL)
DDL,DML,DCL语句的区别(MYSQL)
oracle存储过程处理ddl与dml语句
declare   CURSOR C_EVENT is  select table_name from user_tables@DBLINK_YWKDB;      temp varchar2(100); begin       OPEN C_EVENT;    FETCH C_EVENT into temp;   while C_EVENT%found     Loop   
MySQL的DDL语句、DML语句与DCL语句
背景:近几年,开源数据库逐渐流行起来。由于具有免费使用、配置简单、稳定性好、性能优良等优点,开源数据库在中低端应用上占据了很大的市场份额,而 MySQL 正是开源数据库中的杰出代表。MySQL 数据库目前分为社区版(Community Server)和企业版(Enterprise),它们最重要的区别在于:社区版是自由下载而且完全免费的,但是官方不提供任何技术支持,适用于大多数普通用户;而企业版则是
mysql dml阻塞online ddl
1.版本 1)操作系统  cat /etc/issue cat /etc/issue CentOS release 6.6 (Final) Kernel \r on an \m  cat /proc/version cat /proc/version Linux version 2.6.32-504.el6.x86_64 (mockbuild@c6b9.bsys.d
mysql 主从复制双主架构在线修改表结构、在线DDL
MySQL主主复制,在线修改表结构   一直以为双主架构能解决mysql的表在线DDL的需求,但没有实际测试经验。后来发现一直的想法还是有问题的。这里做一个测试。 双主架构,在线DDL的实现步骤是:   www.2cto.com   1,首先搭建主主复制架构,只有一台提供服务,这里设为A库,另一台B库空闲 2,A库停止复制stop slave 3,在B库上