• 售前

  • 售后

热门帖子
入门百科

Postgresql的日记设置教程详解

[复制链接]
36号1 显示全部楼层 发表于 2021-10-26 14:06:09 |阅读模式 打印 上一主题 下一主题
目录


  • 配景
  • 设置详解

    • 设置1:日记开启与关闭
    • 设置2:日记滚动策略
    • 设置3:日记打印时机
    • 设置4:数据库统计监控
    • 设置5:慢sql记录设置


配景

公司的项目中使用了postgresql(简称pg)作为其数据库管理系统,前两天环境突然崩溃了,页面无法打开。颠末排查,我发现是数据库所在机器磁盘满了,通过目录和文件排序,原来是pg的日记太多(大约保存了泰半年的日记在磁盘上没有被清算)。
我看了下pg的日记设置,发现基本都是用的默认设置,日记滚动没有开启,于是乎做了下相干设置优化后对pg进行重启,最后看了pg的日记滚动,规复正常了。以下是我梳理的关于pg的日记设置项。

设置详解

设置文件:postgresql.conf

设置1:日记开启与关闭

默认为off,设置为on则pg可以记录相干日记,发起打开,否则在数据库出现非常时候,没有日记来定位具体题目
  1. # This is used when logging to stderr:
  2. logging_collector =on# Enable capturing of stderr and csvlog
  3. # into log files. Required to be on for
  4. # csvlogs.
  5. # (change requires restart)
复制代码
设置2:日记滚动策略
  1. # These are only used if logging_collector is on:
  2. #配置日志目录,默认为pg_log即可
  3. log_directory = 'pg_log' # directory where log files are written,
  4. # can be absolute or relative to PGDATA
  5. #pg日志文件名及其扩展名,默认即可
  6. log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
  7. # can include strftime() escapes
  8. #pg日志文件的权限,默认即可
  9. log_file_mode = 0600 # creation mode for log files,
  10. #开启日志滚动阶段,这里需要设置为on
  11. log_truncate_on_rotation =on# If on, an existing log file with the
  12. #日志保留天数,这里看实际环境,如果是测试建议1d,如果是生产环境建议7d
  13. log_rotation_age = 1d # Automatic rotation of logfiles will
  14. #单个日志大小,默认100MB即可,比较标准的配置
复制代码
设置3:日记打印时机
  1. #发送给客户端的消息级别,建议warning即可,日志等级越低,打印的内容越多,性能上越有损耗
  2. client_min_messages = warning # values in order of decreasing detail:
  3. # debug5
  4. # debug4
  5. # debug3
  6. # debug2
  7. # debug1
  8. # log
  9. # notice
  10. # warning
  11. # error
  12. #写到数据库日志文件中的消息的级别,建议warning即可,日志等级越低,打印的内容越多,性能上越有损耗
  13. log_min_messages = warning # values in order of decreasing detail:
  14. # debug5
  15. # debug4
  16. # debug3
  17. # debug2
  18. # debug1
  19. # info
  20. # notice
  21. # warning
  22. # error
  23. # log
  24. # fatal
  25. # panic
  26. #是否记录导致数据库出现错误的SQL语句,建议warning即可,日志等级越低,打印的内容越多,性能上越有损耗
  27. log_min_error_statement = error # values in order of decreasing detail:
  28. # debug5
  29. # debug4
  30. # debug3
  31. # debug2
  32. # debug1
  33. # info
  34. # notice
  35. # warning
  36. # error
  37. # log
  38. # fatal
  39. # panic (effectively off)
复制代码
设置4:数据库统计监控
  1. #log_statement_stats为on则会开启log_parser_stats,log_planner_stats,log_executor_stats这三个选项,生产环境不建议开启,建议测试环境开启,用于定位问题。
  2. #log_parser_stats = off
  3. #log_planner_stats = off
  4. #log_executor_stats = off
  5. #log_statement_stats = off
复制代码
设置5:慢sql记录设置
  1. #执行sql时间为2s以上的sql都会被记录下来
  2. log_min_duration_statement = 2s
复制代码
以上设置再修改完之后,均需要重启pg生效。
到此这篇关于Postgresql的日记设置的文章就介绍到这了,更多相干Postgresql日记设置内容请搜索草根技术分享以前的文章或继续欣赏下面的相干文章盼望各人以后多多支持草根技术分享!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作