Welcome 微信登录

首页 / 数据库 / MySQL / MySQL 5.6主从复制第四部分[一些被忽视的操作细节]

MySQL 5.6主从复制第四部分[一些被忽视的操作细节]1. STOP SLAVE
 
从服务器上负责同步的有二类线程:
 1) IO thread
 2) SQL thread
 
IO thread负责获取master上的binary log, 然后多个sql threads负责执行。
 
IO thread 决定了Retrieved_Gtid_Set
 SQL thread 决定了Executed_Gtid_Set
 
由于IO thread先于SQL thread,Retrieved_Gtid_Set可能会略多于Executed_Gtid_Set。
 比如: 
mysql [localhost] {msandbox} (test) > SHOW slave STATUS G
.......
.......
         Retrieved_Gtid_Set: 67cd9435-7cae-11e2-aa8d-00241db92e69:1-9
            Executed_Gtid_Set: 67cd9435-7cae-11e2-aa8d-00241db92e69:1-7
                Auto_Position: 1所以,在stop slave的时候,正确的操作是:
 1) stop slave io_thread;
 2) show slave status 确定Executed_Gtid_Set赶上了Retrieved_Gtid_Set
 3) stop slave sql_thread.
 
2.flush tables with read lock 与 show slave status
 
在一台完全正常的从服务器上开一个session 1:
 mysql> flush tables with read lock;
 如果主服务器有更新,
 在此从服务器上再开一个session2:
 mysql> show slave status,将会卡住, 直到在session1中执行unlock tables。
 
如果show slave status也是在session 1中执行的, 那么就没办法恢复了。。。。
 
mysql [localhost] {msandbox} (test) > flush tables with read lock;
 Query OK, 0 rows affected (0.01 sec)
 //这时主服务器发生了更新操作。
 mysql [localhost] {msandbox} (test) > show slave status;
 卡在这里…
 当然ctrl+c可以取消,
 
Ctrl-C — sending “KILL QUERY 1″ to server …
 Ctrl-C — query aborted.
 Ctrl-C — sending “KILL 1″ to server …
 Ctrl-C — query aborted.
 ERROR 2013 (HY000): Lost connection to MySQL server during query
 mysql [localhost] {msandbox} (test) >
 即使这时再unlock tables也没有用。。早已经断开连接了。。
 mysql [localhost] {msandbox} (test) > unlock tables;
 ERROR 2006 (HY000): MySQL server has gone away
 No connection. Trying to reconnect…
 Connection id: 14
 Current database: test
 
Query OK, 0 rows affected (0.01 sec)
 
而且现在mysqld都无法stop了…
 [modify@H209 msb_5_6_10_b]$ ./stop
 Warning; Aborted waiting on pid file: ‘/home/modify/sandboxes/msb_5_6_10_b/data/mysql_sandbox5612.pid’ after 190 seconds
 Attempting normal termination — kill -15 10858
 
所以在 flush tables with read lock 之前,要先stop slave…
 
http://bugs.mysql.com/?id=68460相关阅读:MySQL 5.6主从复制第一部分[简介及配置] http://www.linuxidc.com/Linux/2013-04/82712.htmMySQL 5.6主从复制第二部分[恢复某一台从服务器] http://www.linuxidc.com/Linux/2013-04/82713.htmMySQL 5.6主从复制第三部分[把从服务器提升为主服务器] http://www.linuxidc.com/Linux/2013-04/82714.htmMySQL 5.6主从复制第四部分[一些被忽视的操作细节] http://www.linuxidc.com/Linux/2013-04/82715.htmMySQL 主从复制事件校验 MySQL Replication Event Checksum http://www.linuxidc.com/Linux/2013-04/82716.htm使用pt-table-checksum检查主从复制是否正常 http://www.linuxidc.com/Linux/2013-04/82717.htmMySQL 5.6主从复制第三部分[把从服务器提升为主服务器]MySQL 主从复制事件校验 mysql Replication Event Checksum相关资讯      MySQL 5.6  MySQL 5.6主从复制 
  • MySQL 5.6 的--dump-slave参数的用  (07月03日)
  • MySQL 5.6快速定位不合理索引  (05月07日)
  • MySQL 5.6 参数之 extra_port  (01月14日)
  • Linux下安装MySQL 5.6.10包冲突问  (05月10日)
  • MySQL-5.6.x二进制版本安装记录  (04月10日)
  • MySQL 5.6开启全查询日志时注意事  (12/21/2015 19:48:58)
本文评论 查看全部评论 (0)
表情: 姓名: 字数