PostgreSQL的日志类型

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
日志服务 SLS,月写入数据量 50GB 1个月
简介: 刚开始学习postgres的时候,可能对PostgreSQL中的日志概念比较模糊,到底有多少种日志,哪些日志是能删除的,各自又记录什么样的功能。

刚开始学习postgres的时候,可能对PostgreSQL中的日志概念比较模糊,到底有多少种日志,哪些日志是能删除的,各自又记录什么样的功能。

PostgreSQL中有三种日志,pg_log,pg_xlog和pg_clog。

一.安装路径
这三种数据库后两者一般的安装路径是$PGDATA/下面的文件夹下,前者默认路径是$PGDATA/pg_log,通常可自己定义路径和文件名


[postgres@testdb ~]$ cd $PGDATA
[postgres@testdb pgdata]$ ls -l
total 88
drwx------ 10 postgres kenyon  4096 Dec 12 15:58 base
drwx------  2 postgres kenyon  4096 Dec 13  10:13 global
drwx------  2 postgres kenyon  4096 Jun 21   2012 pg_clog
-rw-------  1 postgres  kenyon  4739 Aug 10  09:31 pg_hba.conf
-rw-------  1 postgres  kenyon  1636 Jun 21   2012 pg_ident.conf
drwx------  4 postgres kenyon  4096 Jun 21   2012 pg_multixact
drwx------  2 postgres kenyon  4096 Dec 12  18:24 pg_notify
drwx------  2 postgres kenyon  4096 Jun 21   2012 pg_serial
drwx------  2 postgres kenyon  4096 Dec 21  20:17 pg_stat_tmp
drwx------  2 postgres kenyon  4096 Dec 14  15:01 pg_subtrans
drwx------  2 postgres kenyon  4096 Jun 21   2012 pg_tblspc
drwx------  2 postgres kenyon  4096 Jun 21   2012 pg_twophase
-rw-------  1 postgres  kenyon     4 Jun 21     2012 PG_VERSION
drwx------  3 postgres kenyon  4096 Dec 13  15:20 pg_xlog
-rw-------  1 postgres  kenyon 19439 Dec 13  18:23 postgresql.conf
-rw-------  1 postgres  kenyon    52 Dec 12   18:24 postmaster.opts
-rw-------  1 postgres  kenyon    73 Dec 12   18:24 postmaster.pid

[postgres@testdb pgdata]$more postgresql.conf
log_destination = 'csvlog'
logging_collector = on
log_directory = '/home/postgres/pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'


二 .用处 
pg_log 
这个日志一般是记录服务器与DB的状态,比如各种Error信息,定位慢查询SQL,数据库的启动关闭信息,发生checkpoint过于频繁等的告警信息,诸如此类。linux自带的路径一般在/var/log/postgres下面。该日志有.csv格式和.log。个人建议用前一种,因为一般会按大小和时间自动切割,毕竟查看一个巨大的日志文件比查看不同时间段的多个日志要难得多。另外这种日志是可以被清理删除,压缩打包或者转移,同时并不影响DB的正常运行。当我们有遇到DB无法启动或者更改参数没有生效时,第一个想到的就是查看这个日志。 
一般的结果如下: 
[postgres@testdb pg_log]$ ll
total 3996
-rw------- 1 postgres kenyon   15632   Dec 12 21:59 postgresql-2012-12-12_182439.csv
-rw------- 1 postgres kenyon       0      Dec 12 18:24 postgresql-2012-12-12_182439.log
-rw------- 1 postgres kenyon 3990717 Dec 13 23:48 postgresql-2012-12-13_000000.csv
-rw------- 1 postgres kenyon       0     Dec 13 00:00 postgresql-2012-12-13_000000.log
-rw------- 1 postgres kenyon   27518  Dec 14 17:46 postgresql-2012-12-14_000000.csv
-rw------- 1 postgres kenyon       0     Dec 14 00:00 postgresql-2012-12-14_000000.log
-rw------- 1 postgres kenyon       0     Dec 15 00:00 postgresql-2012-12-15_000000.csv
-rw------- 1 postgres kenyon       0     Dec 15 00:00 postgresql-2012-12-15_000000.log
-rw------- 1 postgres kenyon       0     Dec 16 00:00 postgresql-2012-12-16_000000.csv
-rw------- 1 postgres kenyon       0     Dec 16 00:00 postgresql-2012-12-16_000000.log
-rw------- 1 postgres kenyon   29713  Dec 17 21:07 postgresql-2012-12-17_000000.csv
-rw------- 1 postgres kenyon       0     Dec 17 00:00 postgresql-2012-12-17_000000.log
-rw------- 1 postgres kenyon     900    Dec 18 20:49 postgresql-2012-12-18_000000.csv
-rw------- 1 postgres kenyon       0     Dec 18 00:00 postgresql-2012-12-18_000000.log
-rw------- 1 postgres kenyon    4607   Dec 19 18:55 postgresql-2012-12-19_000000.csv
-rw------- 1 postgres kenyon       0     Dec 19 00:00 postgresql-2012-12-19_000000.log
-rw------- 1 postgres kenyon    1573   Dec 20 20:38 postgresql-2012-12-20_000000.csv
-rw------- 1 postgres kenyon       0     Dec 20 00:00 postgresql-2012-12-20_000000.log
-rw------- 1 postgres kenyon       0     Dec 21 00:00 postgresql-2012-12-21_000000.csv
-rw------- 1 postgres kenyon       0     Dec 21 00:00 postgresql-2012-12-21_000000.log


