Postgresql的日志配置教程详解

 更新时间:2021年01月07日 10:06:38   投稿:mrr  
这篇文章主要介绍了Postgresql的日志配置教程详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

背景

公司的项目中使用了postgresql(简称pg)作为其数据库管理系统,前两天环境突然崩溃了,页面无法打开。经过排查,我发现是数据库所在机器磁盘满了,通过目录和文件排序,原来是pg的日志太多(大约保留了大半年的日志在磁盘上没有被清理)。

我看了下pg的日志配置,发现基本都是用的默认配置,日志滚动没有开启,于是乎做了下相关配置优化后对pg进行重启,最后看了pg的日志滚动,恢复正常了。以下是我梳理的关于pg的日志配置项。

配置详解

配置文件:postgresql.conf

配置1:日志开启与关闭

默认为off,设置为on则pg可以记录相关日志,建议打开,否则在数据库出现异常时候,没有日志来定位具体问题

# This is used when logging to stderr:
logging_collector =on# Enable capturing of stderr and csvlog
# into log files. Required to be on for
# csvlogs.
# (change requires restart)

配置2:日志滚动策略

# These are only used if logging_collector is on:

#配置日志目录,默认为pg_log即可

log_directory = 'pg_log' # directory where log files are written,

# can be absolute or relative to PGDATA

#pg日志文件名及其扩展名,默认即可

log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,

# can include strftime() escapes

#pg日志文件的权限,默认即可

log_file_mode = 0600 # creation mode for log files,

#开启日志滚动阶段,这里需要设置为on

log_truncate_on_rotation =on# If on, an existing log file with the

#日志保留天数,这里看实际环境,如果是测试建议1d,如果是生产环境建议7d

log_rotation_age = 1d # Automatic rotation of logfiles will

#单个日志大小,默认100MB即可,比较标准的配置

配置3:日志打印时机

#发送给客户端的消息级别,建议warning即可,日志等级越低,打印的内容越多,性能上越有损耗
client_min_messages = warning # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# log
# notice
# warning
# error
#写到数据库日志文件中的消息的级别,建议warning即可,日志等级越低,打印的内容越多,性能上越有损耗
log_min_messages = warning # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# info
# notice
# warning
# error
# log
# fatal
# panic
#是否记录导致数据库出现错误的SQL语句,建议warning即可,日志等级越低,打印的内容越多,性能上越有损耗
log_min_error_statement = error # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# info
# notice
# warning
# error
# log
# fatal
# panic (effectively off)

配置4:数据库统计监控

#log_statement_stats为on则会开启log_parser_stats,log_planner_stats,log_executor_stats这三个选项,生产环境不建议开启,建议测试环境开启,用于定位问题。
#log_parser_stats = off
#log_planner_stats = off
#log_executor_stats = off
#log_statement_stats = off 

配置5:慢sql记录配置

#执行sql时间为2s以上的sql都会被记录下来
log_min_duration_statement = 2s

以上配置再修改完之后,均需要重启pg生效。

到此这篇关于Postgresql的日志配置的文章就介绍到这了,更多相关Postgresql日志配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PostGreSql 判断字符串中是否有中文的案例

    PostGreSql 判断字符串中是否有中文的案例

    这篇文章主要介绍了PostGreSql 判断字符串中是否有中文的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • PostgreSQL如何查询表结构和索引信息

    PostgreSQL如何查询表结构和索引信息

    文章介绍了在PostgreSQL中查询表结构和索引信息的几种方法,包括使用`\d`元命令、系统数据字典查询以及使用可视化工具DBeaver
    2024-12-12
  • postgresql行转列与列转行图文教程

    postgresql行转列与列转行图文教程

    PostgreSQL是一种开源的关系型数据库,它提供了多种管理工具来操作数据库,下面这篇文章主要给大家介绍了关于postgresql行转列与列转行的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • PostgreSQL更新表时时间戳不会自动更新的解决方法

    PostgreSQL更新表时时间戳不会自动更新的解决方法

    这篇文章主要为大家详细介绍了PostgreSQL更新表时时间戳不会自动更新的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • PostgreSQL数据库字符串拼接、大小写转换以及substring详解

    PostgreSQL数据库字符串拼接、大小写转换以及substring详解

    在日常工作中会遇到将多行的值拼接为一个值展现,下面这篇文章主要给大家介绍了关于PostgreSQL数据库字符串拼接、大小写转换以及substring的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • PostgreSQL limit的神奇作用详解

    PostgreSQL limit的神奇作用详解

    这篇文章主要介绍了PostgreSQL limit的神奇作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-09-09
  • PostgreSQL的日期时间差DATEDIFF实例详解

    PostgreSQL的日期时间差DATEDIFF实例详解

    PostgreSQL是一款简介而又性能强大的数据库应用程序,其在日期时间数据方面所支持的功能也都非常给力,下面这篇文章主要给大家介绍了关于PostgreSQL的日期时间差DATEDIFF的相关资料,需要的朋友可以参考下
    2023-04-04
  • PostgreSQL教程(四):数据类型详解

    PostgreSQL教程(四):数据类型详解

    这篇文章主要介绍了PostgreSQL教程(四):数据类型详解,本文讲解了数值类型、字符类型、布尔类型、位串类型、数组、复合类型等数据类型,需要的朋友可以参考下
    2015-05-05
  • 深入解读PostgreSQL中的序列及其相关函数的用法

    深入解读PostgreSQL中的序列及其相关函数的用法

    这篇文章主要介绍了PostgreSQL中的序列及其相关函数的用法,包括序列的更新和删除等重要知识,需要的朋友可以参考下
    2016-01-01
  • PostgreSql触发器创建、使用以及删除示例详解

    PostgreSql触发器创建、使用以及删除示例详解

    在PostgreSQL中触发器函数是一个没有参数并且返回trigger类型的函数,这篇文章主要给大家介绍了关于PostgreSql触发器创建、使用以及删除的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-03-03

最新评论