今天在检查数据库时,发现一个奇怪的现象,发现今天的csvlog文件有很多个,差不多半小时就会新生成一个,正常情况下是每天生成一个CSV文件,具体信息如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
-rw------- 1 postgres postgres 743K Nov 28 23:59 postgresql-2010 -11 -28 _000000.csv -rw------- 1 postgres postgres 4.8K Nov 28 23:59 postgresql-2010 -11 -28 _000000.log -rw------- 1 postgres postgres 787K Nov 29 23:59 postgresql-2010 -11 -29 _000000.csv -rw------- 1 postgres postgres 5.7K Nov 29 23:47 postgresql-2010 -11 -29 _000000.log -rw------- 1 postgres postgres 898K Nov 30 23:58 postgresql-2010 -11 -30 _000000.csv -rw------- 1 postgres postgres 3.6K Nov 30 23:49 postgresql-2010 -11 -30 _000000.log -rw------- 1 postgres postgres 11M Dec 1 20:22 postgresql-2010 -12 -01 _000000.csv -rw------- 1 postgres postgres 16K Dec 1 23:56 postgresql-2010 -12 -01 _000000.log -rw------- 1 postgres postgres 11M Dec 1 21:40 postgresql-2010 -12 -01 _202238.csv -rw------- 1 postgres postgres 11M Dec 1 22:34 postgresql-2010 -12 -01 _214022.csv -rw------- 1 postgres postgres 11M Dec 1 23:23 postgresql-2010 -12 -01 _223425.csv -rw------- 1 postgres postgres 7.4M Dec 1 23:59 postgresql-2010 -12 -01 _232323.csv -rw------- 1 postgres postgres 11M Dec 2 00:52 postgresql-2010 -12 -02 _000000.csv -rw------- 1 postgres postgres 2.9K Dec 2 23:49 postgresql-2010 -12 -02 _000000.log -rw------- 1 postgres postgres 11M Dec 2 01:44 postgresql-2010 -12 -02 _005256.csv -rw------- 1 postgres postgres 11M Dec 2 02:34 postgresql-2010 -12 -02 _014403.csv -rw------- 1 postgres postgres 11M Dec 2 03:28 postgresql-2010 -12 -02 _023406.csv -rw------- 1 postgres postgres 11M Dec 2 04:23 postgresql-2010 -12 -02 _032824.csv -rw------- 1 postgres postgres 11M Dec 2 05:20 postgresql-2010 -12 -02 _042349.csv -rw------- 1 postgres postgres 11M Dec 2 06:17 postgresql-2010 -12 -02 _052024.csv -rw------- 1 postgres postgres 11M Dec 2 07:22 postgresql-2010 -12 -02 _061739.csv -rw------- 1 postgres postgres 11M Dec 2 08:35 postgresql-2010 -12 -02 _072208.csv -rw------- 1 postgres postgres 11M Dec 2 09:47 postgresql-2010 -12 -02 _083552.csv -rw------- 1 postgres postgres 11M Dec 2 11:02 postgresql-2010 -12 -02 _094759.csv -rw------- 1 postgres postgres 11M Dec 2 12:07 postgresql-2010 -12 -02 _110215.csv -rw------- 1 postgres postgres 11M Dec 2 13:13 postgresql-2010 -12 -02 _120707.csv -rw------- 1 postgres postgres 11M Dec 2 14:13 postgresql-2010 -12 -02 _131335.csv -rw------- 1 postgres postgres 11M Dec 2 15:21 postgresql-2010 -12 -02 _141323.csv -rw------- 1 postgres postgres 11M Dec 2 17:00 postgresql-2010 -12 -02 _152102.csv -rw------- 1 postgres postgres 11M Dec 2 18:45 postgresql-2010 -12 -02 _170029.csv -rw------- 1 postgres postgres 11M Dec 2 20:10 postgresql-2010 -12 -02 _184512.csv -rw------- 1 postgres postgres 11M Dec 2 21:06 postgresql-2010 -12 -02 _201010.csv -rw------- 1 postgres postgres 11M Dec 2 21:50 postgresql-2010 -12 -02 _210647.csv -rw------- 1 postgres postgres 11M Dec 2 22:31 postgresql-2010 -12 -02 _215027.csv -rw------- 1 postgres postgres 11M Dec 2 23:12 postgresql-2010 -12 -02 _223159.csv -rw------- 1 postgres postgres 11M Dec 2 23:49 postgresql-2010 -12 -02 _231223.csv
发现从 2010-12-01月起开始出现这种现象,并且每个CSV日志文件大小均为11M。接着查看配置文件 postgresql.conf 几个日志参数:
1 2 3 4 5 6 7
log_destination = 'csvlog' logging_collector = on log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' log_truncate_on_rotation = on log_rotation_age = 1 d log_rotation_size = 10 MB
由于 log_rotation_age 设置为1天,正常情况下是每天新生成一个 csv 日志,原来 log_rotation_size=10M, CSV日志文件大小超过10M,就会新生成一个,关于log_rotation_size 参数,文档上是这样写的,如下:
log_rotation_size (integer) When logging_collector is enabled, this parameter determines the maximum size of an individual log file. After this many kilobytes have been emitted into a log file, a new log file will be created. Set to zero to disable size-based creation of new log files. This parameter can only be set in the postgresql.conf file or on the server command line. log_rotation_age (integer) When logging_collector is enabled, this parameter determines the maximum lifetime of an individual log file. After this many minutes have elapsed, a new log file will be created. Set to zero to disable time-based creation of new log files. This parameter can only be set in the postgresql.conf file or on the server command line.
其它的LOG相关参数可以参照文档。 平常看文档时,大概能明白几个日志参数的含义,但不是很清楚,结合实际维护过程中,才能更准确的理解参数的含义。
原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/tech/database/236341.html