WAL归档配置
确保WAL信息记录级别配置正确
说明
WAL(Write Ahead Log)即预写式日志,是数据库用于恢复事务持久性的一种机制。wal_level决定了写入WAL的信息量。为了在备机上开启只读查询,wal_level需要在主机上设置成hot_standby,并且备机设置hot_standby参数为on。
实现
检查方法:
检查wal_level参数是否为默认值hot_standby,如果不是则失败。
openGauss=# show wal_level;
wal_level
-----------
hot_standby
(1 row)
修复方法:
设置参数wal_level值为hot_standby,并重启数据库使设置生效。
gs_guc set -Z datanode -N all -I all -c "wal_level=hot_standby"
gs_om -t stop && gs_om -t start
确保开启归档模式
说明
参数archive_mode用于设置是否开启归档模式,该参数通常只建议当wal_level参数设置为archive时使用。当wal_level参数设置为minimal时,archive_mode参数无法使用。如果设置archive_mode参数为on,需要同时设置archive_command参数以指定归档WAL日志的命令。
实现
检查方法:
- 先检查
wal_level参数是否为archive。 - 如果
wal_level为archive,则检查archive_mode参数值是否为on。 - 如果
wal_level配置为hot_standby,则无需检查archive_mode。
openGauss=# show wal_level;
wal_level
-----------
hot_standby
(1 row)
openGauss=# show archive_mode;
archive_mode
------------
off
(1 row)
修复方法:
当wal_level参数为archive时,设置参数archive_mode为on,同时设置archive_command为归档WAL日志的命令,archive_command参数的值仅供参考,其中--remove-destination选项作用为拷贝前如果目标文件已存在,会先删除已存在的目标文件,然后执行拷贝操作。
gs_guc reload -Z datanode -N all -I all -c "archive_mode=on"
gs_guc reload -Z datanode -N all -I all -c "archive_command='cp --remove-destination %p /mnt/server/archive/%f'"
意见反馈