ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
       pg\_controldata用于显示一个PostgreSQL数据库集簇的控制信息。可以打印在`initdb`期间初始化的信息,例如目录版本。它也显示关于预写式日志和检查点处理的信息。这种信息是集簇范围的,并且不针对任何一个数据库。        这个工具只能由初始化集簇的用户运行,因为它要求对数据目录的读访问。你可以在命令行中指定数据目录,或者使用环境变量`PGDATA`。如果没有指定数据目录(DATADIR), 将使用环境变量`PGDATA`。 **命令格式:** pg_controldata [OPTION] [DATADIR] > **option:** > * **[-D, --pgdata=]DATADIR** :指定数据目录,或者使用环境变量`PGDATA` > * **-V, --version**:打印pg\_controldata版本并退出 > * **-?, --help**:显示命令行参数的帮助信息并退出 ``` [postgres@izwz91quxhnlkan8kjak5hz bin]$ pg_controldata pg_control version number: 1300 // pg_control版本 Catalog version number: 202007201 // 系统表的版本号 Database system identifier: 6939478009092009017 // 数据库系统标识,这个标识串是一个64bit的整数,其中包含了创建数据库时的时间戳及initdb时初使化的进程号 Database cluster state: in production // 数据库簇状态,实例的状态是用一个枚举类型来表示的,具体见pg\_control.h pg_control last modified: 2021年05月23日 星期日 22时03分09秒 // pg_control 最后修改 Latest checkpoint location: 0/5FC75268 // 最新检查点位置 Latest checkpoint's REDO location: 0/5FC75230 // 最新检查点的 REDO 位置 Latest checkpoint's REDO WAL file: 00000001000000000000005F // 最新检查点的重做WAL文件 Latest checkpoint's TimeLineID: 1 // 最新检查点的 TimeLineID Latest checkpoint's PrevTimeLineID: 1 // 最新检查点的PrevTimeLineID Latest checkpoint's full_page_writes: on // 最新检查点的full\_page\_writes Latest checkpoint's NextXID: 0:4621 // 最新检查点的NextXID Latest checkpoint's NextOID: 24757 // 最新检查点的 NextOID Latest checkpoint's NextMultiXactId: 1 // 最新检查点的 NextMultiXactId Latest checkpoint's NextMultiOffset: 0 // 最新检查点的 NextMultiOffset Latest checkpoint's oldestXID: 478 // 最新检查点的 oldestXID Latest checkpoint's oldestXID's DB: 1 // 最新检查点的oldestXID所在的数据库 Latest checkpoint's oldestActiveXID: 4621 // 最新检查点的 oldestActiveXID Latest checkpoint's oldestMultiXid: 1 // 最新检查点的 oldestMultiXid Latest checkpoint's oldestMulti's DB: 1 // 最新检查点的oldestMulti所在的数据库 Latest checkpoint's oldestCommitTsXid:0 // 最新检查点的 oldestCommitTsXid Latest checkpoint's newestCommitTsXid:0 // 最新检查点的 newestCommitTsXid Time of latest checkpoint: 2021年05月23日 星期日22时03分09秒 // 最新检查点的时间 Fake LSN counter for unlogged rels: 0/3E8 // 未标记REL的伪LSN计数器 Minimum recovery ending location: 0/0 // 最小恢复结束位置 Min recovery ending loc's timeline: 0 // 最小恢复结束位置时间表 Backup start location: 0/0 // 开始进行备份的点位置 Backup end location: 0/0 // 备份的最终位置 End-of-backup record required: no // 需要备份结束记录 wal_level setting: replica // wal_level设置 wal_log_hints setting: off // wal_log_hints设置 max_connections setting: 100 // 最大连接数设置 max_worker_processes setting: 8 // 设置系统能够支持的后台进程的最大数量。这个参数只能在服务器启动时设置。 默认值为 8。 max_wal_senders setting: 10 // 同时运行 WAL 发送进程 的最大数 max_prepared_xacts setting: 0 max_locks_per_xact setting: 64 track_commit_timestamp setting: off // 记录事务的提交时间。这个参数只能在postgresql.conf文件中或在服务器命令行上设置。默认值是off Maximum data alignment: 8 // 最大数据校准 Database block size: 8192 // 数据库块大小 Blocks per segment of large relation: 131072 // 每段大关系的块 WAL block size: 8192 // WAL的块大小 Bytes per WAL segment: 16777216 // 每一个 WAL 段字节数 Maximum length of identifiers: 64 // 标识符的最大长度 Maximum columns in an index: 32 // 在索引中可允许使用最大的列数 Maximum size of a TOAST chunk: 1996 // TOAST区块的最大长度 Size of a large-object chunk: 2048 // 大对象区块的大小 Date/time type storage: 64-bit integers // 日期/时间 类型存储 Float8 argument passing: by value // 正在传递Flloat8类型的参数 Data page checksum version: 0 // 数据页校验和版本 Mock authentication nonce: c6310f6e38fc3558c95fa1913be554a864fc22152adfc44d9471dd9d7ef6128e // 当前身份验证 ``` **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数据库正常启动后不是此状态,而是“in archive recovery **wal_level解析:**        wal_level 决定多少信息写入到 WAL 中。默认值是`replica`。这个参数只能在服务器启动时设置。最小的wal_level不会包括足够的信息来从基础备份和 WAL 日志中重建数据,因此,要启用 WAL 归档(archive_mode)和流复制,必须使用`replica`或更高级别 * minimal:只写入从崩溃或立即关机中恢复的所需信息。在`minimal`级别中,对于创建或重写永久关系的事务的其余部分,不会记录任何信息。 这可以提升命令执行速度。 * replica:增加 wal 归档信息同时包括只读服务器需要的信息。(9.6 中新增,将之前版本的 archive 和 hot\_standby合并) * ~~archive~~:是增加wal归档所需的日志(9.6之前的版本)。 * ~~hot_standby~~:是在备用服务器上增加了运行只读查询所需的信息,一般实在流复制的时候使用到(9.6之前的版本)。 * logical:会增加支持逻辑解码所需的信息。在`logical`层,与`replica`相同的信息会被记录,外加上 允许从 WAL 抽取逻辑修改集所需的信息。使用级别`logical`将增加 WAL 容量,特别是如果为了`REPLICA IDENTITY FULL`配置了很多表并且执行了很多UPDATE和DELETE语句时。 **wal_log_hints:**        设置wal\_log\_hints这个参数使得能够记录特定提示位(hint-bit)的变化。这个参数只能在服务器启动的时候被设置        当这个参数设置为ON时,PostgreSQL数据库服务器在一个检查点之后第一次页面更改过程(即使是对提示位进行非关键性的修改)中,将每个磁盘页的全部内容写入到WAL中。即全页写(full page writes) **max_wal_senders:**        指定来自后备服务器或流式基础备份客户端的并发连接的最大数量(即同时运行 WAL 发送进程 的最大数)。默认值是10,0值意味着禁用复制。WAL 发送进程被计算在连接总数内,因此该参数 不能被设置为高于`max_connections`的值。这个参数只能在服务器启动时被设置。`wal_level`必须设置为`archive`或更高级别以允许来自后备服 务器的连接。