Перейти к содержимому

00 Занятие 00: Postgres Pro Enterprise 16 / Возможности Postgres Pro Enterprise

Исходная страница в нативном Markdown: Postgres Pro Enterprise 16 / Возможности Postgres Pro Enterprise
Примечание

Эта страница извлечена из официального PDF в нативный Markdown. Текст слайдов, код и комментарии сохранены в порядке чтения; исходные PDF и HTML остаются эталоном макета. HTML source: pgpro_00_introduction.html Archive: PGPRO-handouts-16.zip Страниц PDF: 12

Page 1: Postgres Pro Enterprise 16 / Возможности Postgres Pro Enterprise

Авторские права

© Postgres Professional, 2023–2026 Авторы: Алексей Береснев, Илья Баштанов, Павел Толмачев, Игорь Гнатюк Фото: Олег Бартунов (монастырь Пху и пик Бхрикути, Непал)

Использование материалов курса

Некоммерческое использование материалов курса (презентации, демонстрации) разрешается без ограничений. Коммерческое использование возможно только с письменного разрешения компании Postgres Professional. Запрещается внесение изменений в материалы курса.

Обратная связь

Отзывы, замечания и предложения направляйте по адресу: edu@postgrespro.ru

Отказ от ответственности

Компания Postgres Professional не несет никакой ответственности за любые повреждения и убытки, включая потерю дохода, нанесенные прямым или непрямым, специальным или случайным использованием материалов курса. Компания Postgres Professional не предоставляет каких-либо гарантий на материалы курса. Материалы курса предоставляются на основе принципа «как есть» и компания Postgres Professional не обязана предоставлять сопровождение, поддержку, обновления, расширения и изменения.

Page 2: Администраторам

