资讯专栏INFORMATION COLUMN

PostgreSQL日志轮滚配置教程

白马啸西风 / 765人阅读

一、PostgreSQL日志滚动介绍

官网介绍:https://postgresqlco.nf/doc/zh/param/log_truncate_on_rotation/

当logging_collector被启用时,这个参数将导致PostgreSQL截断(覆盖而不是追加)任何已有的同名日志文件。不过,截断只在一个新文件由于基于时间的轮转被打开时发生,在服务器启动或基于尺寸的轮转时不会发生。如果被关闭,在所有情况下以前存在的文件将被追加。简单理解:PGSQL日志处理机制是通过logging_collector参数来控制日志文件是持续追加,还是定期循环覆盖的。针对循环覆盖的场景,是基于时间的方式,即多长时间开始循环覆盖。

二、PostgreSQL配置参数解读

配置文件名:postgresql.conf

2.1 开启日志记录功能

logging_collector =on

◆ 布尔值
◆ 该参数启用日志收集器,它是一个捕捉被发送到stderr的日志消息的后台进程,并且它会将这些消息重定向到日志文件中

2.2 日志滚动策略 

(1)log_directory

log_directory = 'pg_log'

◆ 字符串
◆ 配置日志目录,默认为pg_log即可。可以是绝对路径,也可是相对路径(相对于数据库文件所在的路径)

(2)log_filename

log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

◆ 字符串
◆ 日志文件名及其扩展名,%Y、%m、%d、%H、%M和%S,分别表示年、月、日、小时、分和秒
◆ 没有指定时间信息,系统会自动在log_filename值的末尾加上文件创建时间戳作为文件名

(3)log_truncate_on_rotation

log_truncate_on_rotation = on

◆ 布尔值
◆ 系统在创建一个新的数据库运行日志文件时,如果发现存在一个同名的文件,当log_truncate_on_rotation的值是on时,系统覆盖这个同名文件
◆ 当log_truncate_on_rotation的值是off时,系统将重用这个同名文件,在它的末尾添加新的日志信息

◆ 要注意的是,只有在log_rotation_age非零时,系统才创建新的日志文件的情况下,才会覆盖同名的日志文件
◆ 因为数据库重新启动或者因为参数log_rotation_size起作用而创建新的日志文件,不会覆盖同名的日志文件,而是在同名的日志文件末尾添加新的日志信息

(4)log_rotation_age

log_rotation_age = 0
◆ 数字型 单位为分钟
◆ 日志轮询时间,即该参数决定一个个体日志文件的最长生命期。当时间到期后,一个新的日志文件将被创建
◆ 注意:该值为0时不是禁用该功能,而是禁用基于时间的新日志文件创建

(5)log_rotation_size

log_rotation_size = 10240

◆ 数字型 单位是KB
◆ 日志轮询大小,该参数决定一个个体日志文件的最大尺寸。当尺寸达到该值后,将创建一个新的日志文件
◆ 注意:该参数值为0时,表示禁用基于尺寸的新日志文件创建

三、案例演示

3.1 log_filename日志格式说明

默认是postgresql-%Y-%m-%d_%H%M%S.log。支持strftime格式。
格式符说明:
%a 星期的英文单词的缩写:如星期一, 则返回 Mon
%A 星期的英文单词的全拼:如星期一,返回 Monday
%b 月份的英文单词的缩写:如一月, 则返回 Jan
%B 月份的引文单词的缩写:如一月, 则返回 January
%c 返回datetime的字符串表示,如03/08/15 23:01:26
%d 返回的是当前时间是当前月的第几天
%f 微秒的表示: 范围: [0,999999]
%H 以24小时制表示当前小时
%I 以12小时制表示当前小时
%j 返回 当天是当年的第几天 范围[001,366]
%m 返回月份 范围[0,12]
%M 返回分钟数 范围 [0,59]
%P 返回是上午还是下午–AM or PM
%S 返回秒数 范围 [0,61]

3.2 配置案例演示

