Практикум. Ручная установка Pangolin
Подготовка к установке
-
Проверьте наличие системного пользователя postgres. Если такого пользователя нет, создайте его, установив оболочку
/bin/bashи домашний каталог/var/lib/postgres. Пользователь (в данном случаеstudent) должен иметь возможность выполнять команды от имени других пользователей с помощьюsudo(в зависимости от используемой операционной системы, пользователю обычно достаточно быть членом группыwheelилиsudo):$ id
uid=1000(student) gid=1000(student) группы=1000(student),10(wheel)
$ id postgres
id: «postgres»: такого пользователя нет
$ sudo useradd -m -r -d /var/lib/postgres -s /bin/bash postgres
$ id postgres
uid=978(postgres) gid=977(postgres) группы=977(postgres)В зависимости от настроек команда
sudo, возможно, потребует ввода пароля учетной записи, от имени которой запускается sudo (в данном случае -student). Для этой учетной записи должна быть соответствующая настройка для разрешения выполнятьsudo. -
Убедитесь в наличии домашнего каталога пользователя postgres, а также в том, что его пароль в ОС заблокирован, а оболочка -
/bin/bash. Проверьте права на домашний каталогpostgres- они должны быть700:$ ls -ld ~postgres/
drwx------. 4 postgres postgres 4096 авг 22 07:57 /var/lib/postgres/
$ grep postgres /etc/passwd postgres:x:978:977::/var/lib/postgres:/bin/bash
$ sudo passwd -S postgres
postgres LK 2024-08-22 -1 -1 -1 -1 (Пароль заблокирован.)Так как пароль у пользователя
postgresзаблокирован, непосредственный вход в сеанс от имени этой учетной записи невозможен. Также невозможно использовать командуsu - postgres, так как она требует ввода пароля учетной записи postgres, а она заблокирована. -
Проверьте возможность запуска сеанса от имени заблокированной учетной записи postgres, используя команду sudo
-i -u postgres:$ sudo -i -u postgres
$ pwd /var/lib/postgres
$ id
uid=978(postgres) gid=977(postgres) группы=977(postgres)
$ whoami postgres
$ who am i student pts/1
$ exit выходМожно, хотя и излишне, использовать
sudo su - postgres. Обратите внимание на разницу между командамиwhoamiиwho am i. Первая из них выдает имя пользователя в текущей сессии (в данном случае - оболочка bash, запущенная с помощьюsudo), как и командаid. Командаwho am iвыдает имя пользователя, вошедшего в сеанс ОС исходно до выполнения командsuилиsudo. Для выхода из сеанса -exit,logoutилиCtrl+D. -
Проверьте наличие архива с установочным пакетом ПО Pangolin и получите его содержимое. Пакет должен быть в подкаталоге
Distдомашнего каталога пользователяstudent. Для удобства распаковка будет производиться в подкаталогеDistribдомашнего каталога:$ ls -1 ~/Dist/
license_edu_202501.json PSQ-06.002.00-69-redos7.3.2-distrib.zip PSQ-06.002.00-69-redos7.3.2-gst-distrib.zip
$ mkdir ~/Distrib && cd ~/Distrib /home/student/Distrib
$ unzip -l ~/Dist/PSQ-06.002.00-69-redos7.3.2-gst-distrib.zip
Archive: /home/student/Dist/PSQ-06.002.00-69-redos7.3.2-gst-distrib.zip
Length Date Time Name
--------- ---------- ----- ----
64 04-28-2024 16:53 PSQ-06.002.00-69-redos7.3.2-distrib.zip.gst
1495 04-28-2024 16:53 PSQ-06.002.00-69-redos7.3.2-distrib.zip.gst.p7s
--------- -------
1559 2 files
$ unzip -l ~/Dist/PSQ-06.002.00-69-redos7.3.2-distrib.zip
Archive: /home/student/Dist/PSQ-06.002.00-69-redos7.3.2-distrib.zip
Length Date Time Name
--------- ---------- ----- ----
490 04-28-2024 16:50 PSQ-06.002.00-69-redos7.3.2-documentation-
distrib.pom
243560569 04-28-2024 16:48 PSQ-06.002.00-69-redos7.3.2-documentation-
distrib.zip
486 04-28-2024 16:50 PSQ-06.002.00-69-redos7.3.2-installer-distrib.pom
3667157 04-28-2024 16:48 PSQ-06.002.00-69-redos7.3.2-installer-distrib.zip
482 04-28-2024 16:49 PSQ-06.002.00-69-redos7.3.2-owned-distrib.pom
51369991 04-28-2024 16:48 PSQ-06.002.00-69-redos7.3.2-owned-distrib.zip
482 04-28-2024 16:50 PSQ-06.002.00-69-redos7.3.2-party-distrib.pom
549620708 04-28-2024 16:49 PSQ-06.002.00-69-redos7.3.2-party-distrib.zip
1209 04-28-2024 16:50 PSQ-06.002.00-69-redos7.3.2-unpacker-distrib.sh
--------- -------
848221574 9 files -
Создайте каталог
~/Distribи, перейдя в него, распакуйте архив ПО Pangolin:$ cd ~/Distrib/
$ unzip ~/Dist/PSQ-06.002.00-69-redos7.3.2-distrib.zip
Archive: /home/student/Dist/PSQ-06.002.00-69-redos7.3.2-distrib.zip
inflating: PSQ-06.002.00-69-redos7.3.2-documentation-distrib.pom
inflating: PSQ-06.002.00-69-redos7.3.2-documentation-distrib.zip
inflating: PSQ-06.002.00-69-redos7.3.2-installer-distrib.pom
inflating: PSQ-06.002.00-69-redos7.3.2-installer-distrib.zip
inflating: PSQ-06.002.00-69-redos7.3.2-owned-distrib.pom
inflating: PSQ-06.002.00-69-redos7.3.2-owned-distrib.zip
inflating: PSQ-06.002.00-69-redos7.3.2-party-distrib.pom
inflating: PSQ-06.002.00-69-redos7.3.2-party-distrib.zip
inflating: PSQ-06.002.00-69-redos7.3.2-unpacker-distrib.shВ каталоге
Distribтеперь находятся извлеченные из архива zip файлы, содержащие ПО для установки. Распаковка может быть автоматизирована с помощью скрипта с суффиксом -unpacker-distrib.sh. -
Проверьте права на скрипт установки и запустите его:
$ ls -l PSQ-06.002.00-69-redos7.3.2-unpacker-distrib.sh
-rw-r--r-- 1 student student 1209 апр 28 16:50 PSQ-06.002.00-69-redos7.3.2- unpacker-distrib.sh
$ file PSQ-06.002.00-69-redos7.3.2-unpacker-distrib.sh PSQ-06.002.00-69-redos7.3.2-unpacker-distrib.sh: Bourne-Again shell script, UTF- 8 Unicode text executable
$ bash PSQ-06.002.00-69-redos7.3.2-unpacker-distrib.sh start
~/Distrib/distributive ~/Distrib
successful completion: PSQ-06.002.00-distrib.tar.gz ~/Distrib -
В результате выполнения предыдущего скрипта в текущем каталоге должен появиться собранный tar архив с установочным ПО Pangolin:
$ ls -ltrh
total 1.6G
-rw-r--r-- 1 student student 233M Apr 28 16:48 PSQ-06.002.00-69-redos7.3.2- documentation-distrib.zip
-rw-r--r-- 1 student student 3.5M Apr 28 16:48 PSQ-06.002.00-69-redos7.3.2- installer-distrib.zip
-rw-r--r-- 1 student student 49M Apr 28 16:48 PSQ-06.002.00-69-redos7.3.2- owned-distrib.zip
-rw-r--r-- 1 student student 482 Apr 28 16:49 PSQ-06.002.00-69-redos7.3.2- owned-distrib.pom
-rw-r--r-- 1 student student 525M Apr 28 16:49 PSQ-06.002.00-69-redos7.3.2- party-distrib.zip
-rw-r--r-- 1 student student 482 Apr 28 16:50 PSQ-06.002.00-69-redos7.3.2- party-distrib.pom
-rw-r--r-- 1 student student 486 Apr 28 16:50 PSQ-06.002.00-69-redos7.3.2- installer-distrib.pom
-rw-r--r-- 1 student student 490 Apr 28 16:50 PSQ-06.002.00-69-redos7.3.2- documentation-distrib.pom
-rw-r--r-- 1 student student 1.2K Apr 28 16:50 PSQ-06.002.00-69-redos7.3.2- unpacker-distrib.sh
-rw-rw-r-- 1 student student 803M Aug 22 10:07 PSQ-06.002.00-distrib.tar.gzОпция
-tкомандыlsвыводит сортированный по времени модификации список файлов, а опция-rобеспечивает вывод этого списка в обратном порядке. Поэтому файлы, модифицированные недавно будут в конце списка. -
Используя архиватор tar получите список содержимого архива установочного ПО:
$ tar xvf PSQ-06.002.00-distrib.tar.gz
...
utilities/psql_get_password_hash utilities/pg_certs_rotate/ utilities/pg_certs_rotate/pg_certs_rotate_agentВ команде использован BSD стиль опций без минуса, однако POSIX стиль перед этими опциями допустим. Так как tar архив сжат gzip, то можно было также указать опцию
z, однако tar подставил ее автоматически. Опцияvне обязательна и обеспечивает режим подробного информирования. После опцииfуказывают имя файла архива. -
Проверьте, извлечены ли из tar архива пакеты RPM, содержащие ПО Pangolin:
$ ls -1 *.rpm pangolin-backup-tools-1.2.0-redos7.3.2.x86_64.rpm pangolin-dbms-6.2-6.2.0-redos7.3.2.x86_64.rpm pangolin-dbms-6.2-client-6.2.0-redos7.3.2.x86_64.rpm pangolin-dbms-6.2-libpq-6.2.0-redos7.3.2.x86_64.rpm
pangolin-dbms-6.2-libpq-dev-6.2.0-redos7.3.2.x86_64.rpm
pangolin-manager-2.1.0-redos7.3.2.x86_64.rpm
pangolin-pooler-1.3.0-redos7.3.2.x86_64.rpm
Установка
-
Получите информацию о пакете с серверным ПО СУБД Pangolin, а также о пакете с клиентским ПО. Используйте rpm с опциями:
-q— режим запроса,-i— получение информации о пакете и-p— обращение к пакету, еще не установленному в системе:$ rpm -qip pangolin-dbms-6.2-6.2.0-redos7.3.2.x86_64.rpm
Name
Version
Release
Architecture: x86_64
Install Date: (not installed)
: pangolin-dbms-6.2
: 6.2.0
: redos7.3.2
Group
Size
License
Signature
Source RPM : pangolin-dbms-6.2-6.2.0-redos7.3.2.src.rpm
Build Date : Sat 27 Apr 2024 02:01:52 PM MSK
: Applications/Databases
: 70739207
: PostgreSQL
: (none)
Build Host : localhost
Relocations : /usr/pangolin-6.2.0
URL : https://sbertech.ru
Summary : Pangolin Database Management System
Description :
Platform V Pangolin is an advanced Object-Relational database management system
(DBMS).
, which will in turn allow you to create
and maintain Pangolin databases.
$ rpm -qip pangolin-dbms-6.2-client-6.2.0-redos7.3.2.x86_64.rpm
The pangolin-dbms package contains the programs needed to create
and run a Pangolin server
Name
Version
Release
Architecture: x86_64
Install Date: (not installed)
: pangolin-dbms-6.2-client
: 6.2.0
: redos7.3.2
Group
Size
License
Signature
Source RPM : pangolin-dbms-6.2-6.2.0-redos7.3.2.src.rpm
Build Date : Sat 27 Apr 2024 02:01:52 PM MSK
: Applications/Databases
: 12268029
: PostgreSQL
: (none)
Build Host : localhost
Relocations : /usr/pangolin-dbms-client-6.2.0
URL : https://sbertech.ru
Summary : Pangolin DBMS client programs
Description :
Platform V Pangolin is an advanced Object-Relational database management system
(DBMS).
The pangolin-dbms-client package contains the client programs that you will need
to
access a Pangolin DBMS server. These client programs can be located on the same
machine as the
Pangolin server, or on a remote machine that accesses a Pangolin server
over a network connection. The Pangolin server can be found in the
platform-v-pangolin-server sub-package. -
Получите из еще не установленного пакета с ПО сервера СУБД Pangolin, куда будет установлен файл с исполняемым кодом postgres после установки пакета. Используйте команду rpm с опциями
-qlp,-l- список файлов, установленных из пакета. Также найдите, в какое место файловой системы будет установлена утилита psql из пакета с клиентским ПО:$ rpm -qlp pangolin-dbms-6.2-6.2.0-redos7.3.2.x86_64.rpm | fgrep bin/postgres /usr/pangolin-6.2.0/bin/postgres
$ rpm -qlp pangolin-dbms-6.2-client-6.2.0-redos7.3.2.x86_64.rpm | fgrep bin/psql /usr/pangolin-dbms-client-6.2.0/bin/psql -
Установите ПО сервера и клиента. Используйте
dnf installс опцией-y- автоматически отвечает yes на все вопросы. Также можно использоватьyum localinstallилиrpm -i, однако в последнем случае зависимости пакетов не будут установлены автоматически. Затем проверьте, установились ли пакеты с помощьюrpm -qa:$ sudo dnf -y install pangolin-dbms-6.2-6.2.0-redos7.3.2.x86_64.rpm
Last metadata expiration check: 1:27:00 ago on Thu 22 Aug 2024 01:33:38 PM MSK. Dependencies resolved.
...
Verifying
Verifying
Verifying
Verifying
Verifying
Verifying
: perl-DBI-1.642-2.el7.x86_64
: uuid-1.6.2-1.el7.x86_64
: jsoncpp-1.9.4-3.el7.x86_64
: libpq-15.0-1.el7.x86_64
: perl-DBD-Pg-3.17.0-1.el7.x86_64
: pangolin-dbms-6.2-6.2.0-redos7.3.2.x86_64
Installed:
jsoncpp-1.9.4-3.el7.x86_64 libpq-15.0-1.el7.x86_64 pangolin-dbms-6.2-
6.2.0-redos7.3.2.x86_64 perl-DBD-Pg-3.17.0-1.el7.x86_64 perl-DBI-1.642-
2.el7.x86_64 uuid-1.6.2-1.el7.x86_64
Complete!
$ sudo dnf -y install pangolin-dbms-6.2-client-6.2.0-redos7.3.2.x86_64.rpm
Last metadata expiration check: 1:29:52 ago on Thu 22 Aug 2024 01:33:38 PM MSK. Dependencies resolved.
...
Verifying : pangolin-dbms-6.2-client-6.2.0-redos7.3.2.x86_64
Installed:
pangolin-dbms-6.2-client-6.2.0-redos7.3.2.x86_64
Complete!
$ rpm -qa pangolin\*
pangolin-dbms-6.2-6.2.0-redos7.3.2.x86_64
pangolin-dbms-6.2-client-6.2.0-redos7.3.2.x86_64С опциями
-qaкоманда rpm выводит список имен всех установленных пакетов в системе, однако если использовать файловый шаблон (globbing), можно отфильтровать нужные имена пакетов. -
Подключите библиотеки, установленные в каталог
/usr/pangolin/libиз пакета серверного ПО и каталог/usr/pangolin-dbms-client/lib- клиентского. Для этого создайте файл конфигурации дляldconfig. Проиндексируйте базу данных библиотек и проверьте, подключаются ли библиотеки к ПО сервера и клиентов:$ echo '/usr/pangolin/lib' | sudo tee /etc/ld.so.conf.d/pangolin.conf /usr/pangolin/lib
$ echo '/usr/pangolin-dbms-client/lib' | sudo tee -a /etc/ld.so.conf.d/pangolin.conf /usr/pangolin-dbms-client/lib
$ cat /etc/ld.so.conf.d/pangolin.conf /usr/pangolin/lib /usr/pangolin-dbms-client/libВ каталоге
/etc/ld.so.conf.dможно размещать конфигурационные файлы с путями к каталогам, содержащим динамические библиотеки (shared objects). Другой путь - прописать пути к библиотекам непосредственно в файл конфигурации/etc/ld.so.conf. Собственно база динамических библиотек -/etc/ld.so.cache:$ sudo ldconfigУтилита
ldconfigиндексирует базу данных динамических библиотек. Утилита ldd позволяет проверить список динамических библиотек, которые требуются для запуска динамически скомпонованных исполняемых файлов в формате ELF:$ ldd /usr/pangolin-dbms-client/bin/psql | grep libpq
libpq.so.5 => /usr/pangolin-dbms-client/bin/../lib/libpq.so.5
(0x00007f505c307000)
$ ls -l /usr/pangolin-dbms-client/bin/../lib/libpq.so.5 lrwxrwxrwx 1 root root 13 апр 27 14:01 /usr/pangolin-dbms-client/bin/../lib/libpq.so.5 -> libpq.so.5.15Другой возможный путь указать местоположение в файловой системе каталогов, содержащих динамические библиотеки - использование переменной окружения
LD_LIBRARY_PATH.
Подготовка к запуску
Внимание!
Перейдите в домашний каталог командой cd.
-
Создайте каталог для кластера баз данных (
PGDATA), каталог для журналов отчета, а также каталог для размещения лицензии. Имена соответствуют рекомендуемым в документации. Установите на созданные каталоги владельца и группуpostgres:$ cd
$ sudo mkdir -p /pgdata/06/data /pgerrorlogs/06 /opt/pangolin_license
$ sudo ls -ld /pgdata/06/data /pgerrorlogs/06 /opt/pangolin_license drwxr-xr-x 2 root root 4096 Aug 22 16:37 /opt/pangolin_license drwxr-xr-x 2 root root 4096 Aug 22 16:37 /pgdata/06/data
drwxr-xr-x 2 root root 4096 Aug 22 16:37 /pgerrorlogs/06
$ sudo chown -R postgres:postgres /pgdata/06 /pgerrorlogs/06 /opt/pangolin_license
$ sudo ls -ld /pgdata/06/data /pgerrorlogs/06 /opt/pangolin_license drwxr-xr-x 2 postgres postgres 4096 Aug 22 16:37 /opt/pangolin_license drwxr-xr-x 2 postgres postgres 4096 Aug 22 16:37 /pgdata/06/data drwxr-xr-x 2 postgres postgres 4096 Aug 22 16:37 /pgerrorlogs/06 -
Запишите в файлы профиля пользователей
studentи postgres настройки нескольких переменных окружения:# Pangolin
umask 022
export LD_LIBRARY_PATH=/usr/pangolin/lib
export PG_PLUGINS_PATH=/usr/pangolin/lib/plugins
export PGHOME=/usr/pangolin
export PGCLIENTENCODING=UTF8
export CLNAME=clustername
export PGDATA=/pgdata/06/data
export PG_LICENSE_PATH=/opt/pangolin_license/
export LANG=en_US.UTF-8
export LC_ALL="en_US.UTF-8"
EOF
$ sudo tee -a ~postgres/.bash_profile << EOF > /dev/null
EOFВ команде используется ввод в стандартный поток
stdinстрок посредствомhere document- механизма оболочки. Ограничитель ввода -EOFможет быть любой последовательностью символов, единственной в строке. Опция-aкомандыteeпереключает эту команду, записывающую полученные из stdin данные в файлы - аргументы, в режим добавления без переписывания предыдущего содержимого этих файлов. -
Скопируйте лицензию в соответствующий каталог и установите на него права для postgres. В этом примере предполагается, что файл лицензии находится в каталоге
~/Dist. Если он находится в ином каталоге, измените соответствующим образом первый аргумент команды cp. Проверить местоположение файла лицензии поможет командаls:$ sudo cp ~/Dist/license*.json /opt/pangolin_license/license.json '/home/student/Dist/license_edu_202501.json' -> '/opt/pangolin_license/license.json'
$ sudo chown -v postgres:postgres /opt/pangolin_license/license.json changed ownership of '/opt/pangolin_license/license.json' from root:root to postgres:postgres -
В сеансе пользователя ОС
postgresпроверьте работоспособность клиента и сервера, запросив информацию о версии:$ sudo -iu postgres
$ psql --version
psql (PostgreSQL) 15.5
$ postgres --product_version Platform V Pangolin 6.2.0
$ postgres --version postgres (PostgreSQL) 15.5
Создание и запуск кластера баз данных
-
Убедитесь, что локаль установлена в
en_US.UTF8. От имени postgres проверьте наличие и пустоту каталогаPGDATA:$ locale
LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8
$ ls -ld $PGDATA
drwx------ 2 postgres postgres 4096 Aug 22 20:50 /pgdata/06/data
$ ls -la $PGDATA
total 8
drwx------ 2 postgres postgres 4096 Aug 22 20:50 . drwxr-xr-x 3 postgres postgres 4096 Aug 22 16:37 ..
$ initdb -k
The files belonging to this database system will be owned by user "postgres". This user must also own the server process.
The database cluster will be initialized with locale "en_US.UTF8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are enabled.
...
initdb: warning: enabling "trust" authentication for local connections
initdb: hint: You can change this by editing pg_hba.conf or using the option -A,
or --auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using:
pg_ctl -D /pgdata/06/data -l logfile startВ команде
initdbбыл использован ключ-kдля включения расчета контрольных сумм. Также для этого можно использовать опцию--data-checksums. -
Добавьте в файл конфигурации следующие настройки:
Внимание!
Если затрудняетесь с копированием или вводом приведенной далее команды, скопируйте выделенные цветом строки и вставьте их с помощью предпочитаемого текстового редактора в файл postgresql.conf в каталоге PGDATA. Внимание! Команды выполняются от имени пользователя postgres.
postgres$ cat >> $PGDATA/postgresql.conf << EOF
enabled_extra_auth_methods = 'peer, trust'
EOF
postgres$ tail -6 $PGDATA/postgresql.conf listen_addresses = '*'
port = 5432
max_connections = 100 superuser_reserved_connections = 3
enabled_extra_auth_methods = 'peer, trust'Настройка
listen_addresses = '*'устанавливает все имеющиеся интерфейсы в качестве разрешенных для соединений. Прослушиваться будет порт5432, что задает настройкаport(значение по умолчанию). Максимальное количество клиентских сессий -100, что задано параметромmax_connections. Из них три зарезервированы за суперпользователем - параметрsuperuser_reserved_connections. Специфичная для Pangolin настройка (ее нет в PostgreSQL)enabled_extra_auth_methodsразрешает использовать методы аутентификацииpeerиtrust. -
Убедитесь, что в конфигурационном файле аутентификации локальные соединения разрешены без проверок подлинности:
$ egrep -v '^($|#)' $PGDATA/pg_hba.conf local all all
host all all
host all all
local replication all
host replication all
host replication all
127.0.0.1/32
::1/128
127.0.0.1/32
::1/128
trust
trust
trust
trust
trust
trustВ команде
egrepиспользуется регулярное выражение, удаляющее из вывода все пустые строки и строки, начинающиеся с решетки - комментарии. Метод аутентификацииtrustне использует каких-либо проверок аутентичности пользователей, разрешая все соединения. -
Запустите сервер, направив вывод отчета в каталог
/pgerrorlogs/06/. Используяpsqlс опцией-cвыполните команду SQL для вывода версии продукта:$ pg_ctl -l /pgerrorlogs/06/pangolin-`date +%F_%T`.log start waiting for server to start.... done
server started
$ ps f -C postgres
PID TTY
7654 ?
7656 ?
7657 ?
7659 ?
7660 ?
7661 ?
7662 ?
7663 ?
7664 ?
7665 ?
STAT TIME COMMAND
Ss 0:00 /usr/pangolin-6.2.0/bin/postgres
Ss 0:00 \_ postgres: checkpointer
Ss 0:00 \_ postgres: background writer
Ss 0:00 \_ postgres: idle sessions terminator
Ss 0:00 \_ postgres: walwriter
Ss 0:00 \_ postgres: license checker
Ss 0:00 \_ postgres: autovacuum launcher
Ss 0:00 \_ postgres: autounite launcher
Ss 0:00 \_ postgres: integrity check launcher
Ss 0:00 \_ postgres: logical replication launcher
Команда ps вывела процессы, входящие в состав экземпляра сервера СУБД.
$ psql -c 'select product_version()' product_version
---------------------------
Platform V Pangolin 6.2.0
(1 строка)