要配置副本以在正确的位置启动复制过程,您需要在其二进制日志中记录源的当前坐标。
如果您计划关闭源来创建数据快照,您可以选择跳过这个过程,而是将二进制日志索引文件的副本与数据快照一起存储。在这种情况下,源在重新启动时创建一个新的二进制日志文件。因此,副本必须启动复制过程的源二进制日志坐标就是新文件的起点,它是源上的下一个二进制日志文件,位于复制的二进制日志索引文件中列出的文件之后。
要获得源二进制日志坐标,请遵循以下步骤:
通过命令行客户机连接到源上,在源上启动一个会话,并通过执行
使用读锁刷新表
声明:mysql> FLUSH table WITH READ LOCK
警告留下您发出的
刷新表
语句,使读锁保持有效。如果退出客户端,锁将被释放。在源上的另一个会话中,使用
显示主状态
语句来确定当前二进制日志文件的名称和位置:mysql >显示主进程状态+------------------+----------+--------------+------------------+ | 文件位置| | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin。000003 | 73 | |测试手册,mysql | +------------------+----------+--------------+------------------+
的
文件
列显示日志文件的名称和位置
列显示文件中的位置。本例中,二进制日志文件为mysql-bin.000003
位置是73。记录这些值。稍后在设置副本时需要它们。它们表示复制坐标,复制应该在此位置开始处理来自源的新更新。如果源以前在禁用二进制日志记录的情况下运行过,则日志文件的名称和位置值将显示
显示主状态
或, mysqldump——主数据是空的。在这种情况下,稍后在指定源的二进制日志文件和位置时需要使用的值是空字符串(”
),4
.
现在,您已经获得了启用副本所需的信息,以便在正确的位置开始从源的二进制日志中读取以启动复制。
下一步取决于源上是否有现有数据。选择以下选项之一:
如果在开始复制之前有需要与副本同步的现有数据,请让客户机继续运行,以便锁保持在适当的位置。这可以防止进一步的更改,因此复制到副本的数据与源数据是同步的。继续第2.2.5节“选择数据快照的方法”.
如果要设置新的源和副本组合,可以退出第一个会话以释放读锁。看到第2.2.6.1节,“使用新源和副本建立复制”如何进行。