首批通过分布式安全可靠测评,为关键业务系统打造
OBServer 日志保留策略
更新时间:2025-03-18 02:41
OceanBase 数据库中通过 enable_syslog_recycle 和 max_syslog_file_count 两个参数来控制系统运行日志的保留情况。
参数 enable_syslog_recycle。
配置项用于控制是否开启日志自动清理,默认为 FALSE,表示不开启日志自动清理。
参数 max_syslog_file_count。
配置项用于控制保留的日志文件个数,默认为 0,表示不限制日志文件的个数。每个日志文件最大为 256 MB,如果磁盘空间不足,可以适当调小该配置项。
OceanBase 数据库 V4.2.1 BP4(oceanbase-4.2.1.4-104000062024022914)之前的 V4.x 版本。
max_syslog_file_count参数会独立控制各种类型日志的保留数量。当该值设定得较大并且启用全链路诊断功能时,会加大用户日志盘爆的风险。
OceanBase 数据库 V4.2.1 BP4(oceanbase-4.2.1.4-104000062024022914)及其之后的 V4.2.1.x / V4.2.3 / V4.3.x 版本。
max_syslog_file_count调整为控制所有日志累加的保留上限。说明
如果 trace.log 日志生成的速度过快过多,可能会抢占 OBServer 日志文件的空间,导致 OBServer 日志被较早地清理。针对这种情况,建议用户调整全链路诊断的级别,以确定适合的日志量。
涉及的 OCP 日志保留策略
ocp_agent 有自动清理 OceanBase 数据库系统运行日志的功能。
/home/admin/ocp_agent/conf/module_config/ob_logcleaner_module.yaml
/home/admin/ocp_agent/conf/config_properties/ob_logcleaner.yaml

ob.logcleaner.ob_log.disk.threshold:磁盘空间达到多少之后开始清理,默认是 80%。
ob.logcleaner.ob_log.rule0.keep.percentage: 日志每次清理到对应日志总量的百分比之后停止,默认是 60%。
rule0 对应的是 observer.log,rule1 对应的是 observer.wf.log。
如果 OBServer 和 OCP 的策略都开启时,哪个策略生效?
需要看 OBServer 系统运行日志的容量先达到 max_syslog_file_count 还是 ob.logcleaner.ob_log.disk.threshold:
如果是前者,OBServer 内核清理。
如果是后者,OCP 清理。
如何关闭 OCP 清理 OBServer 运行日志
在涉及的所有 OBServer 机器上执行。
调整 OCP-agent 配置文件 ob_logcleaner.yaml 中的 ob.logcleaner.enabled 值。
/home/admin/ocp_agent/conf/config_properties/ob_logcleaner.yaml 里的 ob.logcleaner.enabled 对应的 value 调整为 false调整 OCP-agent 配置文件 ob_logcleaner.yaml 中的 ob_logcleaner_module.enabled 值。
/home/admin/ocp_agent/conf/module_config/ob_logcleaner_module.yaml 里的 enabled: ${ob.logcleaner.enabled} 调整为 enabled: false然后在 OCP 主机管理-> 点击更多-> 重启 ocp_agent。
适用版本
OceanBase 数据库 V4.x 版本。