在启动MySQL之间的增量数据迁移任务时,DTS将在预检查阶段对源数据库进行binlog检查。本文将介绍源库binlog检查涉及的检查项及修复方法。

源库binlog是否开启检查

该检查项主要检查源数据库是否开启binlog功能。如果检查失败,请参考下述方法修复。

修复方法:

  1. 登录自建MySQL数据库服务器。
  2. 使用vim命令修改配置文件my.cnf中的如下参数。
    log_bin=mysql_bin
    binlog_format=row
    server_id=大于 1 的整数
    binlog_row_image=full //当自建MySQL的版本大于5.6时,需设置该项。
  3. 重启MySQL进程。
    $mysql_dir/bin/mysqladmin -u root -p shutdown
    $mysql_dir/bin/safe_mysqld &
    说明mysql_dir替换为您MySQL实际的安装目录。
  4. 登录数据传输控制台,重新执行预检查。

源库binlog模式检查

该检查项主要检查源数据库的binlog模式是否为ROW。如果检查失败,请参考下述方法修复。

修复方法:

  1. 连接自建MySQL数据库。
  2. 在数据库命令窗口执行下述语句将binlog模式设置为ROW
    set global binlog_format='ROW';
  3. 重启MySQL进程。
    $mysql_dir/bin/mysqladmin -u root -p shutdown
    $mysql_dir/bin/safe_mysqld &
    说明mysql_dir替换为您MySQL实际的安装目录。
  4. 登录数据传输控制台,重新执行预检查。

源库binlog存在性检查

该检查项主要检查源数据库的binlog文件是否被删除。如果检查失败,说明源数据库的binlog文件不完整,请参考下述方法修复。

修复方法:

  1. 预检查对话框中,单击源库binlog存在性检查栏目后的提示binlog存在性检查错误
  2. 在弹出的查看详情对话框中,查看失败原因中提示缺少的binlog文件,本案例缺少的binlog文件为mysql_bin.000003。binlog存在性检查修复方法
  3. 连接自建MySQL数据库。
  4. 在数据库命令窗口执行下述语句,清除指定的binlog文件之前的所有binlog文件。
    说明 本案例中缺失的binlog文件为mysql_bin.000003,指定的日志文件为该文件之后的第一个文件,即填入的binlog_filename为mysql_bin.000004
    PURGE BINARY LOGS TO '<binlog_filename>';
    示例:
    PURGE BINARY LOGS TO 'mysql_bin.000004';
  5. 登录数据传输控制台,重新执行预检查。

Mysql源库binlog_row_image是否为FULL

该检查项主要检查源数据库的binlog_row_image是否为full。如果检查失败,说明源数据库的binlog未记录全镜像,请参考下述方法修复。

修复方法:

  1. 连接自建MySQL数据库。
  2. 在数据库命令窗口执行下述语句,将binlog_row_image设置为full
    set global binlog_row_image=FULL;
  3. 登录数据传输控制台,重新执行预检查。