我的编程空间,编程开发者的网络收藏夹
学习永远不晚

PostgreSQL的日志文件参数及注意事项有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

PostgreSQL的日志文件参数及注意事项有哪些

这篇文章主要介绍“PostgreSQL的日志文件参数及注意事项有哪些”,在日常操作中,相信很多人在PostgreSQL的日志文件参数及注意事项有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PostgreSQL的日志文件参数及注意事项有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

运行日志参数


1.1 运行日志主要参数

运行日志主要相关的参数如下,默认没有开启的话没有log目录,开启后会自动生成。

参数

可选值/说明

og_destination = 'csvlog' 

# stderr, csvlog, syslog, and eventlog ,csvlog requires logging_collector to be on

一般选择这个,可以将csv日志导入数据库中查看

logging_collector = on

# Enable capturing of stderr and csvlog into log files
选scv格式的日志必须设置这个参数on,修改需要重启

log_directory = 'log'

日志输出目录

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

日志输出目录

log_file_mode = 0600 

日志文件名字格式

log_truncate_on_rotation = on

# creation mode for log files   日志文件权限

log_rotation_age = 1d

设置重用日志

log_rotation_size = 10MB

多长时间重用日志

log_min_messages = warning                   

日志达到多大重用

log_min_duration_statement = 60

# debug5,debug4,debug3,debug2,debug1,info,notice,warning,error,log,fatal,panic

log_checkpoints = on

慢sql记录(超过多长时间的sql)

log_connections = on

记录checkpoint操作

log_disconnections = on

记录会话断开操作

log_duration = on

记录sql执行时间

log_lock_waits = on       

# log lock waits >= deadlock_timeout   记录时间长的阻塞

log_statement = 'ddl' 

# none, ddl, mod, all    记录ddl

1.2  注意事项

设置csv格式日志的话一定要设置logging_collector 为 on
pg10版本的运行日志一般在$PGDATA/log目录下
log目录是开启运行日志后自动生成的
可以通过log_rotation_age来设置多久重新生成一个日志文件
可以通过log_rotation_size来设置多大的日志来重新生成日志文件
上面两个都需要配合log_truncate_on_rotation 为 on来使用
可以开启log_duration来记录sql执行时间
可以开启log_statement来记录数据库ddl

1.3  csv日志载入数据库

Oracle有外部表,pg也有fdw。oracle可以用外部表的方式将alert日志载入到数据库中用SQL来查看。PG可以用copy命令将csv日志载入到数据库中用SQL来查看。这种方式都可以很方便得用sql来查询想要的日志内容。这种方式的有点是显而易见的,就是可以很容易得用SQL来查询和过滤日志,pg的日志文件可以截断分割成若干小文件,可以载入自己需要的日志。而Oracle的alert通常会很大。

缺点也是显而易见的,如果数据库挂了就不能用这种方式来查看日志。而且pg的csv日志不容易直接阅读。

1.3.1 创建日志表

创建了一个数据库和新的表来载入日志

