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

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

---

Индекс LLMS: [llms.txt](/ru/llms.txt)

---

<!-- Generated by scripts/generate_skeleton.py. -->

> [!NOTE]
> Эта страница извлечена из официального PDF в нативный Markdown. Текст слайдов, код и комментарии сохранены в порядке чтения; исходные PDF и HTML остаются эталоном макета.
> **HTML source:** [pgpro_00_introduction.html](https://edu.postgrespro.ru/16/pgpro-16/pgpro_00_introduction.html)
> **Archive:** [PGPRO-handouts-16.zip](https://edu.postgrespro.ru/16/PGPRO-handouts-16.zip)
> **Страниц PDF:** 12

## Page 1: Postgres Pro Enterprise 16 / Возможности Postgres Pro Enterprise {#source-page-001}

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

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

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

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

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

## Page 2: Администраторам {#source-page-002}

![Source slide page 2: Администраторам](images/page-002.png){#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-page-003}

![Source slide page 3: Разработчикам](images/page-003.png){#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: О курсе {#source-page-004}

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

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

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

## Page 5: Используемые материалы {#source-page-005}

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

## Page 6: Виртуальная машина {#source-page-006}

В виртуальной машине курса установлен Postgres Pro Enterprise 16 с дополнительными расширениями, и в каталоге /var/lib/pgpro/ent-16 инициализирован кластер, использующий порт 5432.
Для файлов кластера разрешен групповой доступ, а пользователь ОС student включен в группу postgres, это позволяет ему обращаться к каталогу данных для копирования и восстановления:
```sh
student$ getent group postgres
```
```text
postgres:x:124:student
```
```sh
student$ ls -l /var/lib/pgpro/ent-16
```
```text
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
```
Экземпляр запускается автоматически при старте ОС. Подключимся к нему:
```sh
student$ psql
```
```sql
=> \conninfo
```
```text
You are connected to database "student" as user "student" via socket in "/tmp" at port
"5432".
```
В конфигурационный файл добавлен параметр include\_dir, чтобы можно было менять параметры с помощью дополнительных файлов:
```sh
postgres$ grep ^include_dir /var/lib/pgpro/ent-16/postgresql.conf
```
```text
include_dir='conf.d'
```
В конфигурационный файл аутентификации с той же целью добавлена директива include\_dir:
```sh
postgres$ grep ^include_dir /var/lib/pgpro/ent-16/pg_hba.conf
```
```text
include_dir pg_hba.conf.d
```
В кластере созданы роли:
student — для удобства подключения; backup — для тем модуля «Резервное копирование»:
```text
=> \du
```

## Page 7: Page 7 {#source-page-007}

```sql
                             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:
```text
=> \l
```
```text
                                                           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:
```sh
student$ pg_lsclusters
```
```text
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: Организационные вопросы {#source-page-008}

**День: ~8 академических часов + обед (1час)**
- Каждая тема, как правило, состоит из
  - презентации и демонстрации: ~25–60 мин
  - практических заданий: ~30 мин, включая перерыв

## Page 9: День 1 {#source-page-009}

**Установка и сопровождение**
  - 01. Редакции и возможности
  - 02. Postgres Pro Enterprise Manager
  - 03. Установка, настройка, обновление
  - 04. Миграция
  - 05. Планировщик заданий

## Page 10: День 2 {#source-page-010}

**Данные**
  - 06. CFS — сжатая файловая система
- Производительность
  - 07. Транзакции и сеансы
  - 08. Оптимизация запросов
  - 09. Адаптивная оптимизация
  - 10. Перепланирование
  - 11. Сохранение планов запросов

## Page 11: День 3 {#source-page-011}

**Производительность (продолжение)**
  - 12. Анализ производительности
  - 13. Отчеты по нагрузке pgpro\_pwr
- Безопасность
  - 14. Профили пользователей
  - 15. Аудит
  - 16. Защищенная схема
  - 17. Анонимизация данных

## Page 12: День 4 {#source-page-012}

**Резервное копирование**
  - 18. Основы pg\_probackup
  - 19. Использование pg\_probackup
  - 20. Другие возможности pg\_probackup
- Отказоустойчивые решения
  - 21. Кластер multimaster
  - 22. Кластер BiHA
