[postgres@pgserver ~]$ /usr/local/pgsql/bin/pg_controldata
pg_control version number: 1002
Catalog version number: 201706241
Database system identifier: 6451527757181954780
Database cluster state: in production
pg_control last modified: Sun 25 Feb 2018 06:34:40 AM EST
Latest checkpoint location: 0/17EAE80
Prior checkpoint location: 0/17EA668
Latest checkpoint's REDO location: 0/17EAE48
Latest checkpoint's REDO WAL file: 000000010000000000000001
Latest checkpoint's TimeLineID: 1
Latest checkpoint's PrevTimeLineID: 1
Latest checkpoint's full_page_writes: on
Latest checkpoint's NextXID: 0:573
Latest checkpoint's NextOID: 49414
Latest checkpoint's NextMultiXactId: 1
Latest checkpoint's NextMultiOffset: 0
Latest checkpoint's oldestXID: 548
Latest checkpoint's oldestXID's DB: 1
Latest checkpoint's oldestActiveXID: 573
Latest checkpoint's oldestMultiXid: 1
Latest checkpoint's oldestMulti's DB: 1
Latest checkpoint's oldestCommitTsXid:0
Latest checkpoint's newestCommitTsXid:0
Time of latest checkpoint: Sun 25 Feb 2018 06:34:40 AM EST
Fake LSN counter for unlogged rels: 0/1
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_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
Float4 argument passing: by value
Float8 argument passing: by value
Data page checksum version: 0
Mock authentication nonce: f73c3ed9b7d2db98ff745ccaee4bfd88f53baa7a80a71866902ce6c5d77da062
[postgres@pgserver ~]$
pg_controldata命令是读取的pg_control里边的内容,
请用strace的跟踪:
[postgres@pgserver ~]$ strace /usr/local/pgsql/bin/pg_controldata
execve("/usr/local/pgsql/bin/pg_controldata", ["/usr/local/pgsql/bin/pg_controld"...], [/* 18 vars */]) = 0
brk(NULL) = 0x130e000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3b7b3a0000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/usr/local/pgsql/lib/tls/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/local/pgsql/lib/tls/x86_64", 0x7ffe8e4648b0) = -1 ENOENT (No such file or directory)
open("/usr/local/pgsql/lib/tls/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/local/pgsql/lib/tls", 0x7ffe8e4648b0) = -1 ENOENT (No such file or directory)
open("/usr/local/pgsql/lib/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/local/pgsql/lib/x86_64", 0x7ffe8e4648b0) = -1 ENOENT (No such file or directory)
open("/usr/local/pgsql/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/local/pgsql/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=22693, ...}) = 0
mmap(NULL, 22693, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f3b7b39a000
close(3) = 0
open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0m\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=144792, ...}) = 0
mmap(NULL, 2208904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f3b7af64000
mprotect(0x7f3b7af7b000, 2093056, PROT_NONE) = 0
mmap(0x7f3b7b17a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x7f3b7b17a000
mmap(0x7f3b7b17c000, 13448, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3b7b17c000
close(3) = 0
open("/usr/local/pgsql/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\35\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2127336, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3b7b399000
mmap(NULL, 3940800, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f3b7aba1000
mprotect(0x7f3b7ad59000, 2097152, PROT_NONE) = 0
mmap(0x7f3b7af59000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b8000) = 0x7f3b7af59000
mmap(0x7f3b7af5f000, 16832, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3b7af5f000
close(3) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3b7b397000
arch_prctl(ARCH_SET_FS, 0x7f3b7b397740) = 0
mprotect(0x7f3b7af59000, 16384, PROT_READ) = 0
mprotect(0x7f3b7b17a000, 4096, PROT_READ) = 0
mprotect(0x607000, 4096, PROT_READ) = 0
mprotect(0x7f3b7b3a1000, 4096, PROT_READ) = 0
munmap(0x7f3b7b39a000, 22693) = 0
set_tid_address(0x7f3b7b397a10) = 1165
set_robust_list(0x7f3b7b397a20, 24) = 0
rt_sigaction(SIGRTMIN, {0x7f3b7af6a7e0, [], SA_RESTORER|SA_SIGINFO, 0x7f3b7af735e0}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x7f3b7af6a870, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7f3b7af735e0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
brk(NULL) = 0x130e000
brk(0x132f000) = 0x132f000
brk(NULL) = 0x132f000
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=106070960, ...}) = 0
mmap(NULL, 106070960, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f3b74678000
close(3) = 0
getcwd("/home/postgres", 1024) = 15
stat("/usr/local/pgsql/bin/pg_controldata", {st_mode=S_IFREG|0755, st_size=42632, ...}) = 0
access("/usr/local/pgsql/bin/pg_controldata", R_OK) = 0
access("/usr/local/pgsql/bin/pg_controldata", X_OK) = 0
getcwd("/home/postgres", 1024) = 15
chdir("/usr/local/pgsql/bin") = 0
lstat("pg_controldata", {st_mode=S_IFREG|0755, st_size=42632, ...}) = 0
getcwd("/usr/local/pgsql/bin", 1024) = 21
chdir("/home/postgres") = 0
open("/usr/local/pgsql/data/global/pg_control", O_RDONLY) = 3 ------------------->>>>注意此处。
read(3, "\334*gAPn\210Y\352\3\0\0\1\313\5\f\6\0\0\0\0\0\0\0P\237\222Z\0\0\0\0"..., 296) = 296
close(3) = 0
open("/etc/localtime", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=3519, ...}) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=3519, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3b7b39f000
read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0"..., 4096) = 3519
lseek(3, -2252, SEEK_CUR) = 1267
read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\5\0\0\0\0"..., 4096) = 2252
close(3) = 0
munmap(0x7f3b7b39f000, 4096) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3519, ...}) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3b7b39f000
write(1, "pg_control version number: "..., 43pg_control version number: 1002
) = 43
write(1, "Catalog version number: "..., 48Catalog version number: 201706241
) = 48
write(1, "Database system identifier: "..., 58Database system identifier: 6451527757181954780
) = 58
write(1, "Database cluster state: "..., 52Database cluster state: in production
) = 52
write(1, "pg_control last modified: "..., 70pg_control last modified: Sun 25 Feb 2018 06:34:40 AM EST
) = 70
write(1, "Latest checkpoint location: "..., 48Latest checkpoint location: 0/17EAE80
) = 48
write(1, "Prior checkpoint location: "..., 48Prior checkpoint location: 0/17EA668
) = 48
write(1, "Latest checkpoint's REDO locatio"..., 48Latest checkpoint's REDO location: 0/17EAE48
) = 48
write(1, "Latest checkpoint's REDO WAL fil"..., 63Latest checkpoint's REDO WAL file: 000000010000000000000001
) = 63
write(1, "Latest checkpoint's TimeLineID: "..., 40Latest checkpoint's TimeLineID: 1
) = 40
write(1, "Latest checkpoint's PrevTimeLine"..., 40Latest checkpoint's PrevTimeLineID: 1
) = 40
write(1, "Latest checkpoint's full_page_wr"..., 41Latest checkpoint's full_page_writes: on
) = 41
write(1, "Latest checkpoint's NextXID: "..., 44Latest checkpoint's NextXID: 0:573
) = 44
write(1, "Latest checkpoint's NextOID: "..., 44Latest checkpoint's NextOID: 49414
) = 44
write(1, "Latest checkpoint's NextMultiXac"..., 40Latest checkpoint's NextMultiXactId: 1
) = 40
write(1, "Latest checkpoint's NextMultiOff"..., 40Latest checkpoint's NextMultiOffset: 0
) = 40
write(1, "Latest checkpoint's oldestXID: "..., 42Latest checkpoint's oldestXID: 548
) = 42
write(1, "Latest checkpoint's oldestXID's "..., 40Latest checkpoint's oldestXID's DB: 1
) = 40
write(1, "Latest checkpoint's oldestActive"..., 42Latest checkpoint's oldestActiveXID: 573
) = 42
write(1, "Latest checkpoint's oldestMultiX"..., 40Latest checkpoint's oldestMultiXid: 1
) = 40
write(1, "Latest checkpoint's oldestMulti'"..., 40Latest checkpoint's oldestMulti's DB: 1
) = 40
write(1, "Latest checkpoint's oldestCommit"..., 40Latest checkpoint's oldestCommitTsXid:0
) = 40
write(1, "Latest checkpoint's newestCommit"..., 40Latest checkpoint's newestCommitTsXid:0
) = 40
write(1, "Time of latest checkpoint: "..., 70Time of latest checkpoint: Sun 25 Feb 2018 06:34:40 AM EST
) = 70
write(1, "Fake LSN counter for unlogged re"..., 42Fake LSN counter for unlogged rels: 0/1
) = 42
write(1, "Minimum recovery ending location"..., 42Minimum recovery ending location: 0/0
) = 42
write(1, "Min recovery ending loc's timeli"..., 40Min recovery ending loc's timeline: 0
) = 40
write(1, "Backup start location: "..., 42Backup start location: 0/0
) = 42
write(1, "Backup end location: "..., 42Backup end location: 0/0
) = 42
write(1, "End-of-backup record required: "..., 41End-of-backup record required: no
) = 41
write(1, "wal_level setting: "..., 46wal_level setting: replica
) = 46
write(1, "wal_log_hints setting: "..., 42wal_log_hints setting: off
) = 42
write(1, "max_connections setting: "..., 42max_connections setting: 100
) = 42
write(1, "max_worker_processes setting: "..., 40max_worker_processes setting: 8
) = 40
write(1, "max_prepared_xacts setting: "..., 40max_prepared_xacts setting: 0
) = 40
write(1, "max_locks_per_xact setting: "..., 41max_locks_per_xact setting: 64
) = 41
write(1, "track_commit_timestamp setting: "..., 42track_commit_timestamp setting: off
) = 42
write(1, "Maximum data alignment: "..., 40Maximum data alignment: 8
) = 40
write(1, "Database block size: "..., 43Database block size: 8192
) = 43
write(1, "Blocks per segment of large rela"..., 45Blocks per segment of large relation: 131072
) = 45
write(1, "WAL block size: "..., 43WAL block size: 8192
) = 43
write(1, "Bytes per WAL segment: "..., 47Bytes per WAL segment: 16777216
) = 47
write(1, "Maximum length of identifiers: "..., 41Maximum length of identifiers: 64
) = 41
write(1, "Maximum columns in an index: "..., 41Maximum columns in an index: 32
) = 41
write(1, "Maximum size of a TOAST chunk: "..., 43Maximum size of a TOAST chunk: 1996
) = 43
write(1, "Size of a large-object chunk: "..., 43Size of a large-object chunk: 2048
) = 43
write(1, "Date/time type storage: "..., 54Date/time type storage: 64-bit integers
) = 54
write(1, "Float4 argument passing: "..., 47Float4 argument passing: by value
) = 47
write(1, "Float8 argument passing: "..., 47Float8 argument passing: by value
) = 47
write(1, "Data page checksum version: "..., 40Data page checksum version: 0
) = 40
write(1, "Mock authentication nonce: "..., 103Mock authentication nonce: f73c3ed9b7d2db98ff745ccaee4bfd88f53baa7a80a71866902ce6c5d77da062
) = 103
exit_group(0) = ?
+++ exited with 0 +++
[postgres@pgserver ~]$