如何设置MySQL数据库备份的binlog_format

数据灾备(DBS)提供数据全量备份、增量备份和数据恢复等能力。为了保证备份正常运行,您在配置备份实例时,数据灾备(DBS)对待备份的数据库配置和账号有一定要求。本文介绍如何设置MySQL数据库备份的binlog_format。

报错场景

数据灾备(DBS)控制台配置备份计划的预检查阶段,预检查页面会显示检测结果失败,并提示失败原因是源库binlog_format不是ROW模式。更多详情,请参见步骤三:通过数据源配置备份(推荐)

使用说明

  • binlog_format需要设置为ROW,ROW模式下会将DML操作完整的前镜像和后镜像数据,便于数据恢复。

  • binlog_format不推荐设置为statement、mixed模式,相比而言ROW模式更为稳定和可靠。

  • binlog_format设置为ROW,只会改变binlog日志内容,不会影响数据库查询,但建议kill数据库当前所有连接,以保证ROW模式在所有数据库连接上生效。

操作步骤

  1. 使用高权限账号在源数据库中执行如下命令,将binlog_format设置为ROW

    SET GLOBAL binlog_format = 'ROW';

    您可以通过如下命令查看当前MySQL数据库的binlog_format参数取值:

    SHOW GLOBAL VARIABLES LIKE 'binlog_format';

  2. kill当前数据库所有连接,否则连接中的进程可能会以非ROW模式继续写入,导致增量数据不一致。