问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

日志文件(记录文件)有哪几种,分别介绍他们的工作模式?

发布网友 发布时间:2022-05-02 08:33

我来回答

3个回答

懂视网 时间:2022-05-02 12:54


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 = warning


参数解释:

log_directory = ‘/data/pgsql086/log‘

这个参数只能在postgresql.conf文件中被设置。它决定存放数据库运行日志文件的目录。默认值是pg_log。可以是绝对路径,也可是相对路径(相对于数据库文件所在的路径)。


log_filename = ‘postgresql-%Y-%m-%d_%H%M%S.log‘

它决定数据库运行日志文件的名称。默认值是postgresql-%Y-%m-%d_%H%M%S.log。它的值可以包含%Y、%m、%d、%H、%M和%S这样的字符串,分别表示年、月、日、小时、分和秒。 如果参数的值中没有指定时间信息(没有出现%Y、%m、%d、%H、%M和%S中的任何一个),系统会自动在log_filename值的末尾加上文件创建的时间作为文件名,例如,如果log_filename的值是 server_log,那么在Sun Aug 29 19:02:33 2004 MST被创建的日志文件的名称将是server_log.1093827753,1093827753是Sun Aug 29 19:02:33 2004 MST在数据库内部的表示形式。这个参数只能在postgresql.conf文件中被设置。


log_rotation_age = 1d

单个日志文件的生存期,默认1天,在日志文件大小没有达到log_rotation_size时,一天只生成一个日志文件


log_rotation_size = 10MB 

这个参数只能在postgresql.conf文件中被设置。单个日志文件的大小,如果时间没有超过log_rotation_age,一个日志文件最大只能到10M,否则将新生成一个日志文件。


log_min_messages = warning  默认是warning ,

控制写到数据库日志文件中的消息的级别。合法的取值是DEBUG5、DEBUG4、DEBUG3、DEBUG2、DEBUG1、INFO、NOTICE、WARNING、ERROR、 LOG、FATAL和PANIC,每个级别都包含排在它后面的所有级别中的信息。级别越高,数据库运行日志中记录的消息就越多。


重启postgresql服务:

[postgres@cacti log]$ pg_ctl status

pg_ctl: no server running

[postgres@cacti log]$ pg_ctl start

server starting

[postgres@cacti log]$ LOG:  redirecting log output to logging collector process

HINT:  Future log output will appear in directory "/data/pgsql086/log".


