暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

分布式数据库学习Note10:OceanBase社区版中,日志文件数量如何控制?

OceanBase 数据库运行过程中,可能会生成大量的日志文件,为防止磁盘被占满,可以控制日志文件的数量。

通过设置系统配置项 max_syslog_file_count 的值,OceanBase 数据库会根据日志文件类型和日志归档时间,将每类日志文件中时间较新的日志文件的数量控制在所配置的值。

  • 当设置为 0 时,表示 OBServer 进程不对日志文件数量进行控制。

  • 当设置为一个非 0 正数时,OBServer 进程会将每类日志文件中时间较新的日志文件的数量控制在所配置的值。例如:设置 max_syslog_file_count 为 100,则 observer.logobserver.log.wfelection.logelection.log.wfrootservice.logrootservice.log.wf 日志文件中时间较新的日志文件的数量将控制在 100。以 observer.log 类型的日志文件为例:

    • 当日志文件总数小于 100 时,该区间内的日志文件会累计到 100,此后每产生一个新日志文件,该区间内最旧的一个日志文件将被删除。
    • 当日志文件总数大于等于 100 时,则归档时间较新的 100 个日志文件数量将维持不变,此后每产生一个新日志文件,该区间内最旧的一个日志文件将被删除。

配置步骤如下:

  1. 通过如下两种方法设置 max_syslog_file_count 系统配置项:

    当完成 max_syslog_file_count 系统配置项设置后,OceanBase 数据库会将每类日志文件中时间较新的日志文件的数量控制在所配置的值。

    • OBServer 运行过程中,设置系统配置项 max_syslog_file_count 的值。 例如:在客户端中,设置 max_syslog_file_count 的值。

      obclient > ALTER SYSTEM SET max_syslog_file_count=20;
      
    • 启动 OBServer 时,在 -o 参数中指定 max_syslog_file_count 的值。 例如:启动 OBServer 时,在 -o 参数中指定 max_syslog_file_count 的值。

      [admin@hostname oceanbase]$ /home/admin/oceanbase/bin/observer -i eth0 -P XXXX -p YYYY -z zone1 -d /home/admin/oceanbase/store/obdemo -r 'xxx.xxx.xxx.xxx:xxxx:xxx.xxx.xxx.xxx:xxxx xxx.xxx.xxx.xxx:xxxx:yyyy' -c 20190716 -n obdemo -o "max_syslog_file_count=20,memory_limit_percentage=90,memstore_limit_percentage=60,datafile_disk_percentage=80,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"
      

      详细操作请参见 添加 OBServer 中的 启动 OBServer 。

  2. (可选)开启系统日志自动回收功能。

    本功能开启后,当 OceanBase 数据库重启时,会保留每类日志文件中的 max_syslog_file_count 个时间最新的日志文件,并回收其他日志文件。

    obclient > ALTER SYSTEM SET enable_syslog_recycle='True';
    

    说明

    仅当 max_syslog_file_count 配置项的值设置为非 0 正数时,系统日志自动回收功能才会生效。有关 max_syslog_file_count 和 enable_syslog_recycle 配置项的详细介绍,请参见《系统参考》中的 系统配置项 。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论