iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >PostgreSQL的日志文件参数及注意事项有哪些
  • 897
分享到

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

2024-04-02 19:04:59 897人浏览 薄情痞子
摘要

这篇文章主要介绍“postgresql的日志文件参数及注意事项有哪些”,在日常操作中,相信很多人在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的日志文件参数及注意事项有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

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

本文链接: https://www.lsjlt.com/news/63650.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • PostgreSQL的日志文件参数及注意事项有哪些
    这篇文章主要介绍“PostgreSQL的日志文件参数及注意事项有哪些”,在日常操作中,相信很多人在PostgreSQL的日志文件参数及注意事项有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方...
    99+
    2024-04-02
  • PostgreSQL时间日期的语法及注意事项
    目录sql时间用法获取当前日期的函数&&获取当前时间的函数获取当前日期的函数获取当前时间的函数获取当前日期加时间的函数函数: current_timestamp函数:...
    99+
    2023-01-13
    postgresql 时间日期 postgresql数据库
  • PHP文件上传的注意事项有哪些
    PHP文件上传的注意事项有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。PHP文件上传在实际实现的过程中偶尔会发生一些问题。下面我们就总结了一些解决的技巧经验,供大家在...
    99+
    2023-06-17
  • HTML绝对定位的参考点及注意事项有哪些
    本篇内容介绍了“HTML绝对定位的参考点及注意事项有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • MySQL慢日志选项参数有哪些
    这篇文章给大家分享的是有关MySQL慢日志选项参数有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。〇 log_output枚举型,动态参数。用于设置slow log和gene...
    99+
    2024-04-02
  • assert的用法及注意事项有哪些
    这篇文章主要介绍“assert的用法及注意事项有哪些”,在日常操作中,相信很多人在assert的用法及注意事项有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”assert的用法及注意事项有哪些”的疑惑有所...
    99+
    2023-06-02
  • TokuDB安装及注意事项有哪些
    这篇文章将为大家详细讲解有关TokuDB安装及注意事项有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。TokuDB的特点:1、高压缩比,官方宣称可以达到1:12。2、...
    99+
    2024-04-02
  • java参数传值要注意哪些事项
    在Java中,参数传值是通过将参数的副本传递给方法来实现的。在传递参数时,需要注意以下几点: 基本类型(例如int、float、b...
    99+
    2024-02-29
    java
  • Flex键盘事件注意事项有哪些
    这篇文章将为大家详细讲解有关Flex键盘事件注意事项有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Flex键盘事件注意事项注意:判断keycode时,需要调用toString()方法,然后在跟键位的...
    99+
    2023-06-17
  • jQuery.get的注意事项有哪些
    这篇文章主要讲解了“jQuery.get的注意事项有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jQuery.get的注意事项有哪些”吧!   Ad...
    99+
    2024-04-02
  • Vue.js的注意事项有哪些
    这篇文章主要讲解了“Vue.js的注意事项有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue.js的注意事项有哪些”吧!1、为什么 Vue.js 不...
    99+
    2024-04-02
  • spring事务的注意事项有哪些
    spring事务的注意事项有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。  事务一般是指数据库事务,是指作为一个程序执行单元执行的一...
    99+
    2024-04-02
  • php文件上传要注意哪些事项
    在使用PHP进行文件上传时,需要注意以下几个事项:1. 验证文件类型:在接收上传文件之前,应该验证文件类型是否符合要求,可以通过使用...
    99+
    2023-10-18
    php
  • java文件打开要注意哪些事项
    要注意以下事项来打开Java文件:1. 确认你有正确的Java开发环境配置。你需要安装JDK(Java Development Ki...
    99+
    2023-08-29
    java
  • mysql8.0.27配置的方法及有哪些注意事项
    这篇文章主要介绍“mysql8.0.27配置的方法及有哪些注意事项”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mysql8.0.27配置的方法及有哪些注意事项”文章能帮助大家解决问题。选择这个直接...
    99+
    2023-06-29
  • C++函数模板非类型参数的注意事项有哪些呢
    本篇文章为大家展示了C++函数模板非类型参数的注意事项有哪些呢,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C++编程语言中的模板应用是一个非常重要的应用技术。那么今天我们就先来了解一下有关C++函...
    99+
    2023-06-17
  • oracle hash join原理及注意事项有哪些
    oracle hash join原理及注意事项有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。7.3引入,仅用于CBO和等值连接,隐含...
    99+
    2024-04-02
  • 租用的注意事项有哪些
    香港虚拟云主机租用的注意事项:1. 选择稳定性好的香港云主机,保证最佳的访问速度,有利于搜索引擎的优化,提高网站的排名。2. 货比三家,租用性价比高的云主机,降低成本消耗。3. 注意售后服务,选择能够保障提供良好售后的服务商,提供及时的技术...
    99+
    2024-04-02
  • windows系统日常使用注意事项有哪些
    这篇文章将为大家详细讲解有关windows系统日常使用注意事项有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、在哪下载软件很多同学下载软件会习惯在百度直接搜索,看到比较像是要找的软件标题直接就点进...
    99+
    2023-06-28
  • win8电脑日常使用注意事项有哪些
    小编给大家分享一下win8电脑日常使用注意事项有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!硬件维护周期清理计算机机箱使用久了会有很多灰尘,这会影响机器散热,零件过热后会自主降低工作频率来保护自身硬件不会过热烧毁,我...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作