Source slide page 2: Администраторам{#source-figure-002 caption=“Source slide page 2: Администраторам”}

  • DBA2, 4 дня

Комментарии преподавателя

Для прохождения всех курсов необходимо знание основ языка SQL. Курса по SQL в нашей линейке нет, но имеется множество книг и образовательных ресурсов для освоения SQL. Мы рекомендуем книгу Евгения Моргунова «PostgreSQL. Основы языка SQL»:

https://postgrespro.ru/education/books/sqlprimer

Для администраторов мы предлагаем следующие курсы.

Курс DBA1 – базовый, он дает сведения об архитектуре PostgreSQL, об установке, настройке и управлении сервером. Приводятся обзоры разграничения доступа, резервного копирования и репликации.

В курсе DBA2 обсуждается настройка конфигурационных параметров исходя из понимания внутренней организации сервера; говорится о мониторинге сервера с использованием обратной связи для итеративной настройки параметров.

Курс DBA3 посвящен рассмотрению резервного копирования, а также настройкам физической и логической репликации и сценариям ее использования. Также дается общее представление о способах и сложностях построения высокодоступных, масштабируемых кластеров.

Курс DBS рассказывает про настройку подключений клиентов к СУБД и про управление доступом внутри самой СУБД.

В курсе QPT разбираются планирование и выполнение запросов, настройка параметров экземпляра, связанных с производительностью, и изучается поиск проблемных запросов и их оптимизация.

Page 3: Разработчикам

Source slide page 3: Разработчикам{#source-figure-003 caption=“Source slide page 3: Разработчикам”}

  • DEV2, 4 дня

Комментарии преподавателя

Для разработчиков серверной части приложений мы предлагаем следующие курсы.

Базовым курсом для разработчиков является курс DEV1, в котором даются общие сведения об архитектуре PostgreSQL и использовании основных объектов базы данных; изучается программирование на стороне сервера на языках SQL и PL/pgSQL с использованием основных типов данных (включая составной тип и массивы), а также рассматривается взаимодействие с клиентской частью.

В курсе DEV2 рассматриваются особенности внутреннего устройства сервера, влияющие на разработку прикладного кода, и всесторонне изучается расширяемость: возможность дополнить серверные механизмы собственным кодом, что позволяет использовать PostgreSQL для решения самых разнообразных задач.

Курсы DBS, QPT и PGPRO являются общими для разработчиков и администраторов.

Разработчикам могут быть интересны и курсы по администрированию, если есть необходимость детальнее изучить внутреннее устройство PostgreSQL, а также в случае, когда на проекте нет выделенной роли администратора.

https://postgrespro.ru/education/courses

Page 4: О курсе

Продолжительность: 4 дня

  • Предварительные знания
    • знакомство с ОС Unix
    • уверенное владение SQL (знакомство с PL/pgSQL не обязательно,
    • но полезно)
    • PostgreSQL в объеме курсов DBA1, DBA2, DBA3, DBS и QPT,
    • либо DEV1, DEV2, DBS и QPT
  • Какие навыки будут получены
    • использование дополнительных возможностей Postgres Pro Enterprise

Комментарии преподавателя

В данном курсе PGPRO рассматриваются дополнительные возможности, которые предоставляет СУБД Postgres Pro Enterprise.

Page 5: Используемые материалы

Подготовленная виртуальная машина

  • ОС Xubuntu 24.04
  • Postgres Pro Enterprise 16 с документацией на русском языке
  • дополнительные экземпляры PostgreSQL 16 и Postgres Pro Enterprise 16
  • Учебные материалы
    • презентации, демонстрации, практические задания и их решение
    • (в форматах html и pdf)

Page 6: Виртуальная машина

В виртуальной машине курса установлен Postgres Pro Enterprise 16 с дополнительными расширениями, и в каталоге /var/lib/pgpro/ent-16 инициализирован кластер, использующий порт 5432. Для файлов кластера разрешен групповой доступ, а пользователь ОС student включен в группу postgres, это позволяет ему обращаться к каталогу данных для копирования и восстановления:

student$ getent group postgres
postgres:x:124:student
student$ ls -l /var/lib/pgpro/ent-16
total 164
drwxr-x--- 1 postgres postgres  4096 июл 14 11:05 base
drwxr-x--- 2 postgres postgres  4096 июл 14 11:06 conf.d
drwxr-x--- 2 postgres postgres  4096 июл 14 11:05 crash_info
-rw-r----- 1 postgres postgres    88 июл 27 23:33 current_logfiles
drwxr-x--- 1 postgres postgres  4096 июл 27 23:33 global
drwx------ 1 postgres postgres  4096 июл 27 23:33 log
drwxr-x--- 2 postgres postgres  4096 июл 14 11:05 pg_commit_ts
drwxr-x--- 2 postgres postgres  4096 июл 14 11:05 pg_dynshmem
-rw-r----- 1 postgres postgres  5780 июл 14 11:05 pg_hba.conf
drwxr-x--- 2 postgres postgres  4096 июл 14 11:05 pg_hba.conf.d
-rw-r----- 1 postgres postgres  2640 июл 14 11:05 pg_ident.conf
drwxr-x--- 4 postgres postgres  4096 июл 14 11:11 pg_logical
drwxr-x--- 4 postgres postgres  4096 июл 14 11:05 pg_multixact
drwxr-x--- 2 postgres postgres  4096 июл 14 11:05 pg_notify
drwxr-x--- 2 postgres postgres  4096 июл 14 11:05 pg_replslot
drwxr-x--- 2 postgres postgres  4096 июл 14 11:05 pg_serial
drwxr-x--- 2 postgres postgres  4096 июл 14 11:05 pg_snapshots
drwxr-x--- 1 postgres postgres  4096 июл 27 23:33 pg_stat
drwxr-x--- 2 postgres postgres  4096 июл 14 11:05 pg_stat_tmp
drwxr-x--- 2 postgres postgres  4096 июл 14 11:05 pg_subtrans
drwxr-x--- 2 postgres postgres  4096 июл 14 11:05 pg_tblspc
drwxr-x--- 2 postgres postgres  4096 июл 14 11:05 pg_twophase
-rw-r----- 1 postgres postgres     3 июл 14 11:05 PG_VERSION
drwxr-x--- 1 postgres postgres  4096 июл 14 11:11 pg_wal
drwxr-x--- 2 postgres postgres  4096 июл 14 11:05 pg_xact
-rw-r----- 1 postgres postgres    88 июл 14 11:05 postgresql.auto.conf
-rw-r----- 1 postgres postgres 35982 июл 14 11:05 postgresql.conf
-rw-r----- 1 postgres postgres    60 июл 27 23:33 postmaster.opts
-rw-r----- 1 postgres postgres    89 июл 27 23:33 postmaster.pid

Экземпляр запускается автоматически при старте ОС. Подключимся к нему:

student$ psql
=> \conninfo
You are connected to database "student" as user "student" via socket in "/tmp" at port
"5432".

В конфигурационный файл добавлен параметр include_dir, чтобы можно было менять параметры с помощью дополнительных файлов:

postgres$ grep ^include_dir /var/lib/pgpro/ent-16/postgresql.conf
include_dir='conf.d'

В конфигурационный файл аутентификации с той же целью добавлена директива include_dir:

postgres$ grep ^include_dir /var/lib/pgpro/ent-16/pg_hba.conf
include_dir pg_hba.conf.d

В кластере созданы роли: student — для удобства подключения; backup — для тем модуля «Резервное копирование»:

=> \du

Page 7: Page 7

                             List of roles
 Role name |                         Attributes
-----------+------------------------------------------------------------
 backup    | Replication
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS
 student   | Superuser

В кластер добавлены базы данных: student — для удобства подключения; demo — демонстрационная база, используется во многих темах курса (подробнее см. в курсе QPT); templateprobackup — шаблон, в котором роли backup выданы привилегии на выполнение функций, нужные для работы утилиты pg_probackup:

=> \l
                                                           List of databases
       Name        |  Owner   | Encoding | Locale Provider |   Collate   |    Ctype    |
ICU Locale | ICU Rules |   Access privileges
-------------------+----------+----------+-----------------+-------------+-------------+--
----------+-----------+-----------------------
 demo              | student  | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 |
en-US      |           |
 postgres          | postgres | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 |
en-US      |           |
 student           | postgres | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 |
en-US      |           |
 template0         | postgres | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 |
en-US      |           | =c/postgres          +
                   |          |          |                 |             |             |
          |           | postgres=CTc/postgres
 template1         | postgres | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 |
en-US      |           | =c/postgres          +
                   |          |          |                 |             |             |
          |           | postgres=CTc/postgres
 templateprobackup | postgres | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 |
en-US      |           |
(6 rows)

Для тем «PPEM» и «Миграция» установлен PostgreSQL 16 и инициализированы кластеры ppem и prod:

student$ pg_lsclusters
Ver Cluster Port Status Owner    Data directory              Log file
16  ppem    5435 down   postgres /var/lib/postgresql/16/ppem
/var/log/postgresql/postgresql-16-ppem.log
16  prod    5433 down   postgres /var/lib/postgresql/16/prod
/var/log/postgresql/postgresql-16-prod.log

Page 8: Организационные вопросы

День: ~8 академических часов + обед (1час)

  • Каждая тема, как правило, состоит из
    • презентации и демонстрации: ~25–60 мин
    • практических заданий: ~30 мин, включая перерыв

Page 9: День 1

Установка и сопровождение

    1. Редакции и возможности
    1. Postgres Pro Enterprise Manager
    1. Установка, настройка, обновление
    1. Миграция
    1. Планировщик заданий

Page 10: День 2

Данные

    1. CFS — сжатая файловая система
  • Производительность
      1. Транзакции и сеансы
      1. Оптимизация запросов
      1. Адаптивная оптимизация
      1. Перепланирование
      1. Сохранение планов запросов

Page 11: День 3

Производительность (продолжение)

    1. Анализ производительности
    1. Отчеты по нагрузке pgpro_pwr
  • Безопасность
      1. Профили пользователей
      1. Аудит
      1. Защищенная схема
      1. Анонимизация данных

Page 12: День 4

Резервное копирование

    1. Основы pg_probackup
    1. Использование pg_probackup
    1. Другие возможности pg_probackup
  • Отказоустойчивые решения
      1. Кластер multimaster
      1. Кластер BiHA