加载中
postgres预写式日志的内核实现详解-概述

在Postgres数据库中,不论对数据进行了什么样的更改,只要涉及到更改的数据的持久化的问题就一定离不开wal日志来为数据库的数据安全保驾护航。wal日志的重要性不言而喻。 下面几个博客讲解w...

2018/11/24 11:00
23
postgres预写式日志的内核实现详解-XLOG类型

导读: postgres预写式日志的内核实现详解-概述 XLOG(RM_XLOG_ID)日志类型记录很杂乱,如下为XLOG类型的wal子类型。 /* XLOG info values for XLOG rmgr */ #define XLOG_CHECKPOINT_SHUTDOW...

前天 17:20
7
PG wal日志解析工具功能增强并更名为WalMiner

XlogMiner是从PostgreSQL的WAL(write ahead logs)日志中解析出执行的SQL语句的工具,并能生成出对应的undo SQL语句。其开源项目地址为:https://github.com/HighgoSoftware/XLogMiner。 此版...

【PG内核】事务ID冷冻简述

数据库代码中事务ID的类型TransactionId定义为:typedef uint32 TransactionId。因此事务ID最大值为2^32-1=4294967295。 事务ID是需要循环使用的,为了做到这一点,数据库在做vacuum时将很老...

01/22 11:29
30
【PG内核】pg11秒级新增非空默认字段的实现方法

pg11新特性,可以瞬间向一个表中添加非空默认字段。 今天研究了一下这个特性的内核实现方式,写个博客简单记录一下。 结论奉上 pg在从硬盘或者内存获取到一条数据记录后(以下称tuple),会使...

01/21 09:22
15
postgres预写式日志的内核实现详解-heap2类型

导读: postgres预写式日志的内核实现详解-概述 heap2(RM_HEAP2_ID)是数据库对heap的修改产生的wal记录(heap除去),如下为heap2类型的wal子类型 #define XLOG_HEAP2_REWRITE 0x00 #define ...

01/16 17:38
9
postgres预写式日志的内核实现详解-wal记录读取

导读: postgres预写式日志的内核实现详解-概述 之前已经写了关于wal记录的结构、wal记录的写入的博客,流复制、PITR、数据库启动、逻辑复制等PG功能都需要借助wal日志,他们是怎样读取wal日...

2018/11/30 09:22
30
postgres预写式日志的内核实现详解-wal记录写入

导读: postgres预写式日志的内核实现详解-概述 如下就是将一个记录存储到wal日志文件的主要函数,本文主要是对这些函数进行逐一说明。 XLogBeginInsert(); XLogRegisterData(); XLogRegiste...

2018/11/29 13:45
311
postgres预写式日志的内核实现详解-wal结构

导读: postgres预写式日志的内核实现详解-概述 一、Wal文件的page结构 数据库运行时在数据目录下的pg_wal目录(pg10.0以上版本)下,产生wal日志文件段(如000000010000000000000003),每一...

2018/11/28 16:56
28
postgres预写式日志的内核实现详解-heap类型

导读: postgres预写式日志的内核实现详解-概述 heap(RM_HEAP_ID)是数据库对任何logged表进行insert、delete、update操作后所产生的日志类型,如下为heap类型的wal子类型。 #define XLOG_HEA...

2018/11/28 11:30
19
postgres的\d命令不显示全部的用户表

如下示例,在数据库不同schema下有同名表t2 ,但是使用\d命令的时候只有一个t2表被查询出来。 postgres=# select oid,nspname from pg_namespace; oid | nspname -------+-------------------...

2018/11/08 14:14
18
postgres 9.x版本postmaster被kill后用户子进程无法退出的问题

场景 在pg9.x数据库版本中,postmaster进程被kill之后,长连接用户会没有任何异样的在奔跑~~~ 如下示例: postgres=# select version(); version ......

2018/09/05 20:03
51
Postgres在一种极端数据分布情况下vacuum full的替代方式

前言 vacuum full是困扰PG DBA的一个重要问题。 本文章分析了一种特殊情况下,vacuum full的替代方案。 极端情况描述 创建测试数据 # 插入测试数据 postgres=# insert into t2 (i,j,k) sele...

2018/08/26 21:26
43
pg_lightool-postgres数据分布查看工具

一、前言 数据库在经过长时间的运行之后,有效数据不规则的分散在数据文件的各个地方。如何能得知每个page,每个segment到底存储了多少数据呢?作者DIY了这个功能'datadis'到pg_lightool工具...

2018/08/26 21:24
376
pg_lightool-postgres数据库基于wal日志的坏页修复

一、前言 当前postgres数据库可选的恢复工具(PITR,pg_rman)都需要一个基础备份。恢复原理就是以基础备份为base,通过重演wal日志使数据库达到一个用户满意 的状态。 如果没有基础备份,那么...

2018/08/21 15:33
1K
postgres服务器为每一个连接用户创建的cache

postgres连接用户的cache内核 前言 pg客户端通过libpq连接到服务器后,postmaster进程会为此客户端创建一个postgres进程,来处理此客户端发送来的各种请求。客户端发来的任何请求,都需要pos...

2018/08/14 23:49
334

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部