一般日志错误跟踪
修改"postgresql.conf"配置内容,观察日志
logging_collector = on # 开启日志采集
log_destination = 'stderr' # 日志输出格式,配置为 csvlog - 输出到csv文件:
log_directory = 'log' # 可配置为:$PGDATA的相对路径或绝对路径
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # 输出日志文件名格式
log_rotation_age = 1440 # minute,多长时间创建新的文件记录日志。0 表示禁扩展。
log_rotation_size = 10240 # kb,文件多大后创建新的文件记录日志。0 表示禁扩展。
log_truncate_on_rotation = on # 可重用同名日志文件
log_min_messages = info # 日志打印级别配置
日志跟踪SQL语句或者慢语句
修改"postgresql.conf"配置内容,观察日志
# 监控慢sql日志
log_statement = all # 需设置跟踪所有语句,否则只能跟踪出错信息,设置跟踪的语句类型,有4种类型:none(默认), ddl, mod, all。跟踪所有语句时可设置为 "all"。
log_min_duration_statement = 5000 # milliseconds,记录执行5秒及以上的语句,跟踪慢查询语句,单位为毫秒。如设置 5000,表示日志将记录执行5秒以上的SQL语句
log_checkpoints = on
log_connections = on
log_disconnections = on
log_duration = on
log_line_prefix = '%m'
# 监控数据库中长时间的锁
log_lock_waits = on
sql查看慢语句
# 例如查询执行时间超过1秒的SQL
select * from pg_stat_activity where state<>'idle' and now()-query_start > interval '1 s' order by query_start ;
查询连接数
select count(*) from pg_stat_activity ;
查询总连接数
show max_connections ;
查询剩余的连接数
select max_conn-now_conn as resi_conn from (select setting::int8 as max_conn,(select count(*) from pg_stat_activity) as now_conn from pg_settings where name = 'max_connections') t;
按用户统计连接数
select usename, count(*) from pg_stat_activity group by usename order by count(*) desc;
关闭空闲的连接
#查询空闲连接
select datname,pid,application_name,state from pg_stat_activity;
#杀死掉所有空闲进制
select pg_terminate_backend(pid) from pg_stat_activity where state='idle';
网友评论