postgresql 日志配置
PostgreSQL有3种日志,分别是pg_log(数据库运行日志)、pg_xlog(WAL 日志,即重做日志)、pg_clog(事务提交日志,记录的是事务的元数据)
pg_log默认是关闭的,需要设置参数启用此日志。pg_xlog和pg_clog都是强制打开的,无法关闭。 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
--日志文件目录 --CSV日志文件内容 上面两条是 postgresql-2011-03-15_000000.csv 日志文件的部分内容,由于日志文件的可读性 这两个参数修改后,PG SERVER 需要重启。 2--创建日志记录表 NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "postgres_log_pkey" for table "postgres_log" 备注:创建日志表 postgres_log 用来保存 CSV日志数据。 3--导入操作系统 csv 日志到表 postgres_log 表 skytf=# copy skytf.postgres_log from '/var/applog/pg_log/postgresql-2011-03-15_000000.csv' with csv; 备注:文件形式导入导出数据需要以超级用户 postgres 连接到目标库。 4--常用日志分析sql skytf=> select log_time,database_name,user_name,application_name,message from postgres_log where message like '%duration%'; log_time | database_name | user_name | application_name | mess age ----------------------------+---------------+-----------+------------------+-------------------------------------------------------- ------------------------------------------------------- 2011-03-15 00:23:38.957+08 | db_lbs | lbs | | duration: 1297.440 ms execute <unnamed>: SELECT cit yname,province,the_geom as the_geom FROM china_city ....... 为了显示方便,上面只取一条记录。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |