lightdb-归档日志清理优化(22.4)
Posted 紫无之紫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lightdb-归档日志清理优化(22.4)相关的知识,希望对你有一定的参考价值。
LightDB 归档日志清理(22.4)
在LightDB 22.4 版本我们对归档日志清理进行了优化。,优化的如下:
- 校验参数
- 增加debug2级别日志,对归档清理情况进行输出; 增加error 级别日志,对删文件失败打日志。
- installer 安装时默认归档日志清理逻辑 改为使用 lightdb_archive_dir 和 lightdb_archive_retention_size 参数,不再在archive_command 中通过时间去删除清理。lightdb_archive_retention_size 默认为 1
- lightdb_archive_dir 与 lightdb_archive_retention_size 之前在启动前设置,即只能重启才能修改。
- 保证归档目录下最老的wal日志不会比lt_wal下最老的新,即在lt_wal 下没删除的,不会在归档目录中被删除。
1. 校验参数
- archive_command 中不能使用
xargs -i rm
关键字,禁止在这清理归档 - 在
lightdb_archive_retention_size
不为0时lightdb_archive_dir
参数必须配置 - 在
lightdb_archive_retention_size
不为0时校验lightdb_archive_dir
配置的目录是否存在
不符合如上规则,则不能启动lightdb。
报错日志如下:
2022-11-08 16:54:17.923828T [64378] FATAL: archive_command cannot have archive cleanup command
2022-11-08 16:54:17.954739T [64383] FATAL: lightdb_archive_retention_size setted, yet lightdb_archive_dir is not set
2022-11-08 16:54:17.989001T [64390] FATAL: The archive directory "xxxxxx/t_034_lt_archiving_cleanup_master_data/archives/tmp" does not exist
2. 保证在lt_wal下没删除的wal日志,不会在归档目录中被删除
通过获取lt_wal下最近删除的wal来判断归档日志能否删除。
在开启复制槽的情况下,不会出现在归档目录删除了复制槽仍需要的wal日志。
note
在lightdb启动后, 由于没有删除lt_wal 会导致归档一直不清理,直到在lt_wal 下删除第一个wal日志。
参考
以上是关于lightdb-归档日志清理优化(22.4)的主要内容,如果未能解决你的问题,请参考以下文章
lightdb22.4-新增优化器提示cardinality 和ordered_predicates