跳转到主内容
跳转到主内容

RDS MariaDB 源端设置指南

本指南将逐步介绍如何配置 RDS MariaDB 实例,使其能够通过 MySQL ClickPipe 进行数据复制。


信息

我们也建议你阅读 MySQL 常见问题解答文档,可在这里查看。该常见问题页面会持续更新。

启用二进制日志保留

二进制日志是一组日志文件,其中包含在 MySQL 服务器实例上进行的数据修改的信息。复制功能需要二进制日志文件。必须完成以下两个步骤:

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

automated backups 功能决定是否为 MySQL 启用或禁用二进制日志记录。可以在 AWS 控制台中进行配置:

在 RDS 中启用自动备份

建议根据具体的复制场景,将备份保留期设置为相对较长的值。

2. Binlog 保留时间(小时)

Amazon RDS for MariaDB 采用不同的方式来设置 binlog 的保留时长,即包含变更的 binlog 文件被保留的时间。如果在 binlog 文件被删除之前,某些变更尚未被读取,则复制将无法继续。binlog 保留时间的默认值为 NULL,这意味着不会保留任何二进制日志。

要指定在某个 DB 实例上保留二进制日志的小时数,请使用 mysql.rds_set_configuration 函数,并将 binlog 保留时间设置得足够长,以保证复制可以完成。推荐的最小值为 24 hours

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

在参数组中配置 binlog 设置

在 RDS 控制台中点击您的 MariaDB 实例,然后导航到 Configurations 选项卡,可以找到参数组。

Where to find parameter group in RDS

点击参数组链接后,您会进入参数组详情页面。您会在右上角看到一个 Edit 按钮:

Edit parameter group

需要按如下方式设置 binlog_formatbinlog_row_metadatabinlog_row_image

  1. binlog_format 设置为 ROW
Binlog format to ROW
  1. binlog_row_metadata 设置为 FULL
Binlog row metadata to FULL
  1. binlog_row_image 设置为 FULL
Binlog row image to FULL

接下来,点击右上角的 Save Changes。您可能需要重启实例以使更改生效。如果在 RDS 实例的 Configurations 选项卡中,您在参数组链接旁看到 Pending reboot,这通常表明需要重启实例。


提示

如果您使用的是 MariaDB 集群,上述参数会在 DB Cluster 参数组中,而不是在 DB 实例参数组中。

启用 GTID 模式

全局事务标识符(GTID)是在 MySQL/MariaDB 中分配给每个已提交事务的唯一 ID。它们简化了二进制日志(binlog)复制,并使故障排查更加简单。MariaDB 默认启用 GTID 模式,因此用户无需进行任何额外操作即可使用它。

配置数据库用户

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

  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 的访问控制

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

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

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