跳到主要内容
跳到主要内容

RDS MySQL 源设置指南

本分步指南介绍如何配置 Amazon RDS MySQL,通过 MySQL ClickPipe 将数据复制到 ClickHouse Cloud。有关 MySQL CDC 的常见问题解答,请参阅 MySQL 常见问题页面

启用二进制日志保留

二进制日志是一组日志文件,其中包含对 MySQL 服务器实例所做数据修改的信息,而二进制日志文件是实现复制所必需的。要在 RDS MySQL 中配置二进制日志保留,您必须先启用二进制日志记录,然后增加 binlog 保留时间间隔

1. 通过自动备份启用二进制日志记录

自动备份功能决定是否为 MySQL 启用二进制日志记录。您可以在 RDS 控制台中通过导航到 Modify > Additional configuration > Backup,并勾选 Enable automated backups 复选框(如果尚未选中)来为实例配置自动备份。

在 RDS 中启用自动备份

我们建议根据具体的复制场景,将 Backup retention period 设置为相对较长的值。

2. 增加 binlog 保留时间间隔

注意

如果 ClickPipes 尝试恢复复制时,所需的 binlog 文件由于配置的 binlog 保留时间而已被清除,那么对应的 ClickPipe 将进入错误状态,并且需要重新同步。

默认情况下,Amazon RDS 会尽快清除二进制日志(即 lazy purging)。我们建议将 binlog 保留时间间隔增加到至少 72 小时,以确保在故障场景下复制所需的二进制日志文件仍然可用。要为二进制日志保留设置时间间隔(binlog retention hours),请使用 mysql.rds_set_configuration 存储过程:

mysql=> call mysql.rds_set_configuration('binlog retention hours', 72);

如果未配置此项,或将其间隔设置得过短,可能会导致二进制日志中出现间断,从而影响 ClickPipes 恢复复制的能力。

配置 binlog 设置

在 RDS 控制台中单击你的 MySQL 实例,然后导航到 Configuration 选项卡即可找到参数组。

提示

如果你使用的是 MySQL 集群,下面的参数位于 DB cluster 参数组中,而不是 DB instance 参数组中。

在 RDS 中查找参数组的位置

单击参数组链接,会跳转到该参数组的独立页面。你应当在右上角看到一个 Edit 按钮。

编辑参数组

需要按如下方式设置以下参数:

  1. binlog_format 设置为 ROW
将 binlog_format 设置为 ROW
  1. binlog_row_metadata 设置为 FULL
将 binlog_row_metadata 设置为 FULL
  1. binlog_row_image 设置为 FULL
将 binlog_row_image 设置为 FULL

然后,单击右上角的 Save Changes。你可能需要重启实例以使更改生效——如果在 RDS 实例的 Configuration 选项卡中参数组链接旁看到 Pending reboot,则表示需要重启。

启用 GTID 模式

提示

MySQL ClickPipe 也支持在未启用 GTID 模式的情况下进行复制。但为了获得更好的性能并简化故障排查,建议启用 GTID 模式。

全局事务标识符(GTID) 是分配给 MySQL 中每个已提交事务的唯一 ID。它们可以简化二进制日志(binlog)复制,并使故障排查更加简单。我们建议启用 GTID 模式,以便 MySQL ClickPipe 可以使用基于 GTID 的复制。

基于 GTID 的复制在 Amazon RDS for MySQL 版本 5.7、8.0 和 8.4 中受支持。要为 Aurora MySQL 实例启用 GTID 模式,请执行以下步骤:

  1. 在 RDS 控制台中,单击您的 MySQL 实例。
  2. 单击 Configuration 选项卡。
  3. 单击参数组链接。
  4. 单击右上角的 Edit 按钮。
  5. enforce_gtid_consistency 设置为 ON
  6. gtid-mode 设置为 ON
  7. 单击右上角的 Save Changes
  8. 重启实例以使更改生效。
已启用 GTID

提示

MySQL ClickPipe 也支持在未启用 GTID 模式的情况下进行复制。但为了获得更好的性能并简化故障排查,建议启用 GTID 模式。

配置数据库用户

以管理员用户身份连接到你的 RDS MySQL 实例,并执行以下命令:

  1. 为 ClickPipes 单独创建一个用户:

    CREATE USER 'clickpipes_user'@'host' IDENTIFIED BY 'some-password';
    
  2. 授予该用户 schema 权限。以下示例展示了为 mysql 数据库授予的权限。对于每个要复制的数据库和主机,重复执行这些命令:

    GRANT SELECT ON `mysql`.* TO 'clickpipes_user'@'host';
    
  3. 为该用户授予复制权限:

    GRANT REPLICATION CLIENT ON *.* TO 'clickpipes_user'@'%';
    GRANT REPLICATION SLAVE ON *.* TO 'clickpipes_user'@'%';
    

配置网络访问

基于 IP 的访问控制

要限制进入 Aurora MySQL 实例的流量,请将文档中列出的静态 NAT IP 添加到 RDS 安全组的 Inbound rules(入站规则) 中。

在 RDS MySQL 中查找安全组的位置
为上述安全组编辑入站规则

若要通过私有网络连接到 RDS 实例,可以使用 AWS PrivateLink。请按照 ClickPipes 的 AWS PrivateLink 设置指南 完成连接配置。

后续步骤

现在,您的 Amazon RDS MySQL 实例已经配置好用于 binlog 复制,并已安全连接到 ClickHouse Cloud,您就可以创建第一个 MySQL ClickPipe。关于 MySQL CDC 的常见问题,请参阅 MySQL 常见问题页面