Установка и сопровождение
Установка, настройка, обновление
16
Авторские права
© Postgres Professional, 2023–2026
Авторы: Алексей Береснев, Илья Баштанов, Павел Толмачев, Игорь
Гнатюк
Фото: Олег Бартунов (монастырь Пху и пик Бхрикути, Непал)
Использование материалов курса
Некоммерческое использование материалов курса (презентации,
демонстрации) разрешается без ограничений. Коммерческое
использование возможно только с письменного разрешения компании
Postgres Professional. Запрещается внесение изменений в материалы
курса.
Обратная связь
Отзывы, замечания и предложения направляйте по адресу:
edu@postgrespro.ru
Отказ от ответственности
Компания Postgres Professional не несет никакой ответственности за
любые повреждения и убытки, включая потерю дохода, нанесенные
прямым или непрямым, специальным или случайным использованием
материалов курса. Компания Postgres Professional не предоставляет
каких-либо гарантий на материалы курса. Материалы курса
предоставляются на основе принципа «как есть» и компания Postgres
Professional не обязана предоставлять сопровождение, поддержку,
обновления, расширения и изменения.
2
Темы
Установка и начальная настройка
Обновление сервера
3
Установка и настройка
Архитектуры и ОС
Пакеты Postgres Pro
Настройка Postgres Pro
Информация о сервере
Нумерация версий
4
Архитектуры и ОС
64-разрядные архитектуры
AMD/Intel 64 (x86_64)
ARM64 (aarch64)
Эльбрус 2000 (e2kv3, e2kv4)
Power PC, Power ISA (ppc64le)
OC на базе Linux
Red Hat Enterprise Linux, CentOS, Rocky Linux, Oracle Linux,
Rosa/РОСА, РЕД ОС, AlterOS, AlmaLinux
Debian, Ubuntu, Astra Linux
Альт
SUSE Linux Enterprise Server
Postgres Pro может работать на серверных операционных системах
на базе Linux. Поддерживаются только 64-разрядные архитектуры.
Список поддерживаемых систем можно посмотреть в документации:
Платформа Windows поддерживалась в версиях до 14 включительно.
5
Пакеты Postgres Pro
Пакет верхнего уровня
postgrespro-ent-16
все доступные компоненты сервера
автоматическая настройка
Детальный выбор пакетов
postgrespro-ent-16-* и другие
только необходимые компоненты
ручная настройка
Сторонние пакеты
дополнительные расширения и утилиты
Программное обеспечение Postgres Pro Enterprise поставляется
в двоичных пакетах.
Пакет верхнего уровня postgrespro-ent-16 позволяет быстро установить
и настроить Postgres Pro Enterprise для серверных и клиентских систем
(будут установлены все доступные компоненты без возможности
выбора). Такой способ установки не рекомендуется при обновлении или
миграции системы.
Для более детальной установки и настройки рекомендуется отобрать
отдельные пакеты. Можно установить только серверную часть,
клиентские утилиты, документацию и т. п. В этом случае действия по
настройке, такие как инициализация кластера, придется выполнять
самостоятельно.
Пакеты называются одинаково для всех операционных систем (кроме
незначительных отличий в суффиксе названия пакетов для
разработчиков postgrespro-ent-16-dev* и пакетов с отладочной
информацией postgrespro-ent-16-dbg*).
Существуют также сторонние пакеты и библиотеки, собранные
специально для Postgres Pro Enterprise. В них реализованы
необходимые функции, содержатся дополнительные утилиты и
расширения: в libzstd — функции сжатия данных, oracle-fdw-ent-16 —
обертка сторонних данных для Oracle, pgpro-pgbadger — анализатор
журналов сообщений и др.
Полный перечень пакетов и библиотек есть в документации:
6
Настройка Postgres Pro
pg-wrapper — управление ссылками
путь поиска PATH и страницы man
pg-setup — управление кластером
инициализация кластера
проверка доступных портов
изменение конфигурации сервера
включение и отключение автоматического запуска службы
запуск, остановка или перезапуск службы
настройка кластера
Проверка контрольных сумм
включена по умолчанию
В данном курсе рассматривается настройка и работа Postgres Pro
Enterprise в среде Linux.
Для добавления ссылок в путь поиска PATH и для подключения man-
страниц используется скрипт pg-wrapper.
Для инициализации кластера Postgres Pro Enterprise рекомендуется
скрипт pg-setup. Он может находить доступные для установки сервера
порты, инициализировать и настраивать экземпляры Postgres Pro
Enterprise. Запускать pg-setup нужно от имени пользователя root, а
действия с СУБД скрипт выполняет под ролью postgres.
Скрипт также позволяет запустить сервер, остановить его
и настроить автоматический запуск.
По умолчанию в кластере:
●
включаются подсчет и проверка контрольных сумм;
●
запускается утилита pgpro_tune, которая добавляет в конфигурацию
экземпляра настройки, оптимизирующие работу на конкретном
оборудовании;
●
поддерживается библиотека ICU, в которой реализована
платформонезависимая сортировка.
7
Информация о сервере
pgpro_controldata
вывод информации о кластере и/или сервере
чтение младших мажорных версий и редакций
сравнение параметров сервера, влияющих на совместимость
SQL-функции
проверка информации о системе после установки
версия и редакция Postgres Pro
идентификатор состояния исходного кода
pg_config
версия и редакция Postgres Pro Enterprise
С помощью утилиты pgpro_controldata можно вывести управляющую
информацию о кластере PostgreSQL или Postgres Pro Enterprise и
параметры совместимости кластера. Без указания параметров утилита
pgpro_controldata работает аналогично утилите pg_controldata.
Устанавливается отдельным пакетом.
Если Postgres Pro Enterprise уже установлен, с помощью SQL-функций
можно узнать версию кластера, название редакции и идентификатор
состояния исходного кода (хеш коммита), из которого был собран
пакет — эти сведения пригодятся для обращения в техподдержку.
Аналогичная информация выводится и с помощью утилиты pg_config.
9
Нумерация версий
16 14 1..
основная версия PostgreSQL
дополнительный выпуск PostgreSQL
выпуск Postgres Pro Enterprise
Номер версии Postgres Pro Enterprise состоит из трех частей: номера
основной версии (major release), номера дополнительного выпуска
(minor release) PostgreSQL и номера выпуска Postgres Pro Enterprise.
Новая основная версия привносит изменение функционала: какие-то
возможности добавляются и изменяются, реже — удаляются.
Дополнительные выпуски служат для переноса изменений, сделанных
в соответствующем выпуске PostgreSQL, а также для исправления
ошибок, проблем безопасности и производительности, найденных
в предыдущих выпусках.
Выпуски Postgres Pro Enterprise служат исключительно для
исправления ошибок, проблем безопасности и производительности,
найденных в предыдущих выпусках Postgres Pro Enterprise.
При обновлении нужно учитывать, что в новом выпуске может быть
прекращена поддержка определенных версий операционных систем.
10
Обновление сервера
Обновление Postgres Pro Enterprise
Переход с PostgreSQL и редакций Postgres Pro
11
Обновление Enterprise
Обновление в пределах основной версии
доп. выпуск PostgreSQL или выпуск Postgres Pro Enterprise
установить исполняемые файлы и перезапустить сервер
Обновление основной версии
pg_dump + pg_restore
pg_upgrade
В целом процедура обновления сервера Postgres Pro Enterprise
аналогична процедуре обновления PostgreSQL. Внимательно
прочитайте замечания ко всем выпускам между текущим и целевым.
В любом случае сначала устанавливаются пакеты новой версии или
выпуска.
При обновлении на дополнительный выпуск или выпуск Postgres Pro
Enterprise после этого достаточно перезапустить сервер.
При обновлении основной версии для переноса данных есть два пути:
●
сделать логическую резервную копию утилитами pg_dumpall или
pg_dump и восстановить данные с помощью pg_restore / psql;
●
воспользоваться утилитой pg_upgrade.
Если статистику планировщика запросов не переносили из старой
версии, после переноса данных нужно выполнить анализ.
После любого обновления следует проверить и при необходимости
обновить версии расширений в базах данных.
12
Варианты перехода
Поддерживаются pg_dump+pg_restore и pg_upgrade
Понижение версии не поддерживается
PostgreSQL
Postgres Pro
Standard [Certified]
Postgres Pro
Enterprise [Certified]
PostgreSQL
Postgres Pro
Standard [Certified]
Postgres Pro
Enterprise [Certified]
В иерархии PostgreSQL < Postgres Pro Standard < Postgres Pro
Enterprise возможен перенос данных с младшей на более старшую
редакцию СУБД. При этом поддерживается как перенос с помощью
логического резервирования и восстановления (pg_dump + pg_restore),
так и перенос с помощью утилиты pg_upgrade. Возможные пути
переноса и ограничения показаны на рисунке.
При этом возможен переход только на ту же или бóльшую основную
версию СУБД, понижение версии (downgrade) не поддерживается.
Формат табличных страниц Postgres Pro Enterprise отличается от
формата PostgreSQL и Postgres Pro Standard (подробности в теме
«Транзакции и сеансы»). Однако непосредственно при обновлении
pg_upgrade конвертация всех страниц не выполняется — это слишком
затратная процедура. Такое преобразование выполняется позже
постепенно — страницы конвертируются при первом обращении к ним
после обновления системы.
14
Итоги
Postgres Pro Enterprise можно установить «по умолчанию»
или выборочно
PostgreSQL и Postgres Pro Standard можно обновить
до Postgres Pro Enterprise
Postgres Pro Enterprise имеет собственные
административные утилиты и функции
15
Практика
1. Какой размер имеет сейчас буферный кеш сервера Postgres
Pro Enterprise? Увеличьте его на 10 % с помощью команды
ALTER SYSTEM.
2. Настройте журнал сообщений так, чтобы в него попадала
информация обо всех выполняемых запросах.
Запустите стандартный тест pgbench на 90 секунд.
Найдите в журнале сообщений информацию о выполненных
запросах. Проанализируйте журнал с помощью утилиты
pgbadger.
3. Отключите запись информации, настроенную в п.2.
2. Создайте .conf-файл с произвольным именем в подкаталоге conf.d
каталога PGDATA кластера и поместите в него необходимые настройки
конфигурационных параметров. Содержимое этого файла будет учтено
в конфигурации благодаря директиве include_dir, находящейся в конце
конфигурационного файла postgresql.conf.
3. Удалите конфигурационный файл, созданный в п.2
16
Практика PPEM
1. Войдите в веб-приложение PPEM как admin и найдите все
параметры основного экземпляра, значения которых
отличаются от значений по умолчанию.
2. Выясните текущее значение параметра shared_buffers.
В каком конфигурационном файле находится строка,
устанавливающая это значение? Увеличьте значение
в два раза и примените это изменение.
3. Создайте новый экземпляр PostgresPro Enterprise с каталогом
данных в /var/lib/pgpro/ent-16-opt. Запустите экземпляр
и убедитесь, что он работает.