文档章节

PostgreSQL的日志类型

kenyon_君羊
 kenyon_君羊
发布于 2012/12/21 20:18
字数 1269
阅读 4705
收藏 14

刚开始学习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记录数据库的事务信息,不得随意删除更新,做物理备份时要记得备份着两个日志。

参考转译:
http://it.toolbox.com/blogs/database-soup/pg_log-pg_xlog-and-pg_clog-45611

© 著作权归作者所有

kenyon_君羊
粉丝 500
博文 172
码字总数 123979
作品 0
杭州
其他
私信 提问
postgresql数据库体系结构

postgresql数据库是由:连接管理系统(系统控制器)、编译执行系统、存储管理系统、事务系统、系统表 五大部分组成。 ①:连接管理系统:接收外部操作对系统的请求,对操作请求进行预处理和分...

一个笨小孩
2018/07/19
0
0
从代码层判断 pg_basebackup 是否已正常结束 - 暨改进建议

标签 PostgreSQL , pg_basebackup 背景 用户通常会使用pg_basebackup来对PostgreSQL实施在线备份,对于超级大的数据库实例,可能需要备份很久。 如果将任务分解来看,假设备份是任务流中的一...

德哥
2018/06/21
0
0
Postgres中的WAL(三)ControlFileData & CKPT

控制文件在数据库中非常的重要,里面会记录CKPT信息以及数据库的初始化信息。这篇文件主要分享一下控制文件,以及数据库崩溃的情况下如何如何通过控制文件和CKPT来回放WAL。 PG_VERSION:10....

RDBMS原理分析
2018/07/12
0
0
PostgreSQL 12 正式发布

PostgreSQL 12 已经发布,该版本在各方面都得到了加强,包括显著地提升查询性能,特别是对大数据集,总的空间利用率方面。 这个版本为应用程序开发人员提供了更多的功能,比如对 SQL/JSON 路...

afterer
2019/10/04
15.7K
66
postgresql的hot standby(replication stream)

PG在9.*版本后热备提供了新的一个功能,那就是Stream Replication的读写分离,是PG高可用性的一个典型应用,也就是我们传统意义上说的Hot-Standby,比如Oracle的DG,mssql的mirror以及Mysql的...

kenyon_君羊
2012/04/24
6K
15

没有更多内容

加载失败,请刷新页面

加载更多

IT小白们进击前端工程师的学习路线:编辑器,基础进阶学习要点,框架

一、HTML、CSS基础、JavaScript语法基础。学完基础后,可以仿照电商网站(例如京东、小米)做首页的布局。 二、JavaScript语法进阶。包括:作用域和闭包、this和对象原型等。相信我,JS语法,...

梦想编程
4分钟前
19
0
ZhaoWei-2020-01-19

Dubbo Dubbo是一个分布式服务治理框架,提供高性能和透明化的RPC远程服务调用方案及 SOA架构治理方案。 远程通信 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及 ...

SuSheePark
7分钟前
1
0
Python文件的常见标头格式是什么?

在有关Python编码准则的文档中,我遇到了以下Python源文件的头格式: #!/usr/bin/env python"""Foobar.py: Description of what foobar does."""__author__ = "Barack Obama"__cop......

javail
11分钟前
2
0
Linux 安装 jq

先下载jq安装包 https://stedolan.github.io/jq/download/将下载的安装包文件jq-linux64 拷贝到服务器下 wget -O jq https://github.com/stedolan/jq/releases/download/jq-1.6/jq-li......

乐易林谷
15分钟前
40
0
Elasticsearch深入:Refresh和Flush区别@

整体流程: 数据首先写入Buffer缓冲和Translog日志文件中。 当你写一条数据doc的时候,一方面写入到mem buffer缓冲中,一方面同时写入到translog日志文件中。 buffer满了或者每隔1秒(默认1秒...

HLee
19分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部