17.1.1.4 Obtaining the Replication Master Binary Log Coordinates 获取复制Master Binary Log的坐标:

17.1.1.4 Obtaining the Replication Master Binary Log Coordinates 获取复制Master Binary Log的坐标:


你需要master的当前坐标 在它的binary log 为了配置slave来启动复制进程在合适的点上


如果你有存在的数据在master上,你需要同步到你的slaves在开始复制进程前,


你必须停止处理语句在master上, 然后得到它的准备的binary log 坐标然后dump 它的数据,

在允许Master继续执行语句前,如果你不停止执行语句,数据dump和master 状态信息你使用的不会匹配 在你结束不一致的或者冲突的数据库

在slaves上。

要获得 master binary log 坐标,按照下面的步骤:



1. 开始一个session 在master上通过连接到它在命令行客户端,flush all tables和block 写操作通过执行

 FLUSH TABLES WITH READ LOCK statement:

2.对于InnoDB 表,FLUSH TABLES WITH READ LOCK 也堵塞 COMMIT操作

警告:

   留着客户端 你执行FLUSH TABLES 语句 运行,这样read lock 仍旧有效,如果你退出客户端,lock被释放。



2. 在一个不同的session在Master上,执行 SHOW MASTER STATUS 语句来确定当前的binary log 文件名和位置;

mysql > SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 73       | test         | manual,mysql     |
+------------------+----------+--------------+------------------+


文件列显示 log file的名字,Position 显示文件的位置。

在这个例子中,binary log 文件是mysql-bin.000003 和 位置是73.


记录这些值,你需要随后当你设置复制的时候使用。它们代表复制坐标 slave应该开始处理新的更新从master server.


如果master 已经之前运行了没有启动binary logging ,

log 文件名字和位置值是通过SHOW MASTER STATUS or mysqldump --master-data 会显示为空。


在那种情况下,  你需要使用的值 当指定slave的log 文件和位置是空的字符串


你现在有需要的信息老让slave 开始从binary log 读取 在正确的位置开始复制


如果你已经存在数据 需要同步到slave 在开始复制前,


如果你设置一个新的master 和slave 复制组,你可以退出第一个session 窗口来释放read lock.

posted @ 2016-07-21 11:28  czcb  阅读(149)  评论(0编辑  收藏  举报