PG查看版本的几种方法

0    1073    1

Tags:

👉 本文共约11172个字,系统预计阅读时间或需42分钟。

查看PG版本的几种方法

SQL查询

“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 VERSIONpg_config --version来查看:

pg_controldata

查看告警日志

看log_directory数据库配置参数指向的目录,看该目录中的运行日志是否打印有"LOG: starting PostgreSQL XX.Y"的版本信息(XX和Y均为阿拉伯数字)

postgres

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 安装的编译配置,可运行下列命令:

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

    规定在诊断消息中是否使用颜色。可能的值为alwaysautonever

postgres命令详解

postgres — PostgreSQL数据库服务器

大纲

postgres [选项...]

描述

postgres是PostgreSQL数据库服务器。一个客户端应用为了能访问一个数据库,它会(通过一个网络或者本地)连接到一个运行着的postgres实例。该postgres实例接着会开始一个独立的服务器进程来处理该连接。

一个postgres实例总是管理正好一个数据库集簇的数据。一个数据库集簇是一个数据库的集合,它们被存储在一个共同的文件系统位置(“数据区”)上。 一个系统上可以同时运行多个postgres实例,只要它们使用不同的数据区和不同的通信端口(见下文)。postgres启动时需要知道数据区的位置,该位置必须通过-D选项或PGDATA环境变量指定,对此是没有默认值的。通常,-DPGDATA会直接指向由initdb创建的数据区目录。其他可能的文件布局在第 19.2 节中讨论。

默认情况下,postgres会在前台启动并将日志消息打印到标准错误流。但在实际应用中,postgres应当作为一个后台进程启动,而且多数是在系统启动时自动启动。

postgres还能在单用户模式中被调用。这种模式的主要用途是在启动过程中由initdb使用。有时候它也被用于调试或者灾难性恢复。注意,运行一个单用户模式服务器并不真地适合调试服务器,因为不会发生实际的进程间通信和锁定。当从 shell 中调用单用户模式时,用户可以输入查询并且结果会被以一种更适合开发者阅读(不适合普通用户)的形式打印在屏幕上。在单用户模式中,会话用户将被设置为 ID 为 1 的用户,并且这个用户会被隐式地赋予超级用户权限。该用户不必实际存在,因此单用户模式运行可以被用来对某些意外损坏的系统目录进行手工恢复。

选项

postgres接受下列命令行参数。关于这些选项的详细讨论请参考第 19 章。你也可以通过设置一个配置文件来减少键入大部分这些选项。有些(安全)选项还可以从连接的客户端以一种与应用相关只应用于会话的方法设置。例如,如果设置了PGOPTIONS环境变量,那么基于libpq的客户端将都把那个字符串传递给服务器,它将被服务器解释成postgres命令行选项。

通用选项

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复