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日志内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 查询PostgreSQL中所有表逻辑外键的方法

    查询PostgreSQL中所有表逻辑外键的方法

    本文介绍了如何查询PostgreSQL中所有表的逻辑外键,并指导您如何先删除再重新建立这些外键,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友一起看看吧
    2023-08-08
  • PostgreSQL教程(十三):数据库管理详解

    PostgreSQL教程(十三):数据库管理详解

    这篇文章主要介绍了PostgreSQL教程(十三):数据库管理详解,本文讲解了概述、创建数据库、修改数据库配置、删除数据库、表空间,需要的朋友可以参考下
    2015-05-05
  • Postgres中UPDATE更新语句源码分析

    Postgres中UPDATE更新语句源码分析

    这篇文章主要给大家介绍了关于Postgres中UPDATE更新语句源码分析的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-03-03
  • 基于postgresql行级锁for update测试

    基于postgresql行级锁for update测试

    这篇文章主要介绍了基于postgresql行级锁for update测试,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 解决sqoop从postgresql拉数据,报错TCP/IP连接的问题

    解决sqoop从postgresql拉数据,报错TCP/IP连接的问题

    这篇文章主要介绍了解决sqoop从postgresql拉数据,报错TCP/IP连接的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • PostgreSQL 更新视图脚本的注意事项说明

    PostgreSQL 更新视图脚本的注意事项说明

    这篇文章主要介绍了PostgreSQL 更新视图脚本的注意事项说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Postgresql中LIKE和ILIKE操作符的用法详解

    Postgresql中LIKE和ILIKE操作符的用法详解

    这篇文章主要介绍了Postgresql中LIKE和ILIKE操作符的用法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • pgsql的UUID生成函数实例

    pgsql的UUID生成函数实例

    这篇文章主要介绍了pgsql的UUID生成函数实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL 实现sql放入文件批量执行

    PostgreSQL 实现sql放入文件批量执行

    这篇文章主要介绍了PostgreSQL 实现sql放入文件批量执行,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • postgresql 数据库 与TimescaleDB 时序库 join 在一起

    postgresql 数据库 与TimescaleDB 时序库 join 在一起

    这篇文章主要介绍了postgresql 数据库 与TimescaleDB 时序库 join 在一起,需要的朋友可以参考下
    2020-12-12

最新评论