Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 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

现在您拥有了使副本从源的二进制日志正确开始复制的信息。

下一步取决于您是否在源上有现有的数据: