文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


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

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

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

警告

此过程使用 FLUSH TABLES WITH READ LOCK,它会阻止 COMMITInnoDB 表的操作。

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

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

  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

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

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