合 PG查看版本的几种方法
Tags: PGpg_configpg_controldata查看版本
查看PG版本的几种方法
SQL查询
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | [pg13@lhrpg ~]$ psql psql (13.3) Type "help" for help. postgres=# show server_version; server_version ---------------- 13.3 (1 row) postgres=# select version(); version --------------------------------------------------------------------------------------------------------- PostgreSQL 13.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit (1 row) C:\Users\lhrxxt>psql -U postgres -h192.168.66.35 -p15433 Password for user postgres: psql (13.3) Type "help" for help. postgres=# exit C:\Users\lhrxxt>psql -U postgres -h192.168.66.35 -p54325 Password for user postgres: psql (13.3, server 12.2 (Debian 12.2-2.pgdg100+1)) Type "help" for help. postgres=# show server_version; server_version -------------------------------- 12.2 (Debian 12.2-2.pgdg100+1) (1 row) |
“psql (13.3, server 12.2 (Debian 12.2-2.pgdg100+1))”说明psql的版本为13.3,而数据库服务器的版本为PG 12.2。
“psql (13.3)”说明psql和数据库的版本都是13.3。
pg_config
可以使用pg_config | grep VERSION
或pg_config --version
来查看:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | [pg13@lhrpg ~]$ pg_config --version PostgreSQL 13.3 [pg13@lhrpg ~]$ pg_config | grep VERSION VERSION = PostgreSQL 13.3 [pg13@lhrpg ~]$ pg_config BINDIR = /pg13/pg13/bin DOCDIR = /pg13/pg13/share/doc/postgresql HTMLDIR = /pg13/pg13/share/doc/postgresql INCLUDEDIR = /pg13/pg13/include PKGINCLUDEDIR = /pg13/pg13/include/postgresql INCLUDEDIR-SERVER = /pg13/pg13/include/postgresql/server LIBDIR = /pg13/pg13/lib PKGLIBDIR = /pg13/pg13/lib/postgresql LOCALEDIR = /pg13/pg13/share/locale MANDIR = /pg13/pg13/share/man SHAREDIR = /pg13/pg13/share/postgresql SYSCONFDIR = /pg13/pg13/etc/postgresql PGXS = /pg13/pg13/lib/postgresql/pgxs/src/makefiles/pgxs.mk CONFIGURE = '--prefix=/pg13/pg13' CC = gcc -std=gnu99 CPPFLAGS = -D_GNU_SOURCE CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 CFLAGS_SL = -fPIC LDFLAGS = -Wl,--as-needed -Wl,-rpath,'/pg13/pg13/lib',--enable-new-dtags LDFLAGS_EX = LDFLAGS_SL = LIBS = -lpgcommon -lpgport -lpthread -lz -lreadline -lrt -ldl -lm VERSION = PostgreSQL 13.3 [pg13@lhrpg ~]$ pg_config --help pg_config provides information about the installed version of PostgreSQL. Usage: pg_config [OPTION]... Options: --bindir show location of user executables --docdir show location of documentation files --htmldir show location of HTML documentation files --includedir show location of C header files of the client interfaces --pkgincludedir show location of other C header files --includedir-server show location of C header files for the server --libdir show location of object code libraries --pkglibdir show location of dynamically loadable modules --localedir show location of locale support files --mandir show location of manual pages --sharedir show location of architecture-independent support files --sysconfdir show location of system-wide configuration files --pgxs show location of extension makefile --configure show options given to "configure" script when PostgreSQL was built --cc show CC value used when PostgreSQL was built --cppflags show CPPFLAGS value used when PostgreSQL was built --cflags show CFLAGS value used when PostgreSQL was built --cflags_sl show CFLAGS_SL value used when PostgreSQL was built --ldflags show LDFLAGS value used when PostgreSQL was built --ldflags_ex show LDFLAGS_EX value used when PostgreSQL was built --ldflags_sl show LDFLAGS_SL value used when PostgreSQL was built --libs show LIBS value used when PostgreSQL was built --version show the PostgreSQL version -?, --help show this help, then exit With no arguments, all known items are shown. Report bugs to <pgsql-bugs@lists.postgresql.org>. PostgreSQL home page: <https://www.postgresql.org/> |
pg_controldata
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | [pg13@lhrpg ~]$ pg_controldata --version pg_controldata (PostgreSQL) 13.3 [pg13@lhrpg ~]$ 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 exit If 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/> |
查看告警日志
看log_directory数据库配置参数指向的目录,看该目录中的运行日志是否打印有"LOG: starting PostgreSQL XX.Y"的版本信息(XX和Y均为阿拉伯数字)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | postgres=# show log_directory; log_directory --------------- pg_log (1 row) postgres=# exit [pg13@lhrpg ~]$ cd /pg13/ archive/ backup/ pg13/ pgdata/ scripts/ soft/ [pg13@lhrpg ~]$ cd /pg13/pgdata/pg_log [pg13@lhrpg pg_log]$ ll total 16 -rw------- 1 pg13 postgres 0 Sep 24 00:00 postgresql-Fri.log -rw------- 1 pg13 postgres 0 Sep 27 00:00 postgresql-Mon.log -rw------- 1 pg13 postgres 0 Sep 18 00:00 postgresql-Sat.log -rw------- 1 pg13 postgres 1423 Sep 26 19:40 postgresql-Sun.log -rw------- 1 pg13 postgres 10671 Sep 23 18:03 postgresql-Thu.log -rw------- 1 pg13 postgres 0 Sep 21 00:00 postgresql-Tue.log -rw------- 1 pg13 postgres 0 Sep 22 00:00 postgresql-Wed.log [pg13@lhrpg pg_log]$ more postgresql-Thu.log | grep "LOG: starting PostgreSQL" 2021-09-23 15:51:20.484 CST [1271656] LOG: starting PostgreSQL 13.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit |
postgres
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | [pg13@lhrpg ~]$ postgres -V postgres (PostgreSQL) 13.3 [pg13@lhrpg ~]$ which postgres /pg13/pg13/bin/postgres [pg13@lhrpg ~]$ postgres --help postgres is the PostgreSQL server. Usage: postgres [OPTION]... Options: -B NBUFFERS number of shared buffers -c NAME=VALUE set run-time parameter -C NAME print value of run-time parameter, then exit -d 1-5 debugging level -D DATADIR database directory -e use European date input format (DMY) -F turn fsync off -h HOSTNAME host name or IP address to listen on -i enable TCP/IP connections -k DIRECTORY Unix-domain socket location -N MAX-CONNECT maximum number of allowed connections -o OPTIONS pass "OPTIONS" to each server process (obsolete) -p PORT port number to listen on -s show statistics after each query -S WORK-MEM set amount of memory for sorts (in kB) -V, --version output version information, then exit --NAME=VALUE set run-time parameter --describe-config describe configuration parameters, then exit -?, --help show this help, then exit Developer options: -f s|i|n|m|h forbid use of some plan types -n do not reinitialize shared memory after abnormal exit -O allow system table structure changes -P disable system indexes -t pa|pl|ex show timings after each query -T send SIGSTOP to all backend processes if one dies -W NUM wait NUM seconds to allow attach from a debugger Options for single-user mode: --single selects single-user mode (must be first argument) DBNAME database name (defaults to user name) -d 0-5 override debugging level -E echo statement before execution -j do not use newline as interactive query delimiter -r FILENAME send stdout and stderr to given file Options for bootstrapping mode: --boot selects bootstrapping mode (must be first argument) DBNAME database name (mandatory argument in bootstrapping mode) -r FILENAME send stdout and stderr to given file -x NUM internal use Please read the documentation for the complete list of run-time configuration settings and how to set them on the command line or in the configuration file. Report bugs to <pgsql-bugs@lists.postgresql.org>. PostgreSQL home page: <https://www.postgresql.org/> |
pg_config命令详解
pg_config — 获取已安装的PostgreSQL的信息
大纲
pg_config
[option
...]
描述
pg_config工具打印当前安装版本的PostgreSQL的配置参数。它的设计目的之一是便于想与PostgreSQL交互的软件包能够找到所需的头文件和库。
选项
要使用pg_config,提供一个或多个下列选项:
--bindir
打印用户可执行文件的位置。例如使用这个选项来寻找
psql
程序。这通常也是pg_config
程序所在的位置。--docdir
打印文档文件的位置。
--htmldir
打印 HTML 文档文件的位置。
--includedir
打印客户端接口的 C 头文件的位置。
--pkgincludedir
打印其它 C 头文件的位置。
--includedir-server
打印用于服务器编程的 C 头文件的位置。
--libdir
打印对象代码库的位置。
--pkglibdir
打印动态可载入模块的位置,或者服务器可能搜索它们的位置(其它架构独立数据文件可能也被安装在这个目录)。
--localedir
打印区域支持文件的位置(如果在PostgreSQL被编译时没有配置区域支持,这将是一个空字符串)。
--mandir
打印手册页的位置。
--sharedir
打印架构独立支持文件的位置。
--sysconfdir
打印系统范围配置文件的位置。
--pgxs
打印扩展 makefile 的位置。
--configure
打印当PostgreSQL被配置编译时给予
configure
脚本的选项。这可以被用来重新得到相同的配置,或者找出是哪个选项编译了一个二进制包(不过注意二进制包通常包含厂商相关的自定补丁)。参见下面的例子。--cc
打印用来编译PostgreSQL的
CC
变量值。这显示被使用的 C 编译器。--cppflags
打印用来编译PostgreSQL的
CPPFLAGS
变量值。这显示在预处理时需要的 C 编译器开关(典型的是-I
开关)。--cflags
打印用来编译PostgreSQL的
CFLAGS
变量值。这显示被使用的 C 编译器开关。--cflags_sl
打印用来编译PostgreSQL的
CFLAGS_SL
变量值。这显示被用来编译共享库的额外 C 编译器开关。--ldflags
打印用来编译PostgreSQL的
LDFLAGS
变量值。这显示链接器开关。--ldflags_ex
打印用来编译PostgreSQL的
LDFLAGS_EX
变量值。这只显示被用来编译可执行程序的链接器开关。--ldflags_sl
打印用来编译PostgreSQL的
LDFLAGS_SL
变量值。这只显示被用来编译共享库的链接器开关。--libs
打印用来编译PostgreSQL的
LIBS
变量值。这通常包含用于链接到PostgreSQL中的外部库的-l
开关。--version
打印PostgreSQL的版本。
-?
--help
显示有关pg_config命令行参数的帮助并退出。
如果给定多于一个选项,将按照相同的顺序打印信息,每行一项。如果没有给定选项,将打印所有可用信息,并带有标签。
注解
选项--docdir
、--pkgincludedir
、 --localedir
、--mandir
、 --sharedir
、--sysconfdir
、 --cc
、--cppflags
、 --cflags
、--cflags_sl
、 --ldflags
、--ldflags_sl
和--libs
在PostgreSQL 8.1 被加入。选项--htmldir
在PostgreSQL 8.4 被加入。选项--ldflags_ex
在PostgreSQL 9.0 被加入。
例子
要重建当前 PostgreSQL 安装的编译配置,可运行下列命令:
1 | eval ./configure `pg_config --configure` |
pg_config --configure
的输出包含 shell 引号,这样带空格的参数可以被正确地表示。因此,为了得到正确的结果需要使用eval
。
pg_controldata命令详解
pg_controldata — 显示一个PostgreSQL数据库集簇的控制信息
大纲
pg_controldata
[option
] [[ --pgdata
| -D
] datadir
]
描述
pg_controldata
打印在initdb
期间初始化的信息,例如目录版本。它也显示关于预写式日志和检查点处理的信息。这种信息是集簇范围的,并且不针对任何一个数据库。
这个工具只能由初始化集簇的用户运行,因为它要求对数据目录的读访问。你可以在命令行中指定数据目录,或者使用环境变量PGDATA
。这个工具支持选项-V
和--version
,它们打印pg_controldata版本并退出。它也支持选项-?
和--help
,它们输出支持的参数。
环境
PGDATA
默认的数据目录位置。
PG_COLOR
规定在诊断消息中是否使用颜色。可能的值为
always
、auto
、never
。
postgres命令详解
postgres — PostgreSQL数据库服务器
大纲
postgres
[选项
...]
描述
postgres
是PostgreSQL数据库服务器。一个客户端应用为了能访问一个数据库,它会(通过一个网络或者本地)连接到一个运行着的postgres
实例。该postgres
实例接着会开始一个独立的服务器进程来处理该连接。
一个postgres
实例总是管理正好一个数据库集簇的数据。一个数据库集簇是一个数据库的集合,它们被存储在一个共同的文件系统位置(“数据区”)上。 一个系统上可以同时运行多个postgres
实例,只要它们使用不同的数据区和不同的通信端口(见下文)。postgres
启动时需要知道数据区的位置,该位置必须通过-D
选项或PGDATA
环境变量指定,对此是没有默认值的。通常,-D
或PGDATA
会直接指向由initdb创建的数据区目录。其他可能的文件布局在第 19.2 节中讨论。
默认情况下,postgres
会在前台启动并将日志消息打印到标准错误流。但在实际应用中,postgres
应当作为一个后台进程启动,而且多数是在系统启动时自动启动。
postgres
还能在单用户模式中被调用。这种模式的主要用途是在启动过程中由initdb使用。有时候它也被用于调试或者灾难性恢复。注意,运行一个单用户模式服务器并不真地适合调试服务器,因为不会发生实际的进程间通信和锁定。当从 shell 中调用单用户模式时,用户可以输入查询并且结果会被以一种更适合开发者阅读(不适合普通用户)的形式打印在屏幕上。在单用户模式中,会话用户将被设置为 ID 为 1 的用户,并且这个用户会被隐式地赋予超级用户权限。该用户不必实际存在,因此单用户模式运行可以被用来对某些意外损坏的系统目录进行手工恢复。
选项
postgres
接受下列命令行参数。关于这些选项的详细讨论请参考第 19 章。你也可以通过设置一个配置文件来减少键入大部分这些选项。有些(安全)选项还可以从连接的客户端以一种与应用相关只应用于会话的方法设置。例如,如果设置了PGOPTIONS
环境变量,那么基于libpq的客户端将都把那个字符串传递给服务器,它将被服务器解释成postgres
命令行选项。
通用选项
-B *
nbuffers*
设置被服务器进程使用的共享内存缓冲区数量。这个参数的默认值是initdb自动选择的。指定这个选项等效于设置shared_buffers配置参数。
-c *
name*=*
value*
设置一个命名的运行时参数。PostgreSQL支持的配置参数在第 19 章中描述。大多数其它命令行选项实际上都是这种参数赋值的短形式。
-c
可以出现多次用于设置多个参数。-C *
name*
打印命名运行时参数的值,并且退出(详见上面的
-c
选项)。这可以被用在一个运行服务器上,并且从postgresql.conf
中返回值,这些值可能被在这次调用中的任何参数修改过。它并不反映集簇启动时提供的参数。这个选项用于与一个服务器实例交互的其他程序来查询配置参数值,例如pg_ctl。面向用户的应用应该使用SHOW或者pg_settings
视图。-d *
debug-level*
设置调试级别。数值设置得越高,写到服务器日志的调试输出就越多。取值范围是从 1 到 5。还可以针对某个特定会话使用
-d 0
来阻止父postgres
进程的服务器日志级别被传播到这个会话。-D *
datadir*
指定数据库配置文件的文件系统位置。详见第 19.2 节。
-e
把默认日期风格设置为“European”,也就是输入日期域的顺序是
DMY
。这也导致在一些日期输出格式中把日打印在月之前。详见第 8.5 节。-F
禁用
fsync
调用以提高性能,但是要冒系统崩溃时数据损坏的风险。指定这个选项等效于禁用fsync配置参数。在使用之前阅读详细文档!本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!