Установка Postgres Pro из репозитория в системе CentOS 7
См. также установка PostgreSQL PRO 10 из репозитория.
Postgres Pro - Российская СУБД, разработанная компанией Postgres Professional на основе свободно-распространяемой СУБД PostgreSQL. Давайте поглядим, какая система postgresql доступна нам из стандартного репозитория:
[root@ssl ~]# yum info postgresql-server Загружены модули: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.h1host.ru * extras: mirror.yandex.ru * updates: mirror.yandex.ru Доступные пакеты Название: postgresql-server Архитектура: x86_64 Версия: 9.2.18 Выпуск: 1.el7 Объем: 3.8 M Источник: base/7/x86_64 Аннотация: The programs needed to create and run a PostgreSQL server Ссылка: http://www.postgresql.org/ Лицензия: PostgreSQL Описание: PostgreSQL is an advanced Object-Relational database management system (DBMS). : The postgresql-server package contains the programs needed to create : and run a PostgreSQL server, which will in turn allow you to create : and maintain PostgreSQL databases. --
Как видно выше, доступен нам релиз 9.2, что вполне нормально и для многих вещей достаточно.
Установка репозитория в систему от компании Postgres Pro
yum install http://repo.postgrespro.ru/pgpro-9.6/keys/postgrespro-9.6.centos.pro.yum-1.0-1.noarch.rpm -y
После установки пакета, давайте снова поглядим доступные нам версии Postgresql:
[root@ssl ~]# yum search postgres | sed -n '/^postgres/p'
postgrespro-9.6.centos.pro.yum.noarch : PostgreSQL 9.6 Postgres Pro RPMs for postgrespro96.x86_64 : PostgreSQL client programs and libraries postgrespro96-contrib.x86_64 : Contributed source and binaries distributed with postgrespro96-debuginfo.x86_64 : Debug information for package postgrespro96 postgrespro96-devel.x86_64 : PostgreSQL development header files and libraries postgrespro96-docs.x86_64 : Extra documentation for PostgreSQL postgrespro96-docs-ru.x86_64 : Russian documentation for PostgreSQL postgrespro96-libs.x86_64 : The shared libraries required for any PostgreSQL postgrespro96-pg_probackup.x86_64 : Backup and recovery manager for PostgreSQL postgrespro96-plperl.x86_64 : The Perl procedural language for PostgreSQL postgrespro96-plpython.x86_64 : The Python procedural language for PostgreSQL postgrespro96-pltcl.x86_64 : The Tcl procedural language for PostgreSQL postgrespro96-server.x86_64 : The programs needed to create and run a PostgreSQL postgrespro96-test.x86_64 : The test suite distributed with PostgreSQL postgresql.i686 : PostgreSQL client programs postgresql.x86_64 : PostgreSQL client programs postgresql-contrib.x86_64 : Extension modules distributed with PostgreSQL postgresql-devel.i686 : PostgreSQL development header files and libraries postgresql-devel.x86_64 : PostgreSQL development header files and libraries postgresql-docs.x86_64 : Extra documentation for PostgreSQL postgresql-jdbc.noarch : JDBC driver for PostgreSQL postgresql-jdbc-javadoc.noarch : API docs for postgresql-jdbc postgresql-libs.i686 : The shared libraries required for any PostgreSQL clients postgresql-libs.x86_64 : The shared libraries required for any PostgreSQL postgresql-odbc.x86_64 : PostgreSQL ODBC driver postgresql-plperl.x86_64 : The Perl procedural language for PostgreSQL postgresql-plpython.x86_64 : The Python2 procedural language for PostgreSQL postgresql-pltcl.x86_64 : The Tcl procedural language for PostgreSQL postgresql-server.x86_64 : The programs needed to create and run a PostgreSQL postgresql-test.x86_64 : The test suite distributed with PostgreSQL postgresql-upgrade.x86_64 : Support for upgrading from the previous major
Установка сервера Postgres Pro и клиента
yum install postgrespro96 postgrespro96-server -y .. не помешает еще доставить: yum install postgrespro96-libs postgrespro96-contrib postgrespro96-devel -y
После установки в системе появится новый пользователь - postgres, а также каталог для баз данных
/var/lib/pgpro/9.6/data
владельцем которого будет этот же пользователь.
Инициализация кластера базы данных
Под таким громким названием понимается подготовка области хранения базы данных на диске. Также будут созданы первичные базы по-умолчанию (template0, template1 и postgres).
Стоит отметить, что при инициализации кластер создается с локалью аналогичной локали пользователя postgres. Давайте сейчас выясним какие локали у наших пользователей в системе (их пока двое - root и postgres):
[root@ssl ~]# localectl status System Locale: LANG=en_US.UTF-8 VC Keymap: us X11 Layout: n/a
[root@ssl ~]# su - postgres -bash-4.2$ localectl status System Locale: LANG=en_US.UTF-8 VC Keymap: us X11 Layout: n/a
Поменяем локаль. У пользователя postgres, во время смены локали, будет запрошен пароль root-а.
localectl set-locale LANG=ru_RU.UTF-8
-bash-4.2$ localectl set-locale LANG=ru_RU.UTF-8 ==== AUTHENTICATING FOR org.freedesktop.locale1.set-locale === Authentication is required to set the system locale. Authenticating as: root Password: ==== AUTHENTICATION COMPLETE ===
Смотрим снова локаль:
-bash-4.2$ localectl status System Locale: LANG=ru_RU.UTF-8 VC Keymap: us X11 Layout: n/a
Теперь переходим к инициализации. Делаем все под root:
[root@ssl ~]# /usr/pgpro-9.6/bin/pg-setup initdb Initializing database ... OK
или инициализация кластера с применением контрольных сумм на страницах данных для выявления сбоев при вводе/выводе, которые иначе останутся незамеченными.
/usr/pgpro-9.6/bin/pg-setup initdb -k
Настройка и работа
Поставим сервис в автозагрузку:
systemctl enable postgrespro-9.6
или используя старый синтаксис: chkconfig postgrespro-9.6 on
Старт сервиса:
systemctl start postgrespro-9.6 или service postgrespro-9.6 start
Посмотрим какой у пользователя postgres домашний каталог и назначим ему владельца postgres.
[root@ssl ~]# su - postgres Последний вход в систему:Сб фев 25 15:31:22 MSK 2017на pts/0 -bash-4.2$ echo $HOME /var/lib/pgsql
[root@ssl ~]# ll /var/lib/ |grep pgsql drwxr-xr-x 2 root root 69 фев 25 15:32 pgsql
Так, надо менять владельца!
[root@ssl ~]# chown -R postgres.postgres /var/lib/pgsql [root@ssl ~]# ll /var/lib/ |grep pgsql drwxr-xr-x 2 postgres postgres 69 фев 25 15:32 pgsql
Далее, пока под пользователем postgres, уже можно запустить консольный клиент psql и начать работу!
-bash-4.2$ psql psql (9.6.2) Введите "help", чтобы получить справку. postgres=#
--
postgres=# select version(); version ---------------------------------------------------------------------------------------------------------- PostgreSQL 9.6.2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11), 64-bit (1 строка)
postgres=# \l Список баз данных Имя | Владелец | Кодировка | LC_COLLATE | LC_CTYPE | Права доступа -----------+----------+-----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | template0 | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (3 строки)
--
postgres=# \q
Информация
Журнал сообщений сервера находится по адресу:
... по дням недели /var/lib/pgpro/9.6/data/pg_log/postgresql-Sun.log /var/lib/pgpro/9.6/data/pg_log/postgresql-Mon.log .. /var/lib/pgpro/9.6/data/pg_log/postgresql-Sat.log
Файлы базы данных находятся по умолчанию:
/var/lib/pgpro/9.6/data/base
--
- /var/lib/pgpro/9.6/data/postgresql.conf - основной конфигурационный файл, содержащий параметры сервера баз данных.
- /var/lib/pgpro/9.6/data/pg_hba.conf - файл, определяющий настройки доступа к серверу баз данных.