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.