(1)要求:保留 7 天的日志,每天的一个日志文件被命令为postgresql-.Mon.log、postgresql-.Tue.log等等,并且自动用本周的日志覆盖上一周的日志。

log_filename = postgresql-.%a.log   # 日志命名
log_truncate_on_rotation = on       # 开启循环覆盖
log_rotation_age = 1440             # 每天一个日志文件
log_rotation_size = 0               # 禁用基于尺寸的新日志文件创建

(2)要求:要保留 24 小时的日志,每个小时一个日志文件,但是在日志文件尺寸超过 1GB 时轮转

log_filename = postgresql-.%H%M.log   # 日志命名
log_truncate_on_rotation = on         # 开启循环覆盖
log_rotation_age = 60                 # 每小时一个日志文件
log_rotation_size = 1000000           # 开启基于尺寸的日志轮转,即新建一个日志文件。这里1G约等于1000M,1000000KB


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128162.html

相关文章

  • PostgreSQL对接SequoiaDB

    摘要:是一款开源的数据库,支持标准,用户可以通过驱动连接进行应用程序开发。本文就针对如何扩展功能,实现对接进行介绍。直接在中修改配置文件,只能在当前中生效,重新登录需要重新设置。 PostgreSQL是一款开源的SQL数据库,支持标准SQL,用户可以通过JDBC驱动连接PostgreSQL进行应用程序开发。用户通过扩展PostgreSQL功能,让开发者可以使用SQL语句访问SequoiaDB...

    TZLLOG 评论0 收藏0
  • JIRA连接PostgreSQL数据库的详细步骤

    摘要:本文主要介绍如何连接到数据库。创建并配置数据库创建与连接的数据库用户登录角色例如。或通过命令行确保该用户拥有连接数据库以及创建和编辑表的权限。测试连接并保存。注意元素必须指定数据库类型。文件示例启动现在连接到数据库就配置好了。 本文主要介绍如何连接JIRA到PostgreSQL数据库。 首先 检查是否支持你的PostgreSQL版本。请参见支持的平台。 如果是转移JIRA到另一台服务...

    ziwenxie 评论0 收藏0
  • JIRA连接PostgreSQL数据库的详细步骤

    摘要:本文主要介绍如何连接到数据库。创建并配置数据库创建与连接的数据库用户登录角色例如。或通过命令行确保该用户拥有连接数据库以及创建和编辑表的权限。测试连接并保存。注意元素必须指定数据库类型。文件示例启动现在连接到数据库就配置好了。 本文主要介绍如何连接JIRA到PostgreSQL数据库。 首先 检查是否支持你的PostgreSQL版本。请参见支持的平台。 如果是转移JIRA到另一台服务...

    android_c 评论0 收藏0
  • JIRA连接PostgreSQL数据库的详细步骤

    摘要:本文主要介绍如何连接到数据库。创建并配置数据库创建与连接的数据库用户登录角色例如。或通过命令行确保该用户拥有连接数据库以及创建和编辑表的权限。测试连接并保存。注意元素必须指定数据库类型。文件示例启动现在连接到数据库就配置好了。 本文主要介绍如何连接JIRA到PostgreSQL数据库。 首先 检查是否支持你的PostgreSQL版本。请参见支持的平台。 如果是转移JIRA到另一台服务...

    Ryan_Li 评论0 收藏0
  • 主要概念 云数据库 PostgreSQL UDB

    摘要:硬盘硬盘硬盘云数据库的硬盘大小。用户可以根据对云数据库的硬件需求进行选择。云数据库提供自动备份和手动备份两种方式,防止数据丢失,避免误操作带来的风险。日志日志日志日志是用于记录云数据库操作事件的记录文件。 主要概念本篇目录实例类型版本数据库机型内存硬盘付费方式数量节点配置文件管理员实例名称资源IDIP和端口备份日志实例类型PostgreSQL实例目前支持普通版和高可用版实例。版本Postgr...

    ernest.wang 评论0 收藏334

发表评论

0条评论

白马啸西风

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<