pg_xlog  
这个日志是记录的Postgresql的WAL信息,也就是一些事务日志信息(transaction log),默认单个大小是16M,源码安装的时候可以更改其大小。这些信息通常名字是类似'000000010000000000000013'这样的文件,这些日志会在  定时回滚恢复( PITR), 流复制( Replication Stream)以及归档时能被用到,这些日志是非常重要的,记录着数据库发生的各种事务信息,不得随意删除或者移动这类日志文件,不然你的数据库会有无法恢复的风险 

当你的归档或者流复制发生异常的时候,事务日志会不断地生成,有可能会造成你的磁盘空间被塞满,最终导致DB挂掉或者起不来。遇到这种情况不用慌,可以先关闭归档或者流复制功能,备份pg_xlog日志到其他地方,但请不要删除。然后删除较早时间的的pg_xlog,有一定空间后再试着启动Postgres。 

pg_clog 
pg_clog这个文件也是事务日志文件,但与pg_xlog不同的是它记录的是事务的元数据(metadata),这个日志告诉我们哪些事务完成了,哪些没有完成。这个日志文件一般非常小,但是重要性也是相当高,不得随意删除或者对其更改信息。

总结:
pg_log记录各种Error信息,以及服务器与DB的状态信息,可由用户随意更新删除
pg_xlog与pg_clog记录数据库的事务信息,不得随意删除更新,做物理备份时要记得备份着两个日志。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
3月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL的服务器日志文件
本文介绍了PostgreSQL数据库的物理存储结构,重点讨论了服务器日志文件。通过`pg_ctl`命令启动PostgreSQL实例时,使用`-l`参数指定日志文件位置,记录数据库启动、运行及关闭过程中的关键信息。附有相关视频讲解和日志文件示例。
154 0
|
10月前
|
存储 数据库
ALTER MATERIALIZED VIEW LOG :语句来更改现有物化视图日志的存储特征或类型。
`ALTER MATERIALIZED VIEW LOG` 语句用于修改已有的物化视图日志的存储属性或类型。配合示例中的动画图像(由于格式限制无法显示),该语句帮助优化数据库的性能和管理。
111 0
|
3月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL的WAL预写日志文件
PostgreSQL数据库的物理存储结构包含多种文件,其中WAL(预写日志)用于确保数据完整性和高效恢复。WAL机制允许在不频繁刷新数据至磁盘的情况下,通过先写日志再改数据的方式,减少I/O操作,提高性能。每个WAL文件默认大小为16MB,位于pg_wal目录下,支持手动和自动切换。WAL不仅有助于数据恢复,还能显著降低I/O成本。
143 4
|
3月前
|
存储 SQL 关系型数据库
【赵渝强老师】PostgreSQL的运行日志文件
PostgreSQL的物理存储结构包括数据文件、日志文件等。运行日志默认未开启,需配置`postgresql.conf`文件中的相关参数如`log_destination`、`log_directory`等,以记录数据库状态、错误信息等。示例配置中启用了CSV格式日志,便于管理和分析。通过创建表操作,可查看生成的日志文件,了解具体日志内容。
124 3
|
10月前
|
SQL 关系型数据库 数据库
实时计算 Flink版操作报错之使用SQL 将 PostgreSQL 的 date 类型字段转换为 TIMESTAMP 类型时遇到报错,该如何处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
8月前
|
SQL 存储 数据库
MySQL设计规约问题之如何处理日志类型的表
MySQL设计规约问题之如何处理日志类型的表
|
9月前
|
数据库 关系型数据库 MySQL
关系性数据库查询日志的类型
【6月更文挑战第1天】
65 6
TS定义布尔值,let flag:boolean = true,定义数字类型 let a1:number = 10,赋值 let str1:string = ‘‘,打印c~.log($(str1))
TS定义布尔值,let flag:boolean = true,定义数字类型 let a1:number = 10,赋值 let str1:string = ‘‘,打印c~.log($(str1))
|
10月前
|
SQL 关系型数据库 数据库
实时计算 Flink版产品使用合集之同步PostgreSQL数据时,WAL 日志无限增长,是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
10月前
|
关系型数据库 MySQL Linux
linux日志文件的位置与类型
Linux系统的日志文件通常位于`/var/log`目录,包括系统日志(如`messages`、`dmesg`、`kern.log`)、启动与关闭日志(`boot.log`、`wtmp`、`btmp`)、服务日志(`auth.log`、`mail.log`、`apache2/access.log`、`mysql/error.log`、`nginx/access.log`、`sshd.log`)和用户日志(`faillog`)。日志文件的具体位置可能因发行版和版本差异而异,可查看`rsyslog.conf`或`rsyslog.d/`配置文件进行定制。务必根据实际环境检查日志文件和配置以获取准确。
266 1

热门文章

最新文章