云数据库 GaussDB-自动清理:autovacuum

时间:2023-11-01 16:22:02

autovacuum

参数说明:控制数据库自动清理线程(autovacuum)的启动。自动清理线程运行的前提是将track_counts设置为on。

该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。

  • 如果希望系统在故障恢复后,具备自动清理两阶段事务的功能,请将autovacuum设置为on;
  • 当设置autovacuum为on,autovacuum_max_workers为0时,表示系统不会自动进行autovacuum,只会在故障恢复后,自动清理两阶段事务;
  • 当设置autovacuum为on,autovacuum_max_workers大于0时,表示系统不仅在故障恢复后,自动清理两阶段事务,并且还可以自动清理线程。

即使此参数设置为off,当事务ID回绕即将发生时,数据库也会自动启动自动清理线程。对于create/drop database发生异常时,可能有的节点提交或回滚,有的节点未提交(prepared状态),此时系统不能自动修复,需要手动修复。

修复步骤:

  1. 使用gs_clean工具(-N参数)查询出异常两阶段事务的xid以及处于prepared的节点;
  2. 登录事务处于prepared状态的节点,系统管理员连接一个可用的数据库,执行语句set xc_maintenance_mode = on;
  3. 根据事务全局状态提交或者回滚此两阶段事务(如提交语句;回滚语句)。

取值范围:布尔型

  • on表示开启数据库自动清理线程。
  • off表示关闭数据库自动清理线程。

默认值:on

support.huaweicloud.com/centralized-devg-v2-opengauss/devg_03_1384.html