03 Занятие 03: Установка и сопровождение / Установка, настройка, обновление
Эта страница извлечена из официального PDF в нативный Markdown. Текст слайдов, код и комментарии сохранены в порядке чтения; исходные PDF и HTML остаются эталоном макета. HTML source: pgpro_03_install.html Archive: PGPRO-handouts-16.zip Страниц PDF: 23
Page 1: Установка и сопровождение / Установка, настройка, обновление
Авторские права
© Postgres Professional, 2023–2026 Авторы: Алексей Береснев, Илья Баштанов, Павел Толмачев, Игорь Гнатюк Фото: Олег Бартунов (монастырь Пху и пик Бхрикути, Непал)
Использование материалов курса
Некоммерческое использование материалов курса (презентации, демонстрации) разрешается без ограничений. Коммерческое использование возможно только с письменного разрешения компании Postgres Professional. Запрещается внесение изменений в материалы курса.
Обратная связь
Отзывы, замечания и предложения направляйте по адресу: edu@postgrespro.ru
Отказ от ответственности
Компания Postgres Professional не несет никакой ответственности за любые повреждения и убытки, включая потерю дохода, нанесенные прямым или непрямым, специальным или случайным использованием материалов курса. Компания Postgres Professional не предоставляет каких-либо гарантий на материалы курса. Материалы курса предоставляются на основе принципа «как есть» и компания Postgres Professional не обязана предоставлять сопровождение, поддержку, обновления, расширения и изменения.
Page 2: Темы
- Установка и начальная настройка
- Обновление сервера
Page 3: Установка и настройка
Архитектуры и ОС
- Пакеты Postgres Pro
- Настройка Postgres Pro
- Информация о сервере
- Нумерация версий
Page 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-разрядные архитектуры.
Список поддерживаемых систем можно посмотреть в документации:
https://postgrespro.ru/docs/enterprise/16/binary-installation-on-linux#SUPPO RTED-LINUX-OS
Платформа Windows поддерживалась в версиях до 14 включительно.
Page 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 — анализатор журналов сообщений и др.
Полный перечень пакетов и библиотек есть в документации:
https://postgrespro.ru/docs/enterprise/16/binary-installation-on-linux#CHOO SING-PGPRO-PACKAGES
Page 6: Настройка Postgres Pro
pg-wrapper — управление ссылками
- путь поиска PATH и страницы man
- pg-setup — управление кластером
- инициализация кластера
- проверка доступных портов
- изменение конфигурации сервера
- включение и отключение автоматического запуска службы
- запуск, остановка или перезапуск службы
- настройка кластера
- Проверка контрольных сумм
- включена по умолчанию
Комментарии преподавателя
В данном курсе рассматривается настройка и работа Postgres Pro Enterprise в среде Linux.
Для добавления ссылок в путь поиска PATH и для подключения man-страниц используется скрипт pg-wrapper.
https://postgrespro.ru/docs/enterprise/16/pg-wrapper
Для инициализации кластера Postgres Pro Enterprise рекомендуется скрипт pg-setup. Он может находить доступные для установки сервера порты, инициализировать и настраивать экземпляры Postgres Pro Enterprise. Запускать pg-setup нужно от имени пользователя root, а действия с СУБД скрипт выполняет под ролью postgres.
https://postgrespro.ru/docs/enterprise/16/pg-setup
Скрипт также позволяет запустить сервер, остановить его и настроить автоматический запуск.
https://postgrespro.ru/docs/enterprise/16/binary-installation-on-linux#STARTI NG-SERVER-AUTOMATICALLY
По умолчанию в кластере:
● включаются подсчет и проверка контрольных сумм;
● запускается утилита pgpro_tune, которая добавляет в конфигурацию экземпляра настройки, оптимизирующие работу на конкретном оборудовании;
● поддерживается библиотека ICU, в которой реализована платформонезависимая сортировка.
https://postgrespro.ru/docs/enterprise/16/collation#COLLATION-MANAGING
Page 7: Информация о сервере
pgpro\_controldata
- вывод информации о кластере и/или сервере
- чтение младших мажорных версий и редакций
- сравнение параметров сервера, влияющих на совместимость
- SQL-функции
- проверка информации о системе после установки
- версия и редакция Postgres Pro
- идентификатор состояния исходного кода
- pg_config
- версия и редакция Postgres Pro Enterprise
Комментарии преподавателя
С помощью утилиты pgpro_controldata можно вывести управляющую информацию о кластере PostgreSQL или Postgres Pro Enterprise и параметры совместимости кластера. Без указания параметров утилита pgpro_controldata работает аналогично утилите pg_controldata. Устанавливается отдельным пакетом.
https://postgrespro.ru/docs/enterprise/16/app-pgprocontroldata
Если Postgres Pro Enterprise уже установлен, с помощью SQL-функций можно узнать версию кластера, название редакции и идентификатор состояния исходного кода (хеш коммита), из которого был собран пакет — эти сведения пригодятся для обращения в техподдержку.
https://postgrespro.ru/docs/enterprise/16/functions-info#FUNCTIONS-INFO-SESSION-TABLE
Аналогичная информация выводится и с помощью утилиты pg_config.
https://postgrespro.ru/docs/enterprise/16/app-pgconfig
Page 8: Проверка системы после установки
В виртуальной машине курса установлен пакет postgrespro-ent-16-server, исполняемые файлы находятся в каталоге /opt/pgpro/ent-16/bin/:
Для инициализации кластера была использована утилита pg-setup. Ключ –no-tune отключает применение дополнительных настроек:
Этой же утилитой pg-setup была настроена служба с автозапуском, так что экземпляром можно управлять в стиле ОС:
Статус можно узнать и с помощью традиционной утилиты pg_ctl:
Для запуска, остановки и перезапуска экземпляра сервера рекомендуется использовать те средства, которые уже используются в вашей компании. Информацию об установленной системе (номер версии и название редакции) можно узнать разными способами, например, с помощью утилиты pg_config или SQL-функций:
Page 9: Page 9
Можно вывести значения конфигурационных параметров SQL-командой SHOW, как это делается в обычном PostgreSQL:
Файл postgresql.conf находится в каталоге данных:
В виртуальной машине в основной конфигурационный файл Postgres Pro Enterprise добавлена директива include_dir для включения дополнительных файлов:
Page 10: Нумерация версий
{#source-figure-010 caption=“Source slide page 10: Нумерация версий”}
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.
При обновлении нужно учитывать, что в новом выпуске может быть прекращена поддержка определенных версий операционных систем.
https://postgrespro.ru/docs/enterprise/16/upgrading
Page 11: Обновление сервера
Обновление Postgres Pro Enterprise
- Переход с PostgreSQL и редакций Postgres Pro
Page 12: Обновление 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.
Если статистику планировщика запросов не переносили из старой версии, после переноса данных нужно выполнить анализ.
После любого обновления следует проверить и при необходимости обновить версии расширений в базах данных.
Page 13: Варианты перехода
{#source-figure-013 caption=“Source slide page 13: Варианты перехода”}
Поддерживаются pg_dump+pg_restore и pg_upgrade Понижение версии не поддерживается
Комментарии преподавателя
В иерархии PostgreSQL < Postgres Pro Standard < Postgres Pro Enterprise возможен перенос данных с младшей на более старшую редакцию СУБД. При этом поддерживается как перенос с помощью логического резервирования и восстановления (pg_dump + pg_restore), так и перенос с помощью утилиты pg_upgrade. Возможные пути переноса и ограничения показаны на рисунке.
При этом возможен переход только на ту же или бóльшую основную версию СУБД, понижение версии (downgrade) не поддерживается.
Формат табличных страниц Postgres Pro Enterprise отличается от формата PostgreSQL и Postgres Pro Standard (подробности в теме «Транзакции и сеансы»). Однако непосредственно при обновлении pg_upgrade конвертация всех страниц не выполняется — это слишком затратная процедура. Такое преобразование выполняется позже постепенно — страницы конвертируются при первом обращении к ним после обновления системы.
Page 14: Перенос данных из PostgreSQL
При миграции из PostgreSQL можно использовать средства логического резервного копирования или утилиту pg_upgrade. В виртуальной машине установлен PostgreSQL 16 и инициализирован кластер prod. Запустим экземпляр.
В отдельной базе данных создадим таблицу:
Остановим экземпляр PostgreSQL.
Будем переносить данные с помощью pg_upgrade. Нам понадобится пустой кластер Postgres Pro Enterprise.
Для начала запустим утилиту в режиме проверки. Ключами -b и -B нужно указать пути к исполняемым файлам нового и старого кластера, а ключами -d и -D — пути к postgresql.conf.
Page 15: Page 15
Все в порядке, можно переносить данные.
Page 16: Page 16
Добавим директиву include_dir в основной конфигурационный файл и создадим каталог для дополнительных файлов:
Задаем порт в отдельном конфигурационном файле и запускаем сервер Postgres Pro Enterprise.
Данные перенесены в Postgres Pro Enterprise.
Page 17: Итоги
Postgres Pro Enterprise можно установить «по умолчанию» или выборочно
- PostgreSQL и Postgres Pro Standard можно обновить до Postgres Pro Enterprise Postgres Pro Enterprise имеет собственные административные утилиты и функции
Page 18: Практика
- Какой размер имеет сейчас буферный кеш сервера Postgres Pro Enterprise? Увеличьте его на 10 % с помощью команды ALTER SYSTEM. 2. Настройте журнал сообщений так, чтобы в него попадала информация обо всех выполняемых запросах. Запустите стандартный тест pgbench на 90 секунд. Найдите в журнале сообщений информацию о выполненных запросах. Проанализируйте журнал с помощью утилиты pgbadger. 3. Отключите запись информации, настроенную в п.2.
Комментарии преподавателя
Создайте .conf-файл с произвольным именем в подкаталоге conf.d каталога PGDATA кластера и поместите в него необходимые настройки конфигурационных параметров. Содержимое этого файла будет учтено в конфигурации благодаря директиве include_dir, находящейся в конце конфигурационного файла postgresql.conf.
Удалите конфигурационный файл, созданный в п.2
Page 19: 1. Размер кеша
Текущее значение параметра:
Задаем на 10% больше:
Перезапуск и проверка:
2. Тест pgbench и анализ журнала сообщений
Инициализируем pgbench в отдельной базе данных
Включаем вывод в журнал:
Проверяем значение параметра:
Запускаем тест на 90 секунд.
Page 20: Page 20
Файлы журнала сообщений находятся в /var/lib/pgpro/ent-16/log:
Несколько последних записей журнала:
pgBadger уже установлен в виртуальной машине:
Утилите нужно передать: имя html-файла для отчета; формат журнала сообщений; файл журнала или список файлов. Запускаем:
Утилита сгенерировала отчет в файле out.html:
Заглянем в отчет:
Page 21: 3. Восстановление конфигурации
Открываем /tmp/out.html…
Удалим созданный файл и перечитаем конфигурацию:
Уборка
Удалим созданный отчет.
Page 22: Практика PPEM
- Войдите в веб-приложение PPEM как admin и найдите все параметры основного экземпляра, значения которых отличаются от значений по умолчанию. 2. Выясните текущее значение параметра shared_buffers. В каком конфигурационном файле находится строка, устанавливающая это значение? Увеличьте значение в два раза и примените это изменение. 3. Создайте новый экземпляр PostgresPro Enterprise с каталогом данных в /var/lib/pgpro/ent-16-opt. Запустите экземпляр и убедитесь, что он работает.
Page 23: 1. Параметры со значениями, отличными от значений по умолчанию
На главной странице в блоке «Экземпляры» выберите ent-16. В навигационной панели выберите вкладку «Параметры» и установите соответствующий переключатель на главном экране.
2. Значение параметра shared\_buffers
В «Параметрах» найдите shared_buffers. Под названием параметра будет информация, указывающую на строку и файл, где установлено это значение. В поле ввода укажите новое значение параметра и нажмите «Сохранить». Для применения нового значения потребуется перезапуск экземпляра; его нужно дополнительно подтвердить.
3. Создание и запуск нового экземпляра
В блоке «Экземпляры» нажмите «Добавить экземпляр», а затем в открывшемся окне выберите «Создать новый экземпляр» и нажмите «Далее». В новом окне заполните необходимые поля и нажмите «Выполнить». Убедитесь, что инициализация нового экземпляра завершена — в списке он должен иметь статус «Остановлен» — и затем нажмите «Запустить» и дождитесь изменения статуса. Чтобы проверить, что создание и запуск успешны, можно воспользоваться списком заданий. Для этого нажмите на пиктограмму колокольчика в панели инструментов.