返回顶部
首页 > 资讯 > 数据库 >PostgreSQL的日志文件和数据加载
  • 538
分享到

PostgreSQL的日志文件和数据加载

2024-04-02 19:04:59 538人浏览 安东尼
摘要

原文: https://www.enmotech.com/WEB/detail/1/798/1.html   导读:本文主要介绍postgresql的日志文件参数及注意事


原文: https://www.enmotech.com/WEB/detail/1/798/1.html  


导读:本文主要介绍postgresql日志文件参数及注意事项,从csv日志中载入数据库。通过灵活的数据加载方式,让sql在处理很多问题上更加简捷便利。



运行日志参数




1.1 运行日志主要参数


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


PostgreSQL的日志文件和数据加载


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;
您可能感兴趣的文档:

--结束END--

本文标题: PostgreSQL的日志文件和数据加载

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

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

猜你喜欢
  • PostgreSQL的日志文件和数据加载
    原文: https://www.enmotech.com/web/detail/1/798/1.html   导读:本文主要介绍PostgreSQL的日志文件参数及注意事...
    99+
    2024-04-02
  • 添加和删除InnoDB数据和日志文件的方法
    这篇文章主要介绍“添加和删除InnoDB数据和日志文件的方法”,在日常操作中,相信很多人在添加和删除InnoDB数据和日志文件的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • 解释SQL Server中的日志文件和数据文件
    SQL Server中的日志文件和数据文件是关系数据库中的两种主要文件类型,用于存储数据库的数据和日志信息。 数据文件包含了实际存储在数据库中的数据,包括表、索引、存储过程等。数据文件通常具有扩展名为.mdf。每个数据库至少有一个数据文件,...
    99+
    2024-06-03
    sql server
  • Oracle日志组中如何添加冗余文件和日志组
    这篇文章将为大家详细讲解有关Oracle日志组中如何添加冗余文件和日志组,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 rac中需要指定th...
    99+
    2024-04-02
  • 如何在Go语言中加载Laravel日志文件?
    在本文中,我们将学习如何在Go语言中加载Laravel日志文件。Laravel是一个流行的PHP框架,它提供了强大的日志记录功能。如果你正在使用Laravel作为你的Web应用程序框架,并且想要在Go语言中读取Laravel日志文件,那么你...
    99+
    2023-10-18
    load laravel 日志
  • 误删SQLServer日志文件后怎么附加数据库
    这篇文章主要讲解了“误删SQLServer日志文件后怎么附加数据库”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“误删SQLServer日志文件后怎么附加数据...
    99+
    2024-04-02
  • MongoDB的追加日志设置生成新的日志文件
    MongoDB的日志文件在设置 logappend=true 的情况下,会不断向同一日志文件追加的,时间长了,自然变得非常大。  解决如下:(特别注意:启动的时候必须是--logpath指定了lo...
    99+
    2024-04-02
  • PostgreSQL的日志文件参数及注意事项有哪些
    这篇文章主要介绍“PostgreSQL的日志文件参数及注意事项有哪些”,在日常操作中,相信很多人在PostgreSQL的日志文件参数及注意事项有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方...
    99+
    2024-04-02
  • 数据库重命名和迁移日志文件、数据文件的方法是什么
    本篇内容介绍了“数据库重命名和迁移日志文件、数据文件的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2024-04-02
  • oracle 数据库lsnrctl监听的日志路径和trace文件
    lsnrctl  监听日志的路径:$ORACLE_BASE/diag/tnslsnr/<your_host>/<listener_name>/trace/<list...
    99+
    2024-04-02
  • sql日志文件如何恢复数据
    要恢复数据,您可以在 SQL Server Management Studio 中执行以下步骤: 打开 SQL Server Ma...
    99+
    2024-04-22
    sql
  • oracle数据库日志文件在哪里
    oracle 数据库日志文件的位置因操作系统而异:unix/linux 系统:$oracle_base/oradata//redo01.log、redo02.log、redo03.log...
    99+
    2024-05-10
    oracle linux
  • 什么是SQLServer中的日志文件和日志记录
    SQL Server中的日志文件是用来记录数据库中的所有操作的文件。日志记录是指将数据库的所有更新操作(如插入、删除、更新)以及事务...
    99+
    2024-04-09
    SQLServer
  • MongoDB数据库的日志文件有什么用
    这篇文章主要介绍MongoDB数据库的日志文件有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!日志信息的格式<日志时间> <严重级别> <信息所属...
    99+
    2024-04-02
  • Oracle数据库中的日志文件是什么
    在Oracle数据库中,日志文件主要包括重做日志文件和归档日志文件。 重做日志文件(Redo Log Files):重做日志是一...
    99+
    2024-03-02
    Oracle
  • Oracle11G_归档和日志文件
    运行方式:Oracle数据库可以运行在归档模式、非归档模式,且可以相互切换;日志文件分类:联机日志文件、归档日志文件;联机重做日志 :记录对数据的修改,可用于数据恢复、日志分析;也叫在线日志文件;LGWR进...
    99+
    2024-04-02
  • SQL Server 数据库清空ldf日志文件
    USE [master] ALTER DATABASE [DB_Develop] SET RECOVERY SIMPLE WITH NO_WAIT ALTER DATABASE [DB_Develop] SET RECOVERY SIMP...
    99+
    2021-05-10
    SQL Server 数据库清空ldf日志文件
  • Laravel日志:如何使用Go语言进行数据加载?
    Laravel是一个流行的PHP框架,它提供了许多有用的功能,其中之一就是日志系统。Laravel的日志系统可以帮助开发人员记录应用程序中发生的各种事件,从而更好地了解应用程序的行为和性能。然而,在某些情况下,我们需要从外部数据源获取数据并...
    99+
    2023-10-18
    load laravel 日志
  • mysql学习8:第四章:数据库文件--日志文件
      1.1.   错误日志文件(error log ) 默认存放路径在数据目录下,以error.log结尾的文件。 查看文件位置: show variable...
    99+
    2024-04-02
  • Sql Server 压缩数据库日志文件的方法
    Sql Server 日志 _log.ldf文件太大,数据库文件有500g,日志文件也达到了500g,占用磁盘空间过大,且可能影响程序性能,需要压缩日志文件。 压缩日志脚本里要填的名字从要压缩的数据库属性里查看 脚本文...
    99+
    2022-11-24
    SqlServer压缩数据库 SqlServer日志文件
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作