PostgreSQL中的一些日志

1.Write Ahead Log(WAL日志)
预写日志(WAL)是保证数据完整性的标准方法。在有关交易处理的大多数(如果不是全部)书籍中都可以找到详细说明。 简而言之,WAL的核心概念是,只有在记录了对这些更改之后,即在描述更改的日志记录已刷新到永久存储之后,才写入对数据文件(表和索引所在的位置)的更改。如果我们遵循此过程,我们不需要在每次事务提交时将数据页刷新到磁盘,因为我们知道如果发生崩溃,我们将能够使用日志恢复数据库:任何尚未应用的更改,可以从日志记录中重做数据页面。(这是前滚恢复,也称为REDO)

WAL还可以支持在线备份和基于时间点恢复。 通过归档WAL数据,我们可以支持恢复到可用WAL数据覆盖的任何时刻:我们只需安装数据库的先前物理备份,并将WAL日志重播到所需的时间。 更重要的是,物理备份不必是数据库状态的瞬时快照 - 如果它是在一段时间内完成的,那么重播该期间的WAL日志将解决任何内部不一致问题。

位于目录pg_wal中。单个文件大小由wal-segsize控制。默认是16mb。

WAL日志,相当于Oracle的在线重做日志。

主要的相关参数:

wal_level
max_wal_size
min_wal_size

  

2.WAL的归档日志
主要的相关参数:

archive_mode
archive_command

  

3.事务状态日志
pg_xact
pg_xact这个目录下的文件也是事务日志文件,但与pg_wal不同的是它记录的是事务的元数据(metadata),这些日志提供了事务提交状态信息。这个日志文件一般非常小,不得随意删除或者对其更改信息。

4.pg_log
server log一般是记录服务器与DB的状态,比如各种Error信息,定位慢查询SQL,数据库的启动关闭信息,发生checkpoint过于频繁等的告警信息。当数据库出问题时,首先就要查看这个日志

主要的相关参数:

log_destination
logging_collector
log_directory
log_filename
log_rotation_age
log_rotation_size

  

原文地址:https://www.cnblogs.com/abclife/p/11441730.html

时间: 2024-10-18 09:40:58

PostgreSQL中的一些日志的相关文章

postgresql如何维护WAL日志/归档日志

WAL日志介绍 wal全称是write ahead log,是postgresql中的online redo log,是为了保证数据库中数据的一致性和事务的完整性.而在PostgreSQL 7中引入的技术.它的中心思想是"先写日志后写数据",即要保证对数据库文件的修改应放生在这些修改已经写入到日志之后,同时,在PostgreSQL 8.3以后又加入了WalWriter日志写进程,可以保证事务提交记录不是在提交时同步写入到磁盘,而是异步写入,这样就极大的减轻了I/O的压力.所以说WAL日

PostgreSQL 中定义自己需要的数据类型

PostgreSQL解决某系数据库中的tinyint数据类型问题,创建自己需要的数据类型如下: CREATE DOMAIN tinyint AS smallint CONSTRAINT tinyint_check CHECK (VALUE >= 0 AND VALUE <= 255); ALTER DOMAIN tinyint OWNER TO postgres; COMMENT ON DOMAIN tinyint IS 'tinyint type between 0 and 255'; po

实战:mysql检查物理磁盘中的二进制日志文件是否有丢失

场景:有时候因为磁盘损坏或人为原因错误删除了磁盘中的二进制文件,导致mysql中的show binary logs记录和实际的物理磁盘中的二进制文件不匹配 #binlogdiff.sh #!/bin/sh #[email protected] #作用:mysql中show binary logs记录的二进制日志文件和实际的物理文件比较,检查 #磁盘中对应的二进制日志文件是否有丢失 source /usr/local/mysql/scripts/mysql_env.ini binlog_init=

【翻译自mos文章】Oracle db 12c中,每次日志切换时,会改变alert_sid.log的权限

12c中,每次日志切换时,会改变alert_sid.log的权限 来源于: Alert log file's permissions Change with every log switch in 12c (Doc ID 1637367.1) 适用于: Oracle Database - Enterprise Edition - Version 12.1.0.1 and later Information in this document applies to any platform. 症状:

SQL Server中的事务日志管理(9/9):监控事务日志

当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会告诉你每个DBA应该知道的具体细节. 对于在我们关注下的所有数据库,在日志维护方面,我们的首要目标是最优化写性能,为了支持SQL Server写入日志的所有活动,包括数据修改,数据读取,索引维护等等.但是,留意下可能的日志碎片也是重要的,如前面文章介绍的,它会影响需要读取日志的过程性能,例如日志备份

postgresql中to_char和round的混合使用

在postgresql中大家都用过round吧,当遇到小数的时候该如何显示呢?看例子 SELECT to_char(round(127 * 0.1 / 67543,6)*10000,'90.99') 1.88 SELECT to_char(round(127 * 0.1 / 67543,6)*10000,'90.00') 1.88 SELECT to_char(round(150 * 0.1 / 50000,6)*1000,'90.09') 0.30 SELECT to_char(round(1

golang自己定义数据类型查询与插入postgresql中point数据

golang自己定义数据类型查询与插入postgresql中point数据 详细代码例如以下: package main import ( "bytes" "database/sql" "database/sql/driver" "fmt" _ "github.com/lib/pq" "strconv" "strings" ) // 自己定义支持类型 type Poi

在Postgresql中添加新角色(Role)

Postgresql安装完成之后,默认会创建名为postgres的用户.角色(Role)和数据库(Database).而使用你自己原有的用户运行psql时会提示错误. [email protected]:~$ psql psql: FATAL: role "bob" does not exist 如果想要使用自己的用户"bob"来运行psql,就需要在Postgresql中添加名为"bob"的角色(Role). [email protected]

基于pstore 和 ramoops实现在非易失性内存中保存panic日志

基于pstore和 ramoops实现在非易失性内存中保存panic日志 具体步骤如下 0.确定地址范围 需求提前知道用来保存panic日志的非易失性内存的起始地址和长度.比如笔者用到的那部分内存的起始地址是0x11ff000000,长度是16M. 2.修改内核 保证内核配置选项中选上了ramoops驱动支持: 生成驱动加载过程中,如果发现对独立的非易失性存储加载驱动失败,检查是否需要修改内核驱动,特别是fs/pstore/ram_core.c中的request_mem_region()函数,然