OceanBase 数据库运行过程中,可能会生成大量的日志文件,为防止磁盘被占满,可以控制日志文件的数量。
通过设置系统配置项 max_syslog_file_count 的值,OceanBase 数据库会根据日志文件类型和日志归档时间,将每类日志文件中时间较新的日志文件的数量控制在所配置的值。
当设置为
0时,表示 OBServer 进程不对日志文件数量进行控制。当设置为一个非
0正数时,OBServer 进程会将每类日志文件中时间较新的日志文件的数量控制在所配置的值。例如:设置max_syslog_file_count为100,则observer.log、observer.log.wf、election.log、election.log.wf、rootservice.log、rootservice.log.wf日志文件中时间较新的日志文件的数量将控制在100。以observer.log类型的日志文件为例:- 当日志文件总数小于
100时,该区间内的日志文件会累计到100,此后每产生一个新日志文件,该区间内最旧的一个日志文件将被删除。 - 当日志文件总数大于等于
100时,则归档时间较新的100个日志文件数量将维持不变,此后每产生一个新日志文件,该区间内最旧的一个日志文件将被删除。
- 当日志文件总数小于
配置步骤如下:
通过如下两种方法设置
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 。
(可选)开启系统日志自动回收功能。
本功能开启后,当 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配置项的详细介绍,请参见《系统参考》中的 系统配置项 。




