postgresql开启pg_log日志详细步骤及参数说明

 更新时间:2024年02月06日 10:40:44   作者:海底列车  
pg_log日志要启动保存的话需要去设置一下相关的配置文件参数就好了,下面这篇文章主要给大家介绍了关于postgresql开启pg_log日志详细步骤及参数说明的相关资料,需要的朋友可以参考下

一、概述:postgresql的运行日志默认是不开启的,如果要查询日志需要手动开启。

二、修改配置文件,开启运行日志:

vim postgresql.conf

log_destination = ‘csvlog'
logging_collector = on
log_directory = ‘pg_log'
log_filename = ‘postgresql-%Y-%m-%d_%H%M%S.log'
log_rotation_age = 1d
log_rotation_size = 100MB
log_min_messages = debug1
# 记录执行慢的SQL
log_min_duration_statement = 60
log_checkpoints = on
log_connections = on
log_disconnections = on
log_duration = on
log_line_prefix = ‘%m'
# 监控数据库中长时间的锁
log_lock_waits = on
# 记录DDL操作
log_statement = ‘all'
[root@localhost data]# cd pg_log
[root@localhost pg_log]# ls
postgresql-2023-07-27_22.csv  postgresql-2023-07-27_22.log  postgresql-2023-07-28_14.csv  postgresql-2023-07-28_14.log

三、将运行日志导入到数据库:

1、创建日志表:

CREATE TABLE postgres_log
(
log_time timestamp(3) with time zone,user_name text,
database_name text,
process_id integer,
connection_from text,
session_id text,
session_line_num bigint,
command_tag text,
session_start_time timestamp with time zone,
virtual_transaction_id text,
transaction_id bigint,
error_severity text,
sql_state_code text,
message text,
detail text,
hint text,internal_query text,
internal_query_pos integer,
context text,query text,
query_pos integer,
location text,
application_name text,
backend_type text,
leader_pid integer,
query_id bigint,
PRIMARY KEY (session_id, session_line_num)
) 

2、将日志文件copy到数据库

DO $func$BEGIN  EXECUTE $$ COPY public.postgres_log from '/opt/postgresql/data/pg_log/postgresql-$$ || to_char(now(),'YYYY-MM-DD_HH24') || $$.csv'  DELIMITER ',' CSV HEADER;  $$;END;$func$ LANGUAGE plpgsql;
SELECT * from postgres_log

四、其他:一些参数说明

log_destination默认是stderr,有三个选项stderr,csvlog,syslog;如果使用csvlog的话,logging_collector必须开启。也可以同时使用csvlog和stderr,会记录两种格式的日志。

log_rotation_age当logging_collector被启用时,这个参数决定一个个体日志文件的最长生命期。当这些分钟过去后,一个新的日志文件将被创建。将这个参数设置为零将禁用基于时间的新日志文件创建。1d代表1天。

log_rotation_size:当logging_collector被启用时,这个参数决定一个个体日志文件的最大尺寸。当这么多千字节被发送到一个日志文件后,将创建一个新的日志文件。将这个参数设置为零将禁用基于尺寸的新日志文件创建。

log_min_messages:控制哪些消息级别 被写入到服务器日志。有效值是DEBUG5、DEBUG4、 DEBUG3、DEBUG2、DEBUG1、 INFO、NOTICE、WARNING、 ERROR、LOG、FATAL和 PANIC。每个级别都包括以后的所有级别。级别越靠后,被发送的消息越少。默认值是WARNING。

log_min_duration_statement:相当于mysql的long_query_time,记录慢SQL,超过这个时间的SQL将会被记录到日志里。

log_connections:导致每一次尝试对服务器的连接被记录,客户端认证的成功完成也会被记录。 只有超级用户能在会话开始时更改这个参数,在会话中它不能被更改。默认 为off。

log_disconnections:导致会话终止也会被记录。日志输出提供的信息类似于 log_connections,不过还外加会话的持续时间。 只有超级用户能在会话开始时更改这个参数,在会话中它不能被更改。默认 为off。

log_duration:导致每一个完成的语句的持续时间被记录。默认值是off。如果log_duration为on并且log_min_duration_statement为正值,所有持续时间都将被记录,但是只有超过阈值的语句才会被记录查询文本。这种行为有助于在高负载安装中收集统计信息

log_line_prefix:设置日志输出格式(能够记录时间,用户名称,数据库名称,客户端IP和端口,方便定位问题)默认值是’%m [%p] ',它记录时间戳和进程ID

log_lock_waits:控制当一个会话为获得一个锁等到超过deadlock_timeout时,是否要产生一个日志消息。这有助于决定是否锁等待造成了性能低下。默认值是off

log_statement:控制哪些 SQL 语句被记录。有效值是 none (off)、ddl、mod和 all(所有语句)。默认值是none

总结

到此这篇关于postgresql开启pg_log日志详细步骤及参数说明的文章就介绍到这了,更多相关postgresql开启pg_log日志内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Visual Studio Code(VS Code)查询PostgreSQL拓展安装教程图解

    Visual Studio Code(VS Code)查询PostgreSQL拓展安装教程图解

    这篇文章主要介绍了Visual Studio Code(VS Code)查询PostgreSQL拓展安装教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • PostgreSQL的应用技巧和示例分享

    PostgreSQL的应用技巧和示例分享

    本文会总结一些Postgres中,从应用需求和场景出发,不太常见,但比较常用并且有用的SQL语句,文中的示例代码简洁易懂,需要的小伙伴可以收藏一下
    2023-06-06
  • PostgreSQL的外部数据封装器fdw用法

    PostgreSQL的外部数据封装器fdw用法

    这篇文章主要介绍了PostgreSQL的外部数据封装器fdw用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL的中文拼音排序案例

    PostgreSQL的中文拼音排序案例

    这篇文章主要介绍了PostgreSQL的中文拼音排序案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • pgsql查询优化之模糊查询实例详解

    pgsql查询优化之模糊查询实例详解

    这篇文章主要给大家介绍了关于pgsql查询优化之模糊查询的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用pgsql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • postgresql insert into select无法使用并行查询的解决

    postgresql insert into select无法使用并行查询的解决

    这篇文章主要介绍了postgresql insert into select无法使用并行查询的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • PostgreSQL 日志文件的所在位置

    PostgreSQL 日志文件的所在位置

    这篇文章主要介绍了PostgreSQL 日志文件的所在位置,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 如何查看PostgreSQL数据库中所有表

    如何查看PostgreSQL数据库中所有表

    这篇文章主要介绍了如何查看PostgreSQL数据库中所有表问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Postgresql 检查数据库主从复制进度的操作

    Postgresql 检查数据库主从复制进度的操作

    这篇文章主要介绍了Postgresql 检查数据库主从复制进度的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • PostgreSQL 数据库跨版本升级常用方案解析

    PostgreSQL 数据库跨版本升级常用方案解析

    这篇文章主要介绍了PostgreSQL 数据库跨版本升级常用方案解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03

最新评论