• pg 日志相关参数


    PG 相关系统日志参数

    最近值班的时候遇到pg的日志问题,顺带梳理一下 pg的系统日志参数。

    默认情况下,很过日志参数是缺省值,需要查看详细日志信息,必须对相关参数进行修改。

    1. logging_collector = on/off 是否将日志重定向至文件中,默认是off, 修改该参数之后后,需要重启DB服务。

      对比修改前后,postgresql的进程变化,修改之后多3个 postgres: logger 进程。

      图片

    2. log_directory = 'log' :日志文件目录,默认是变量 PGDATA的相对路径,即{PGDATA}/log, 因为  PGDATA 路径下存放的数据文件,元数据库表等信息,一般我们会指向到其他目录。避免写日志的时候,影响读写数据文件的性能。

    3. log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'  生成的日志文件命名规则。一般使用默认值即可。

    4. log_rotation_age = 1d 单个日志文件的生命周期,默认1天,在日志文件大小没有达到log_rotation_size时,一天只生成一个日志文件

    5. log_rotation_size = 10MB  单个日志文件的大小,如果时间没有超过log_rotation_age,一个日志文件最大只能到10M,否则将新生成一个日志文件。

    6. log_truncate_on_rotation = off 当日志文件轮转时,名字已存在时,该配置如果为off,新生成的日志将在文件尾部追加,如果为on,则会覆盖原来的日志。同时也需要注意该参数只是针对时间到期的切换,如果是因为大小或者系统重启发生切换时,并不会覆盖已有的文件。

      "But such truncation only occurs on time-driven rotation, not on restarts or size-driven rotation.  Default is off, meaning append to existing files in all cases."

    7. log_lock_waits = off :控制会话等待时间超过 deadlock_timeout 而被锁时是否产生一个日志信息。在判断一个锁等待是否会影响性能时是有用的,缺省是off。

    8. log_statement = 'none' 控制记录哪些SQL语句。

      none不记录,

      ddl 记录所有数据定义命令,比如CREATE,ALTER,和DROP 语句。

      mod 记录所有ddl语句,加上数据修改语句INSERT,UPDATE等,

      all记录所有执行的语句,将此配置设置为all可跟踪整个数据库执行的SQL语句。

    9. log_duration = off 记录每条SQL语句执行完成消耗的时间,将此配置设置为on,用于统计哪些SQL语句耗时较长。开启该参数会消耗IO性能,如果客户端使用扩展查询协议,则会记录解析、绑定、执行三个阶段的时间。

    10. log_min_duration_statement = -1

      -1 表示不可用记录任何慢查

      0 将记录所有SQL语句和它们的耗时 大于0时比如N,单位是ms,表示系统会记录 耗时大于等于N ms的SQL语句。

    11. log_connections = off 表示是否记录连接日志

    12. log_disconnections = off 表示是否记录连接断开日志

    13. log_line_prefix = '%m %p %u %d %r ' 日志输出格式(%m,%p实际意义配置文件中有解释),可根据自己需要设置(能够记录时间,用户名称,数据库名称,客户端IP和端口,方便定位问题)

    14. log_min_messages 控制PG 系统日志级别,log_min_error_statement 要大于等于 log_min_messages 时,SQL语句才会被记录(默认ERROR,足够)。默认是WARNING。

    转载自杨奇龙博客

    螃蟹在剥我的壳,笔记本在写我,漫天的我落在枫叶上雪花上,而你在想我。 --章怀柔
  • 相关阅读:
    javascript Math.random()随机数函数
    asp.net 前台获取后台c#代码信息
    关于C#网站一般处理程序(ashx)中session的问题
    怎样才能在一般处理文件中创建新的Session和访问已经存在的Session?
    使用SqlParameter向数据库中插入数据
    C#串口编程学习简单实例
    认识nodejs
    01.Javascript中的接口Interface [转载]
    动态添加脚本,并触发回调函数 初步实现按需加载
    JS正则表达式 收藏
  • 原文地址:https://www.cnblogs.com/lovezhr/p/15523350.html
Copyright © 2020-2023  润新知