参数配置常见问题

如何清理undo日志

PolarDB支持在控制台配置innodb_max_undo_log_sizeinnodb_undo_log_truncate参数,请参见https://developer.aliyun.com/article/655895

如何开启PolarDB的Binlog?

PolarDB的Binlog默认是关闭的,若要开启Binlog,在控制台把loose_polar_log_bin参数设置为ON即可,请参见开启Binlog

说明
  • 开启Binlog会重启集群,可能会出现1分钟以内的连接闪断。重启节点的时间长短跟您业务的数据量有关,几分钟到几小时不等,建议您在业务低谷期开启Binlog,并确保应用具备重连机制。

  • 拉取、订阅或同步Binlog(例如使用DTS等工具)时,建议使用PolarDB的主地址,直接指向生成Binlog的主节点,具有更好的兼容性和稳定性。

  • 开启Binlog后,数据库提交超大事务时,会阻塞其它事务的提交,并可能会影响集群的重启和变配时长。

  • loose_polar_log_bin参数为全局(Global)级别参数。会话(Session)级别的Binlog功能需要修改sql_log_bin参数,目前不支持修改该参数,以免造成Binlog数据丢失。

保存策略

Binlog文件有如下两种保存策略:

  • 开启Binlog后,文件默认保存3天,超过3天的Binlog文件会被自动删除。

    说明
    • 在2023年11月23日前购买的PolarDB MySQL版集群,其Binlog文件默认保存两周(14天)。

    • 在2024年1月17日前购买的PolarDB MySQL版集群,其Binlog文件默认保存一周(7天)。

  • 关闭Binlog后,已有的Binlog文件会一直保留,不会自动删除。

修改保存时长

重要

修改Binlog保存时长不会造成连接闪断,也不需要重启集群。

但如果修改保存时长导致大量Binlog文件需要被清除(如10 TB),则在清除时可能会造成短时间的数据库写入异常。因此,在Binlog文件较大的情况下,建议在业务低峰期进行操作,并分多次缩短Binlog的保存时长,每次清除一部分Binlog数据。

  • 若您的集群已开启Binlog,您可以通过如下两种方式修改Binlog文件保存时长:

    • 若集群版本为PolarDB MySQL版5.6,您可以通过修改loose_expire_logs_hours(取值范围为0~2376,单位为小时,默认值为72)的参数值来设置Binlog的保存时长。0表示不自动删除Binlog文件。

    • 若集群版本为PolarDB MySQL版5.7或8.0,您可以通过修改binlog_expire_logs_seconds(取值范围为0~4294967295,单位为秒,默认值为259200)的参数值来设置Binlog的保存时长。0表示不自动删除Binlog文件。

      说明

      通过修改这两个参数的参数值来设置Binlog的保存时长后,集群中历史Binlog文件不会被立即自动清除。此时若您需要清除历史Binlog文件,可以通过如下三种方法之一:

      • 当集群中最后一个Binlog文件达到max_binlog_size,切换到新的Binlog文件后,这些历史Binlog文件将会被自动清除。

      • 使用高权限账号执行flush binary logs命令可以立即触发Binlog文件切换并清除过期的Binlog文件。

      • 您也可重启集群。集群重启后将自动清除历史Binlog文件。

  • 若您的集群未开启Binlog,此时如需删除Binlog文件,您可以重新打开Binlog,将上述Binlog的保存时长参数(loose_expire_logs_hoursbinlog_expire_logs_seconds)设置为一个较小的值,等文件超过保存时长自动删除后再关闭Binlog。

如何设置实例参数?

请参见设置集群参数和节点参数

为什么参数修改一直显示进行中?如何避免这种情况?

参数修改一直处于进行中,可能有以下几点原因:

  • 修改的参数和其他参数有依赖关系,例如开启hotspot需要先开启Binlog,innodb_io_capacity受限于innodb_io_capacity_max

  • 修改的参数和其他参数有冲突,无法同时开启。例如loose_hotspotrds_ic_reduce_hint_enable参数冲突,想要开启loose_hotspot需要先关闭rds_ic_reduce_hint_enableloose_polar_log_bininnodb_trx_resume也不支持同时开启。

  • 修改的参数在当前版本不支持,需要升级版本或取消修改参数任务。

如果修改参数任务一直未能成功,可以提交工单联系售后工程师处理。

如何打开event_scheduler参数?

event_scheduler参数是默认打开的,但只有RW节点开启,您可以连接至主节点查看该参数是不是开启状态show global variables like '%event_scheduler%';

修改的参数是全局生效的吗?是否可以只修改某个节点的参数?

  • 当修改的是全局参数时,只能针对整个集群生效;

  • 目前只有非全局参数允许对个别节点生效。

修改需要重启实例的参数后,重启用时多久?

如果修改需要重启的参数,重启不可取消。重启时间受数据量影响,从几分钟到几小时不等,建议在业务低峰期重启,同时业务侧做好重连机制。您可以设置在实例可维护窗口执行修改参数任务。更多重启节点相关操作请参见重启节点

修改参数是立即生效吗?可以在指定时间生效吗?

修改的参数会在修改参数任务完成后立即生效,若您不想立即生效,支持设置在可维护窗口修改参数。如果您需要在可维护窗口外的其他指定时间修改参数,可以通过调用修改参数API实现,请参见ModifyDBNodesParameters

如何设置参数可以提高性能?

  • 如果您想提高查询性能,推荐使用热点行优化功能,详情请参见热点行优化

  • 如果您的数据库是8.0版本,您可以使用高性能参数模板功能,请参见高性能参数模板

如何取消定时修改参数任务?

支持在控制台的计划任务页面取消定时任务,请参见定时计划任务