PostgreSQL自带的命令行工具22- pg_controldata
基础信息
OS版本:Red Hat Enterprise Linux Server release 7.9 (Maipo)
DB版本:16.2
pg软件目录:/home/pg16/soft
pg数据目录:/home/pg16/data
端口:5777
pg_controldata
是 PostgreSQL 提供的一个实用工具,用于显示 PostgreSQL 数据库集群的控制信息。这个实用程序可以让你查看一些关键的系统信息,而不必启动数据库服务器。这些信息对于故障排除、监控和理解 PostgreSQL 数据库的内部运行机制非常有价值。
通过help查看帮助文档。
[pg16@test ~]$ pg_controldata --help
pg_controldata displays control information of a PostgreSQL database cluster.Usage:pg_controldata [OPTION] [DATADIR]Options:[-D, --pgdata=]DATADIR data directory-V, --version output version information, then exit-?, --help show this help, then exitIf no data directory (DATADIR) is specified, the environment variable PGDATA
is used.Report bugs to <pgsql-bugs@lists.postgresql.org>.
PostgreSQL home page: <https://www.postgresql.org/>
使用 pg_controldata
要使用 pg_controldata
,只需要在命令行中指定你的 PostgreSQL 数据目录。数据目录是在初始化数据库集群时 (initdb
) 指定的目录,它包含了所有的数据库文件、事务日志以及其他重要的系统文件。
命令格式如下:
pg_controldata [选项] 数据目录
如果没有指定任何选项和数据目录,pg_controldata
将尝试使用环境变量 PGDATA
。
示例
PostgreSQL 数据目录位于 /home/pg16/data/
,运行以下命令:
[pg16@test ~]$ pg_controldata -D /home/pg16/data/
pg_control version number: 1300
Catalog version number: 202307071
Database system identifier: 7355755036767920482
Database cluster state: in production
pg_control last modified: Sun 12 May 2024 07:32:38 AM PDT
Latest checkpoint location: 0/6F000028
Latest checkpoint's REDO location: 0/6F000028
Latest checkpoint's REDO WAL file: 00000001000000000000006F
Latest checkpoint's TimeLineID: 1
Latest checkpoint's PrevTimeLineID: 1
Latest checkpoint's full_page_writes: on
Latest checkpoint's NextXID: 0:268784
Latest checkpoint's NextOID: 17008
Latest checkpoint's NextMultiXactId: 1
Latest checkpoint's NextMultiOffset: 0
Latest checkpoint's oldestXID: 722
Latest checkpoint's oldestXID's DB: 4
Latest checkpoint's oldestActiveXID: 0
Latest checkpoint's oldestMultiXid: 1
Latest checkpoint's oldestMulti's DB: 16535
Latest checkpoint's oldestCommitTsXid:0
Latest checkpoint's newestCommitTsXid:0
Time of latest checkpoint: Sat 11 May 2024 07:31:17 AM PDT
Fake LSN counter for unlogged rels: 0/3E8
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_log_hints setting: off
max_connections setting: 100
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: 8192
Bytes per WAL segment: 16777216
Maximum length of identifiers: 64
Maximum columns in an index: 32
Maximum size of a TOAST chunk: 1996
Size of a large-object chunk: 2048
Date/time type storage: 64-bit integers
Float8 argument passing: by value
Data page checksum version: 1
Mock authentication nonce: cd0bbc02ebd6164eb7f1a9fce1c0b244c8139fa55343101e301b395c35fa9db0
这会输出一系列的信息,包括但不限于:
pg_control
的版本号- 目录路径
- 数据库系统标识符
- 数据库集群的状态(例如,是否处于清理状态)
- 上次检查点的时间
- WAL 日志信息
- 最小和最大的可用 WAL 日志文件号
- 时间线号
注意事项
pg_controldata
产生的信息主要面向那些熟悉 PostgreSQL 内部工作原理的人。对于普通用户,可能需要一些背景知识才能理解这些输出信息。- 该工具可以在没有启动 PostgreSQL 数据库服务的情况下运行,这使其成为故障排除和分析数据库状态的一个宝贵工具,特别是在数据库无法正常启动的情况下。
- 请确保在以 PostgreSQL 运行用户的身份(通常是
postgres
用户)运行pg_controldata
,以免出现权限问题。
pg_controldata
提供一个简单而强大的方式,用来检查 PostgreSQL 数据库集群的低层次控制信息,有助于深入理解和维护数据库。
谨记:心存敬畏,行有所止。