赞
踩
Postgresql自带3种系统日志,
分别为pg_log:
这个日志一般是记录服务器与DB的状态,比如各种Error信息,定位慢查询SQL,数据库的启动关闭信息,发生checkpoint过于频繁等的告警信息,诸如此类。
该日志有.csv格式和.log。建议使用.csv格式,因为它一般会按大小和时间自动切割,毕竟查看一个巨大的日志文件比查看不同时间段的多个日志要难得多。
pg_log是可以被清理删除,压缩打包或者转移,同时并不影响数据库的正常运行。
pg_xlog:
这个日志是记录的 Postgresql 的WAL信息,也就是一些事务日志信息(transaction log)。
WAL:PostgreSQL在将缓存的数据刷入到磁盘之前,先写日志,这就是PostgreSQL WAL ( Write-Ahead Log )方式,也就是写日志方式 。
这种日志形如 ‘00000001000000000000008E’,包含的是最近失误的数据镜像;
这些日志会在定时回滚恢复(PITR),流复制(Replication Stream)以及归档时能被用到。
这些日志是非常重要的,记录着数据库发生的各种事务信息,不得随意删除或者移动这类日志文件,不然你的数据库会有无法恢复的风险。
pg_clog:pg_clog这个文件也是事务日志文件,但与pg_xlog不同的是它记录的是事务的元数据(metadata),这个日志告诉我们哪些事务完成了,哪些没有完成。这个日志文件一般非常小,但是重要性也是相当高,不得随意删除或者对其更改信息。
因为工作需求,需要整合db日志实现日志集成
安装好posgtgresql后,在data目录下有2个关于系统配置文件
打开postgresql.conf
添加配置:
shared_preload_libraries = 'pg_stat_statements' 开启pgpg_stat_statements插件
pg_stat_statements.track = all 开启all查询
log_destination = 'csvlog' 保留一小时 循环一天
logging_collector = on
log_directory = 'log'
log_filename = 'postgresql-%H.log'
log_truncate_on_rotation = on
log_rotation_age = 1hour
log_rotation_size = 100MB
打开posgtgresql.auto.conf
添加配置:
log_destination = 'csvlog'
logging_collector = 'on'
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_rotation_age = '7d'
log_rotation_size = '100MB'
log_min_messages = 'warning'
log_min_duration_statement = '3000'
log_checkpoints = 'on'
log_connections = 'on'
log_disconnections = 'on'
log_duration = 'off'
log_line_prefix = '%e: %t [%p]: [%l-1] user = %u,db = %d,remote = %r app = %a'
shared_preload_libraries = 'pg_stat_statements'
log_statement = 'all'
重启posgtgresql服务会在data/pg_log自动生成cvs文件
使用navicat连接数据库,新建日志查询表
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,
PRIMARY KEY (session_id, session_line_num)
);
根据目录路径 将csv文件导入日志表方便查询
copy postgres_log from 'D:\postgre\data\pg_log\postgresql-2022-05-18_160409.csv' with csv;
也可以根据需求配置文件时间
导入文件后可查询db操作的日志记录
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。