• 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. 校验参数

    1. archive_command 中不能使用xargs -i rm关键字,禁止在这清理归档
    2. lightdb_archive_retention_size不为0时lightdb_archive_dir参数必须配置
    3. 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
    
    • 1
    • 2
    • 3

    2. 保证在lt_wal下没删除的wal日志,不会在归档目录中被删除

    通过获取lt_wal下最近删除的wal来判断归档日志能否删除。

    在开启复制槽的情况下,不会出现在归档目录删除了复制槽仍需要的wal日志。

    note

    在lightdb启动后, 由于没有删除lt_wal 会导致归档一直不清理,直到在lt_wal 下删除第一个wal日志。

    参考

    1. 官方文档-Archiving
  • 相关阅读:
    Grafana安装与配置
    【已解决】ModuleNotFoundError: No module named ‘dgl‘
    施耐德电气:勾勒未来工业愿景,赋能中国市场
    RabbitMQ入门
    [golang] 零值和nil
    【专题复习】离散化
    Eureka如何处理网络分区和服务雪崩问题?
    C语言中的指针
    [附源码]计算机毕业设计JAVA户籍管理系统
    C语言 static extern 关键字详解
  • 原文地址:https://blog.csdn.net/qq_17713935/article/details/127754944