Установка PostgreSQL на выделенном сервере
В этом разделе описан процесс установки СУБД PostgreSQL на выделенном сервере.
|
Установка СУБД PostgreSQL на одном сервере не обеспечивает ее отказоустойчивости. Если вы планируете развертывание системы в отказоустойчивой конфигурации, рекомендуется установить PostgreSQL в выделенном кластере. Процесс распределенной установки PostgreSQL описан в разделе Установка PostgreSQL в выделенном кластере. |
Требования к PostgreSQL
Для работы системы требуется реляционная СУБД:
-
рекомендуется PostgreSQL версии 15 или выше;
-
допустимо использование совместимых аналогов: Postgres Pro или Jatoba J4.
Установка PostgreSQL
Загрузите и установите PostgreSQL согласно инструкции с официального сайта.
Настройка PostgreSQL на выделенном сервере
Настройка конфигурационного файла postgresql.conf
Для корректной работы системы в конфигурационный файл postgresql.conf следует добавить следующие параметры:
-
сетевой интерфейс и порт, прослушиваемые сервером PostgreSQL;
-
параметры обработки строк.
|
Расположение файла зависит от используемой операционной системы:
Если вы используете иную операционную систему, расположение файла |
Чтобы добавить вышеуказанные параметры в postgresql.conf, выполните следующие действия:
-
Откройте файл
postgresql.confдля редактирования. -
Добавьте в файл следующие строки:
listen_addresses = '<postgresql_ip>' port = <port> standard_conforming_strings = 'on' escape_string_warning = 'on' backslash_quote = 'safe_encoding'Здесь:
-
<postgresql_ip>— IP-адрес сервера PostgreSQL, который система будет использовать для подключения к базе данных. -
<port>— порт, который будет прослушивать сервер PostgreSQL в ожидании подключений. По умолчанию — 5432.
-
-
Сохраните и закройте файл
postgresql.conf.
Настройка сетевого доступа кластера к PostgreSQL
Разрешения сетевого доступа клиентов к серверу PostgreSQL задаются в конфигурационном файле pg_hba.conf. Этот файл расположен в той же директории, что и файл postgresql.conf.
Чтобы настроить разрешения сетевого доступа:
-
Откройте файл
pg_hba.confдля редактирования. -
Разрешите подключение worker-узлов кластера Kubernetes, добавив их адреса в виде строк:
host all all worker-node-ip1/32 scram-sha-256 host all all worker-node-ip2/32 scram-sha-256 host all all worker-node-ipN/32 scram-sha-256где
worker-node-ipX— IP-адреса worker-узлов кластера, в котором развернута система. В зависимости от настроек PostgreSQL может использоваться алгоритм хэшированияmd5вместо приведенного в примереscram-sha-256. -
Сохраните и закройте файл
pg_hba.conf.
Проверка локали, используемой PostgreSQL
Чтобы система работала корректно, базы данных PostgreSQL должны использовать локаль en_US.UTF-8. Чтобы проверить используемую локаль и при необходимости изменить ее, выполните следующие действия:
-
Выполните следующий запрос к PostgreSQL:
SELECT datname, datcollate, datctype FROM pg_database;Пример фрагмента вывода запросаdatname | datcollate | datctype ------------+-------------+------------ postgres | en_US.UTF-8 | en_US.UTF-8 template1 | en_US.UTF-8 | en_US.UTF-8 template0 | en_US.UTF-8 | en_US.UTF-8 trigger | en_US.UTF-8 | en_US.UTF-8 auth | en_US.UTF-8 | en_US.UTF-8
-
Если для баз данных
template0и/илиtemplate1локаль отличается отen_US.UTF-8, выполните следующие действия:-
Остановите сервис
postgresqlи очистите созданные им данные:systemctl disable --now postgresql rm -rf <postgresql_data_path>Здесь:
-
<postgresql_data_path>— путь к каталогу данных PostgreSQL, например,/var/lib/postgresql/15/main.
-
-
Выполните повторную инициализацию PostgreSQL с помощью следующей команды:
initdb -D <postgresql_data_path> --locale=en_US.UTF-8Здесь:
-
<postgresql_data_path>— путь к каталогу данных PostgreSQL, например,/var/lib/postgresql/15/main.
-
-
Применение параметров
Перезапустите PostgreSQL, выполнив следующую команду:
service postgresql restart
или
systemctl restart postgresql
Добавление пользователя PostgreSQL
При установке PostgreSQL создает суперпользователя postgres. По умолчанию пароль для его учетной записи не задан. Рекомендуется создавать для системы отдельного пользователя с надежным паролем. Пользователь должен обладать привилегией CREATEDB, которая позволяет создавать новые базы данных и становиться их владельцем.
Чтобы добавить пользователя:
-
Переключитесь на пользователя
postgresв командной строке:su postgresили
sudo -i -u postgres -
Добавьте пользователя, выполнив следующую команду:
createuser --createdb --pwprompt system-userили
psql -c "CREATE USER \"system-user\" WITH CREATEDB PASSWORD 'yourpassword';"где
system-user— пример имени нового пользователя (может быть другим),yourpassword— пример пароля. -
Пользователь добавлен. Завершите сеанс пользователя
postgresкомандойexit.
| При эксплуатации системы рекомендуется периодически создавать резервные копии баз данных. |
Установка расширения uuid-ossp
Для работы PostgreSQL с данными типа UUID требуется установить расширение uuid-ossp. Для этого выполните следующие действия:
-
Получите список доступных расширений, выполнив следующую команду:
psql -c "SELECT * FROM pg_available_extensions;"Пример вывода списка доступных расширений
name | default_version | installed_version | comment --------------------+-----------------+-------------------+------------------------------------------------------------------- plpgsql | 1.0 | 1.0 | PL/pgSQL procedural language pg_stat_statements | 1.9 | | track execution statistics of all SQL statements executed hstore | 1.8 | | data type for storing sets of key/value pairs uuid-ossp | 1.1 | | generate universally unique identifiers (UUIDs) pg_trgm | 1.6 | | text similarity measurement and index searching based on trigrams
Если в столбце
nameприсутствует значениеuuid-osspи в строкеuuid-osspв столбцеinstalled_versionесть значение, дополнительных действий не требуется. Иначе переходите к следующим шагам. -
Если в столбце
nameзначениеuuid-osspотсутствует, значит, расширение не входит в установленный вами дистрибутив PostgreSQL. Его можно скачать вместе с пакетомpostgresql-contrib.Пример команды для скачивания
postgresql-contribдля PostgreSQL 15 с помощью пакетного менеджера apt:sudo apt install postgresql-contrib-15 -
Установите расширение
uuid-ossp, выполнив следующую команду:psql -c "CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\";"
Была ли полезна эта страница?