跳至内容

如何解决使用 AWS DMS 时将 Aurora MySQL 兼容版用作源时收到的二进制日志记录错误?

1 分钟阅读
0

我有一个启用了二进制日志记录的 Amazon Aurora MySQL 兼容版数据库实例。当我将该数据库实例用作 AWS Database Migration Service (AWS DMS) 任务的源时,我收到了错误。我想对此问题进行故障排除。

简短描述

要在完全加载和 CDC,或仅 CDC 的 AWS DMS 任务中使用更改数据捕获 (CDC),请在源数据库写入器实例上启用二进制日志记录。使用写入器实例,因为只读副本不支持 CDC 操作。有关详细信息,请参阅将 MySQL 数据库用作 AWS DMS 源的限制

如果您尚未启用二进制日志记录,或者您连接到了读取器实例,则您会看到类似于以下内容的日志条目:

消息

[SOURCE_CAPTURE ]I: 系统变量 'log_bin' = 'OFF'

[SOURCE_CAPTURE ]E: 错误代码 [10001]: 必须为 MySQL 服务器启用二进制日志记录 [1020418] (mysql_endpoint_capture.c:366)

解决方法

如果您连接到读取器实例,请识别写入器实例,然后通过 AWS DMS 连接到该写入器实例。最佳做法是连接到集群端点,因为集群端点始终指向集群的当前写入器。

要确认二进制日志记录是否已启用,请使用集群端点连接到源集群写入器节点:

mysql> show global variables like "log_bin";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | OFF   |
+---------------+-------+

如果 log_bin 参数设置为 OFF,请查看集群参数组,以检查 binlog_format 参数是否设置为 ROW。如果 binlog_format 未设置为 ROW,请修改该参数,以便为 Aurora MySQL 兼容版启用二进制日志记录

**注意:**这是一个静态参数,因此您必须重启 Aurora MySQL 兼容版实例才能使此更改生效。

binlog_format 参数设置为 ROW 后,请确认您是否已启用二进制日志记录。为此,请连接到 Aurora MySQL 兼容版实例:

mysql> show global variables like "log_bin";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |
+---------------+-------+

启用二进制日志记录并确认在 AWS DMS 中使用集群写入器端点后,重新启动任务。

相关信息

将 MySQL 兼容数据库用作 AWS DMS 的源