1.启用pg_log并配置日志参数
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 = info
#记录执行慢的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 = ‘ddl’
2.重启PostgreSQL即可在$PGDATA/pg_log/ 下看到新生成的日志。
pg_ctl restart -m fast
–日志文件目录
日志的目录可以通过参数 log_directory 来设置,下面是我的参数设置。
log_directory = ‘/var/applog/pg_log’
将CSV日志导入数据库表里
1–调整参数
log_destination = 'csvlog'
logging_collector = on
这两个参数修改后,PG SERVER 需要重启。
2–创建日志记录表
CREATE TABLE pg_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)
);
3–导入操作系统 csv 日志到表 pg_log 表
查看日志文件名字
cd $PGDATA/log
ls -rtl
copy pg_log from '/var/lib/postgresql/data/log/postgresql-2020-02-19_090159.csv' with csv;