postgres=# create database test;
CREATE DATABASE
postgres=# \c test
You are now connected to database "test" as user "pg12".
test=# CREATE TABLE pg_log
test-# (
test(#   log_time timestamp(3) with time zone,
test(#   user_name text,
test(#   database_name text,
test(#   process_id integer,
test(#   connection_from text,
test(#   session_id text,
test(#   session_line_num bigint,
test(#   command_tag text,
test(#   session_start_time timestamp with time zone,
test(#   virtual_transaction_id text,
test(#   transaction_id bigint,
test(#   error_severity text,
test(#   sql_state_code text,
test(#   message text,
test(#   detail text,
test(#   hint text,
test(#   internal_query text,
test(#   internal_query_pos integer,
test(#   context text,
test(#   query text,
test(#   query_pos integer,
test(#   location text,
test(#   application_name text,
test(#   PRIMARY KEY (session_id, session_line_num)
test(# );

CREATE TABLE
test=#

1.3.2 查看日志文件名字

[pg12@whf307 ~]$ cd $PGDATA/log
[pg12@whf307 log]$ ls -rtl
total 24
-rw------- 1 pg12 pg12  166 May 30 13:32 postgresql-2019-05-30_133202.log
-rw------- 1 pg12 pg12  496 May 30 13:32 postgresql-2019-05-30_133202.csv
-rw------- 1 pg12 pg12    0 May 30 13:32 postgresql-2019-05-30_133254.log
-rw------- 1 pg12 pg12  170 May 30 13:32 postgresql-2019-05-30_133254.csv
-rw------- 1 pg12 pg12  166 May 30 13:33 postgresql-2019-05-30_133324.log
-rw------- 1 pg12 pg12 6566 May 30 16:16 postgresql-2019-05-30_133324.csv
-rw------- 1 pg12 pg12    0 May 31 00:00 postgresql-2019-05-31_000000.log
-rw------- 1 pg12 pg12    0 May 31 00:00 postgresql-2019-05-31_000000.csv
[pg12@whf307 log]$
[pg12@whf307 log]$ pwd
/soft/pg_data/log
[pg12@whf307 log]$

1.3.3 载入到数据库

[pg12@whf307 log]$ psql  test
psql (12beta1)
Type "help" for help.
test=# \d
        List of relations
 Schema |  Name  | Type  | Owner
--------+--------+-------+-------
 public | pg_log | table | pg12
(1 row)

test=# copy pg_log from '/soft/pg_data/log/postgresql-2019-05-30_133324.csv' with csv;
COPY 32

1.3.4 查看日志

这样就可以用sql来查看了。执行一个普通查询

test=# select relfilenode from pg_class where relname='pg_log';
 relfilenode
-------------
       16385
(1 row)

载入最新的日志。这里可以重复载入,不会覆盖之前的数据。

[pg12@whf307 log]$ ls -rtl
total 32
-rw------- 1 pg12 pg12  166 May 30 13:32 postgresql-2019-05-30_133202.log
-rw------- 1 pg12 pg12  496 May 30 13:32 postgresql-2019-05-30_133202.csv
-rw------- 1 pg12 pg12    0 May 30 13:32 postgresql-2019-05-30_133254.log
-rw------- 1 pg12 pg12  170 May 30 13:32 postgresql-2019-05-30_133254.csv
-rw------- 1 pg12 pg12  166 May 30 13:33 postgresql-2019-05-30_133324.log
-rw------- 1 pg12 pg12 6566 May 30 16:16 postgresql-2019-05-30_133324.csv
-rw------- 1 pg12 pg12    0 May 31 00:00 postgresql-2019-05-31_000000.log
-rw------- 1 pg12 pg12 4545 May 31 00:37 postgresql-2019-05-31_000000.csv
[pg12@whf307 log]$ psql test
psql (12beta1)
Type "help" for help.
test=# copy pg_log from '/soft/pg_data/log/postgresql-2019-05-31_000000.csv' with csv;
COPY 28

再次查看日志

test=# SELECT COUNT(*) FROM PG_LOG;
 count
-------
    60
(1 row)

test=# select log_time at time zone 'UTC' ,database_name,connection_from,query from pg_log where log_time>to_timestamp('2019-05-31 14:35:00','yyyy-mm-dd hh34:mi:ss');
        timezone         | database_name | connection_from |                           query                          
-------------------------+---------------+-----------------+-----------------------------------------------------------
 2019-05-31 06:35:42.843 | test          | [local]         |
 2019-05-31 06:35:57.582 | test          | [local]         |
 2019-05-31 06:36:54.369 | test          | [local]         | selectt relfilenode from pg_class where relname='pg_log';
 2019-05-31 06:36:58.002 | test          | [local]         |
 2019-05-31 06:37:00.192 | test          | [local]         |
 2019-05-31 06:37:11.651 |               | [local]         |
 2019-05-31 06:37:11.651 | test          | [local]         |
(7 rows)

可以看到记录数变成了60,之前的记录没有被覆盖,我们可以一直使用该表,可以用sql来查看sql,数据库,登录时间等等的所有日志。

查看日志起始结束时间

test=# select min(log_time)  at time zone 'UTC',max(log_time)  at time zone 'UTC' from pg_log;
        timezone         |        timezone        
-------------------------+-------------------------
 2019-05-30 19:33:24.892 | 2019-05-31 06:37:11.651
(1 row)

有了灵活的数据加载方式,让SQL处理很多问题更加简捷便利。

到此,关于“PostgreSQL的日志文件参数及注意事项有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

PostgreSQL的日志文件参数及注意事项有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PHP文件上传的注意事项有哪些

PHP文件上传的注意事项有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。PHP文件上传在实际实现的过程中偶尔会发生一些问题。下面我们就总结了一些解决的技巧经验,供大家在
2023-06-17

assert的用法及注意事项有哪些

这篇文章主要介绍“assert的用法及注意事项有哪些”,在日常操作中,相信很多人在assert的用法及注意事项有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”assert的用法及注意事项有哪些”的疑惑有所
2023-06-02

C++函数模板非类型参数的注意事项有哪些呢

本篇文章为大家展示了C++函数模板非类型参数的注意事项有哪些呢,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C++编程语言中的模板应用是一个非常重要的应用技术。那么今天我们就先来了解一下有关C++函
2023-06-17

mysql8.0.27配置的方法及有哪些注意事项

这篇文章主要介绍“mysql8.0.27配置的方法及有哪些注意事项”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mysql8.0.27配置的方法及有哪些注意事项”文章能帮助大家解决问题。选择这个直接
2023-06-29

导入数据库的注意事项有哪些

导入数据库时需要注意以下事项:1.备份数据:在导入数据库之前,建议先备份现有的数据库,以防止数据丢失或损坏。2.检查数据库版本:确保导入的数据库文件与目标数据库的版本兼容。3.权限设置:确保具有足够的权限来导入数据库。只有具有适当权限的用户
2023-09-29

python编写函数的注意事项有哪些

这篇文章将为大家详细讲解有关python编写函数的注意事项有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、编写注意(1)给函数指定描述名。(2)函数名称只包括小写字母和下划线。(3)每一个函数都应
2023-06-14

SEO写原创文章注意的事项有哪些

这篇文章给大家分享的是有关SEO写原创文章注意的事项有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  首先是文章的标题具有长尾词特性,文章页的作用除了作为新的内容吸引蜘蛛爬取,增加网站的收录之外,还是一个布
2023-06-10

C#中文件安全管理需要注意的事项有哪些

这篇文章给大家分享的是有关C#中文件安全管理需要注意的事项有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一.DotNet文件目录常用操作: 提到文件的I/O操作,这个对于每一个开发者来说都不是陌
2023-06-14

word文档缩印小抄的注意事项有哪些

缩印小抄是将正常大小的文档缩小成小册子或小抄的打印方式。以下是缩印小抄注意事项的一些常见内容:1. 页面设置:在进行缩印前,要确保文档的页面设置是正确的。通常缩印小抄会将一个正常大小的页面缩小成几个小页面,因此需要将原始文档的页面大小调整为
2023-10-09

ip代理软件的使用注意事项有哪些

这篇文章将为大家详细讲解有关ip代理软件的使用注意事项有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用IP交换软件无非是为了带来更多的便利,所以有必要掌握相关注意事项的细节。1、在使用IP交换软件
2023-06-15

编程热搜

目录