Dav*_*ave 3 postgresql size disk-space log
我在 Ubuntu 14.04 上使用 Postgres 9.5。我想在日志达到特定大小时旋转它们。所以我编辑了 /etc/postgresql/9.5/main/postgresql.conf 并设置了这个
log_rotation_size = 50MB # Automatic rotation of logfiles will
# happen after that much log output.
# 0 disables.
Run Code Online (Sandbox Code Playgroud)
然后我重新启动了我的服务器
sudo /etc/init.d/postgresql restart
Run Code Online (Sandbox Code Playgroud)
但是在运行了一些操作之后,我的磁盘空间用完了,并且发现我的日志根本没有轮换……
myuser@mymachine:~$ ls -al /var/log/postgresql/postgresql-9.5-main.log
-rw-r----- 1 postgres postgres 3165773943 Dec 29 18:34 /var/log/postgresql/postgresql-9.5-main.log
Run Code Online (Sandbox Code Playgroud)
我还需要做什么才能开始日志轮换?
在 Debian/Ubuntu 中,根据政策,它logrotate
是负责处理所有服务(包括 PostgreSQL)的日志轮换和清除的包。
从 https://www.debian.org/doc/debian-policy/ch-files.html:
日志文件必须不时轮换,以免它们无限增长。最好的方法是在目录 /etc/logrotate.d 中安装日志轮换配置文件,通常命名为 /etc/logrotate.d/package,并使用 logrotate 提供的工具。
因此,有一个/etc/logrotate.d/postgresql-common
配置文件可以调整以在日志文件增长超过size
关键字指定的大小时轮换日志文件,以及许多其他选项。
另一方面,如果您想使用 PostgreSQL 功能来实现这一点,而不是操作系统的预配置方法,您需要考虑 中的所有日志参数postgresql.conf
,而不仅仅是log_rotation_size
. 首先,Debian/Ubuntu 打包的 PostgreSQL 将关闭logging_collector
以不干扰logrotate
,但大多数log_*
选项取决于它是否有效,如文档中所述,例如:
https://www.postgresql.org/docs/current/static/runtime-config-logging.html
log_rotation_size(整数)
启用 logging_collector 时,此参数确定单个日志文件的最大大小。在将这么多千字节发送到日志文件后,将创建一个新的日志文件。设置为零以禁用基于大小的新日志文件创建。此参数只能在 postgresql.conf 文件或服务器命令行中设置。
归档时间: |
|
查看次数: |
11119 次 |
最近记录: |