文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  获取复制源二进制日志坐标

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

要将副本配置为从正确的位置开始复制过程,您需要记录源在其二进制日志中的当前坐标。

警告

此过程使用 FLUSH TABLES WITH READ LOCK,它会阻塞 COMMIT 操作,针对 InnoDB 表。

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

要获取源二进制日志坐标,请执行以下步骤

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

    mysql> FLUSH TABLES WITH READ LOCK;
    警告

    保持您发出 FLUSH TABLES 语句的客户端处于运行状态,以便读锁保持有效。如果您退出客户端,锁将被释放。

  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

您现在已拥有使副本能够从正确的位置开始从源的二进制日志中读取以启动复制所需的信息。

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