Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  Obtaining the Replication Source Binary Log Coordinates

19.1.2.4 获取复制源二进制日志坐标

为了配置复制源以在正确的点开始复制过程,您需要记录源的当前二进制日志坐标。

Warning

这个过程使用FLUSH TABLES WITH READ LOCK,该语句将阻塞COMMIT操作对InnoDB表。

如果您计划关闭源以创建数据快照,可以选择跳过这个过程,而是将二进制日志索引文件与数据快照一起存储。在这种情况下,源在重启时创建新的二进制日志文件。因此,复制源必须从该文件的开始处开始复制过程,这是源的下一个二进制日志文件,位于已复制的二进制日志索引文件中。

要获取源二进制日志坐标,请按照以下步骤操作:

  1. 在源上启动一个会话,使用命令行客户端连接到源,并执行FLUSH TABLES WITH READ LOCK语句以刷新所有表和阻塞写语句:

    mysql> FLUSH TABLES WITH READ LOCK;
    Warning

    不要退出客户端,以保持读锁定的效果。如果您退出客户端,锁定将被释放。

  2. 在源上启动另一个会话,使用SHOW BINARY LOG STATUS语句来确定当前二进制日志文件名和位置:

    mysql> SHOW BINARY LOG STATUS\G
    *************************** 1. row ***************************
                 File: mysql-bin.000003
             Position: 73
         Binlog_Do_DB: test
     Binlog_Ignore_DB: manual, mysql
    Executed_Gtid_Set: 3E11FA47-71CA-11E1-9E33-C80AA9429562:1-5
    1 row in set (0.00 sec)

    File列显示日志文件名,Position列显示文件中的位置。在这个示例中,二进制日志文件是mysql-bin.000003,位置是73。记录这些值,因为您将需要它们以设置复制源。它们表示复制源应该从何处开始处理来自源的新更新。

    如果源之前曾经禁用了二进制日志记录,SHOW BINARY LOG STATUSmysqldump --source-data显示的日志文件名和位置为空。在这种情况下,您需要使用的值是空字符串('')和4

现在,您已经拥有了启用复制源以从正确的位置开始读取二进制日志的信息。

下一步取决于您在源上是否有现有数据。选择以下选项之一: