pg_controldata 内容解释

本文详细解析了PostgreSQL控制文件的各项字段,包括pg_controlversionnumber、Catalogversionnumber、Databasesystemidentifier等,涵盖了数据库状态、检查点信息、WAL日志位置、参数设置等内容,对理解PostgreSQL数据库的内部运作机制具有指导意义。
摘要由CSDN通过智能技术生成

作者:崔鹏

内容解释

pg_control version number: 是控制文件版本号。

Catalog version number: 是系统表版本号,格式是yyyymmddN。

Database system identifier: 数据库系统号 这个标识串是一个64bit的整数。

Database cluster state: 记录实例的状态。源码文件中看到数据库的几种状态:

starting up:表示数据库正在启动状态。

shut down: 数据库实例(非Standby)正常关闭后控制文件中就是此状态。

shut down in recovery:Standby实例正常关闭后控制文件中就是此状态。

shutting down:正常停库时,先做checkpoint,开始做checkpoint时,会把状态设置为此状态,做完后把状态设置为shut down。

in crash recovery:数据库实例非异常停止后,重新启动后,会先进行实例的恢复,在实例恢复时的状态就是此状态。

in archive recovery:Standby实例正常启动后,就是此状态。

in production:数据库实例正常启动后就是此状态。Standby数据库正常启动后不是此状态

pg_control last modified: 记录控制文件最后更新的时间

Latest checkpoint location: 数据库异常停止后再重新启动时,需要做实例恢复,实例恢复的过程是从WAL日志中,找到最后一次的checkpoint点,最后一次的checkpoint点的信息记录在Latest checkpont项中。

Latest checkpoint's REDO location: 记录数据库日志文件上检查点。

Latest checkpoint's REDO WAL file: 记录WAL日志名,目录下pg_wal可以查到文件。

Latest checkpoint's TimeLineID: 3 当前时间线

Latest checkpoint's PrevTimeLineID: 3

Latest checkpoint's full_page_writes: on 数据库参数

Latest checkpoint's NextXID: 0:1048576

Latest checkpoint's NextOID: 22051 下一个OID(OID,object 是pg内部使用,作为系统表的主键)

Latest checkpoint's NextMultiXactId: 65536  多事务ID

Latest checkpoint's NextMultiOffset: 0  多事务偏移量

Latest checkpoint's oldestXID: 480

Latest checkpoint's oldestXID's DB: 13593

Latest checkpoint's oldestActiveXID: 1048576

Latest checkpoint's oldestMultiXid: 1 旧多事务ID

Latest checkpoint's oldestMulti's DB: 16565

Latest checkpoint's oldestCommitTsXid: 0 最旧的事务号

Latest checkpoint's newestCommitTsXid: 0 最新的事务号

Time of latest checkpoint:  Mon 11 Oct 2021 01:46:24 PM CST 最后一次执行检查点时间

Fake LSN counter for unlogged rels: 0/3E8

Minimum recovery ending location: 0/0  这个值与Standby库应用WAL日志有关

Min recovery ending loc's timeline: 0

Backup start location: 0/0 记录了一个WAL日志的位置,用于主备库同步。

Backup end location: 0/0 记录了一个WAL日志的位置,用于主备库同步。

End-of-backup record required: no 记录了备库恢复过程中的一些中间状态。

wal_level setting: replica

wal_level (枚举类型) pg10版本中,待选的值为minimal、replica、logical。

minimal --不能通过基础备份和wal日志恢复数据库

replica = 9.6版本以前的archive和hot_standby  --该级别支持wal归档和复制。

logical --在replica级别的基础上添加了支持逻辑解码所需的信息。在开启归档的系统中,进行...

wal_log_hints setting: off

设置wal_log_hints这个参数使得能够记录特定提示位(hint-bit)的变化。

这个参数只能在服务器启动的时候被设置。默认值为off。

一些特定的工具会要求设置这个参数来正常的运行,所以将它设置为ON就好。

max_connections setting: 600

最大连接数

max_worker_processes setting: 8

max_wal_senders setting: 10

max_prepared_xacts setting: 0

max_locks_per_xact setting: 64

track_commit_timestamp setting: off

Maximum data alignment: 8

Database block size: 8192 数据块的大小

Blocks per segment of large relation: 131072

WAL block size: 16384 WAL日志块的大小

Bytes per WAL segment: 16777216 WAL日志文件的大小

Maximum length of identifiers:  64是指一些数据库对象名称的最大长度,如表名、索引名的最大长度,目前是64。

Maximum columns in an index:  32表示一个索引最多多少列,目前为32个。

Maximum size of a TOAST chunk:  1996是TOAST chunk的最大长度。TOAST是解决当列的内容太长,在一个数据块中存不下时的一种行外存储的方式。

Size of a large-object chunk: 2048 大对象的chunk的大小

Date/time type storage: 64-bit integers Date/time类型是用64bit的长整数表示。

Float4 argument passing: by value Float4类型的参数是传值还是传引用。

Float8 argument passing: by value Float8类型的参数是传值还是传引用。

Data page checksum version:  1 数据块checksum的版本,默认为0,数据块没有使用checksum,1是启用。

Mock authentication nonce:            8828beb6f158499535ed0f02f5788bdb104181b80f58e4c28ab6f4d87f849f5c

*禁止转载,可转发(转发文章请注明出处)

pg_controldata 内容解释

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值