[postgres@cacti log]$ ll /data/pgsql086/log/*

-rw-------. 1 postgres postgres 30477 Nov  2 12:01 /data/pgsql086/log/postgres.log

-rw-------. 1 postgres postgres   794 Nov  2 15:14 /data/pgsql086/log/postgresql-2017-11-02_151410.csv

-rw-------. 1 postgres postgres    96 Nov  2 15:14 /data/pgsql086/log/postgresql-2017-11-02_151410.log

[postgres@cacti log]$ tailf /data/pgsql086/log/postgresql-2017-11-02_151410.csv

2017-11-02 15:14:10.385 CST,,,21315,,59fac5c2.5343,1,,2017-11-02 15:14:10 CST,,0,LOG,00000,"ending log output to stderr",,"Future log output will go to log destination ""csvlog"".",,,,,,,""

2017-11-02 15:14:10.387 CST,,,21317,,59fac5c2.5345,1,,2017-11-02 15:14:10 CST,,0,LOG,00000,"database system was shut down at 2017-11-02 15:13:29 CST",,,,,,,,,""

2017-11-02 15:14:10.389 CST,,,21317,,59fac5c2.5345,2,,2017-11-02 15:14:10 CST,,0,LOG,00000,"MultiXact member wraparound protections are now enabled",,,,,,,,,""

2017-11-02 15:14:10.392 CST,,,21321,,59fac5c2.5349,1,,2017-11-02 15:14:10 CST,,0,LOG,00000,"autovacuum launcher started",,,,,,,,,""

2017-11-02 15:14:10.392 CST,,,21315,,59fac5c2.5343,2,,2017-11-02 15:14:10 CST,,0,LOG,00000,"database system is ready to accept connections",,,,,,,,,""

2017-11-02 15:14:43.211 CST,,,21338,"127.0.0.1:33506",59fac5e3.535a,1,"",2017-11-02 15:14:43 CST,,0,LOG,00000,"connection received: host=127.0.0.1 port=33506",,,,,,,,,""

2017-11-02 15:14:43.212 CST,"postgres","postgres",21338,"127.0.0.1:33506",59fac5e3.535a,2,"authentication",2017-11-02 15:14:43 CST,2/5,0,LOG,00000,"connection authorized: user=postgres database=postgres",,,,,,,,,""

2017-11-02 15:14:55.416 CST,,,21339,"127.0.0.1:33507",59fac5ef.535b,1,"",2017-11-02 15:14:55 CST,,0,LOG,00000,"connection received: host=127.0.0.1 port=33507",,,,,,,,,""

2017-11-02 15:14:55.417 CST,"postgres","testdb03",21339,"127.0.0.1:33507",59fac5ef.535b,2,"authentication",2017-11-02 15:14:55 CST,3/1,0,LOG,00000,"connection authorized: user=postgres database=testdb03",,,,,,,,,""

2017-11-02 15:15:26.873 CST,"postgres","testdb03",21339,"127.0.0.1:33507",59fac5ef.535b,3,"SELECT",2017-11-02 15:14:55 CST,3/4,0,ERROR,42P01,"relation ""weather1"" does not exist",,,,,,"select * from weather1;",15,,"psql.bin"

上面两条是 postgresql-2011-03-15_000000.csv 日志文件的部分内容 ,由于日志文件的可读性
 较差,于是可以通过下面方法将CSV日志导入到数据库表里。详细如下

 
将CSV日志导入数据库表里   
1--调整参数
log_destination = ‘csvlog‘
logging_collector = on

    这两个参数修改后,PG SERVER 需要重启。

2--创建日志记录表
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)
);

NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "postgres_log_pkey" for table "postgres_log"
CREATE TABLE;

    备注:创建日志表 postgres_log 用来保存 CSV日志数据。

3--导入操作系统 csv 日志到表 postgres_log 表
skytf=# copy skytf.postgres_log from ‘/var/applog/pg_log/postgresql-2011-03-14_000000.csv‘ with csv;
COPY 26031

skytf=# copy skytf.postgres_log from ‘/var/applog/pg_log/postgresql-2011-03-15_000000.csv‘ with csv;
COPY 1297

      备注:文件形式导入导出数据需要以超级用户 postgres 连接到目标库。

4--常用日志分析sql
skytf=# select min(log_time),max(log_time) from skytf.postgres_log;
            min             |            max             
----------------------------+----------------------------
 2011-03-14 14:04:07.275+08 | 2011-03-16 05:04:34.427+08
(1 row)

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   
.......
      为了显示方便,上面只取一条记录。


提示:

只要重启数据库,就会产生新的postgresql运行日志文件,同时postgresql-2017-11-02_151410.csv只记录错误日志

[postgres@cacti log]$ pg_ctl stop

waiting for server to shut down.... done

server stopped

[postgres@cacti log]$ pg_ctl start

server starting

[postgres@cacti log]$ LOG:  redirecting log output to logging collector process

HINT:  Future log output will appear in directory "/data/pgsql086/log".


[postgres@cacti log]$ ll /data/pgsql086/log/

total 56

-rw-------. 1 postgres postgres 30477 Nov  2 12:01 postgres.log

-rw-------. 1 postgres postgres  4971 Nov  2 15:37 postgresql-2017-11-02_151410.csv

-rw-------. 1 postgres postgres    96 Nov  2 15:14 postgresql-2017-11-02_151410.log

-rw-------. 1 postgres postgres   794 Nov  2 15:37 postgresql-2017-11-02_153751.csv

-rw-------. 1 postgres postgres    96 Nov  2 15:37 postgresql-2017-11-02_153751.log



2.记录执行慢的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‘


参考博文:

http://www.cnblogs.com/alianbog/p/5596921.html

http://blog.csdn.net/shanzhizi/article/details/47616645

本文出自 “10931853” 博客,谢绝转载!

postgresql9.5.9相关的日志文件介绍

标签:postgresql9.5.9相关的日志文件介绍

热心网友 时间:2022-05-02 10:02

归档日志:当日志写满,完成一次循环之前建立一个副本。这样数据库就可以在损坏中得到恢复。恢复的过程相当于把建库的所有动作重新做一次。最安全的数据库工作方式,占用空间也最大
非归档日志:日志写满后,直接覆盖,它只是部分地记录数据库操作,所以恢复能力有限。

热心网友 时间:2022-05-02 11:20

我的电脑
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
erp可以看评论地址吗 淘宝评论url是什么意思? 揭秘:码牌支付风控升级,背后真相揭秘 电脑电视直播软件哪个好用什么软件好电脑看电视直播 潼南子同街学区是哪些 三极管BU406价格和参数? 火锅料放在冰柜忘了插电一个星期给会坏了吗 火锅的设备有哪些 火锅餐厅厨房有哪些 小火锅厨房设备有哪些 民事纠纷68岁老人签协议有效吗 我公司顾用老年人看门合同怎么写? 【借呗】提前还款“利息”怎么算?【借呗】一万元12期每月还多少 蚂蚁借呗怎么还钱合适 蚂蚁借呗怎么还款划算 书法入门·楷书欧体悬针竖 毛笔书法专业教程欧体楷书 视频究竟有多少讲 初学书法怎样入门:欧体楷书结构大字贴 求王者荣耀六个字的名称 霸气一点的 欧楷书法欧体楷书基本笔画入门教学视频:竖弯钩(鹅钩) 《王者荣耀》三排押韵名字有哪些? 公积金断缴六个月,里面的钱如何提取 我想在海南买房子 有什么好的建议! 海南买房买哪个朝向好 大庆的公积金是不是可以请人代取啊 请问本人想在海南买房子,哪个地方的风水好 公积金停缴了,处于封存状态能办理委托提取吗 三亚买房哪个地段好? 我的住房公积金已经停交4年多了,我想把它提出来,请问如何办理? 购买鸿合智能交互黑板后,售后能得到保障吗? 想找一个晚上看家的老头,需要签订合同吗 公司没有和看门老头(60岁)签劳动合同,现在辞他,他要5万元补偿金 电动车充电器灯闪烁风扇不转? 电动车充电器。风扇不转什么原因? 电车充电器亮红灯充不进电小风扇也不转是怎么回事 刘谦的把两只蛋变成了一个心形鸡蛋揭秘 男人一般多长多粗是正常的 男人多粗,多久才正常 男人多久多粗算正常 男人的那个多大多长才算正常正常? 青春期的性器官发育多大正常 男人多大多粗算正常 中国男人的那个一般有多长多粗为健康标准 迈瑞医疗股k线图新浪财经 迈瑞医疗一季度财报?迈瑞医疗 现在价钱?迈瑞医疗股票k线图? 应届毕业生签订三方协议后毁约应该怎么办 应届生三方协议可以毁约几次 我是2020年应届毕业生我跟学校签了三方协议我想再去别的单位可以违约吗? 应届生三方协议与违约 应届生考上了教师编制并签了三方协议,毁约难吗?- 问一问