MySQL 5.6利用GTIDs构建主从数据库(二)

2015-07-20 12:04:31 · 作者: · 浏览: 1
ry specified


自动找到binlog位置,并进行同步;
?


经过以上操作便完成了mysql主从架构的搭建;


【常见问题的处理方法】


1、场景的模拟


步骤一:主库上面创建表john,并插入3行数据。(这个时候从库和主库的数据是一致的)


mysql> select * from john;
+------+
| id? |
+------+
| 1? ? |
| 2? ? |
| 3? ? |
+------+
3 rows in set (0.19 sec)


步骤二:从库关闭slave状态


mysql> stop slave;


步骤三:主库关闭写binlog


mysql>? set sql_log_bin=off;? 关闭
Query OK, 0 rows affected (0.03 sec)


步骤四:主库插入值4


mysql> insert into john values(4);
Query OK, 1 row affected (0.04 sec)


步骤五:主库启动binlog


mysql> set sql_log_bin=on;
Query OK, 0 rows affected (0.00 sec)


步骤六:主库插入值 5


mysql> insert into john values(5);
Query OK, 1 row affected (0.00 sec)


经过以上步骤,主库和从库中john的值已经不一致了;


主库如下:



从库如下:



步骤六:修改主库id为4的行,这个时候从库就会报错了



?


Retrieved_Gtid_Set: a989adc2-2a8e-11e5-a308-000c296ecd05:1-30? 主库的Gtid序号
Executed_Gtid_Set: a989adc2-2a8e-11e5-a308-000c296ecd05:1-29? 从库执行Gtid序号
?


2、问题原因:由于id=4是没有写日志的,所以id=4并没有同步到从库,当主库删除id=4这条记录的时候,从库找不到这条记录所以报错了;


3、解决方法:GTIDs模式下的主从问题,操作如下:


mysql> stop slave;
mysql> set GTID_NEXT=’268e23d1-2216-11e5-abcc-000c296ecd05:1-30’;? ? #跳过当前从库的该序号
mysql> BEGIN;
mysql> COMMIT;
mysql> SET GTID_NEXT=’AUTOMATIC’;
mysql> START SLAVE;


经过以上操作完成了基于GTIDs的主从数据库的配置和常见问题的处理,单从便捷的角度上确实提高了主从搭建的速度;


--------------------------------------分割线 --------------------------------------


--------------------------------------分割线 --------------------------------------