我有一个 Amazon Aurora MySQL 兼容版数据库集群。我想增加二进制日志的保留时间,以提高二进制日志提取的性能。
解决方案
**注意:**Aurora MySQL 兼容版不使用二进制日志进行集群内复制。此外,Aurora MySQL 兼容版全局数据库也不使用二进制日志。
启用二进制日志记录
完成以下步骤:
- 打开 Amazon Relational Database Service (Amazon RDS) 控制台。
- 在导航窗格中,选择参数组。
**注意:**如果您使用默认 Aurora 数据库集群参数组,请同时创建新的数据库集群参数组。然后,对于 Type(类型),选择 DB cluster parameter group(数据库集群参数组)。
- 选择数据库自定义集群参数组,然后选择 Edit(编辑)。
- 在 Modifiable parameters(可修改参数)下,选择 binlog_format 并更改格式。例如,选择 ROW、STATEMENT 或 MIXED。有关详细信息,请参阅访问 MySQL 二进制日志。
- 选择 Save changes(保存更改)。
当启用二进制日志记录格式时,它会通过以下方式影响 Aurora MySQL 兼容版数据库集群的性能:
- 二进制日志会导致额外的写入开销。最佳做法是仅在必要时才启用二进制日志记录。
- 由于二进制日志恢复过程,二进制日志会增加重启时的引擎启动时间。
最佳做法是,在以下情况下,在 Aurora MySQL 兼容版数据库集群中启用二进制日志记录:
- 对于跨多个 AWS 区域的 Aurora 只读副本
- 对于到外部 MySQL 兼容版数据库的 Aurora 手动复制
有关详细信息,请参阅如何为 Aurora MySQL 兼容版集群启用二进制日志记录?
增加二进制日志保留时间
在删除二进制日志之前,必须选择保留二进制日志的时间范围。保留时间范围必须足够长,以便您能在删除之前确认 Aurora 已将更改应用于您的副本。
要增加数据库集群的二进制日志保留时间范围,请使用 mysql_rds_set_configuration 过程。例如,要将二进制日志保留 7 天,请在写入实例上运行以下命令:
CALL mysql.rds_set_configuration('binlog retention hours', 168);
对于版本低于 2.11 的 Aurora MySQL 兼容版(兼容 MySQL 5.7 的 Aurora),二进制日志保留小时数的最大值为 168(7 天)。因此,您必须输入 1 到 168 之间的数字作为值,或者输入 NULL。
对于 2.11.0 及更高版本,二进制日志保留小时数的最大值为 2160(90 天)。如果您为二进制日志保留小时数输入的值大于 2160,则该值将默认设置为 2160。
相关信息
Aurora 与 MySQL 之间或 Aurora 与其他 Aurora 数据库集群之间的复制(二进制日志复制)