# Занятие 00: Администрирование PostgreSQL 16 / Настройка и мониторинг

> Исходная страница в нативном Markdown: Администрирование PostgreSQL 16 / Настройка и мониторинг

---

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

---

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

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

## Page 1: Администрирование PostgreSQL 16 / Настройка и мониторинг {#source-page-001}

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

© Postgres Professional, 2017–2025 Авторы: Егор Рогов, Павел Лузанов, Илья Баштанов, Игорь Гнатюк Фото: Олег Бартунов (монастырь Пху и пик Бхрикути, Непал)
### Использование материалов курса

Некоммерческое использование материалов курса (презентации, демонстрации) разрешается без ограничений. Коммерческое использование возможно только с письменного разрешения компании 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 разбираются планирование и выполнение запросов, настройка параметров экземпляра, связанных с производительностью, и изучается поиск проблемных запросов и их оптимизация.

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

## 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: О курсе DBA2 {#source-page-004}

**Продолжительность: 4 дня**
- Предварительные знания
  - владение ОС Unix
  - знакомство с PostgreSQL в объеме курса DBA1
- Какие навыки будут получены
  - настройка различных конфигурационных параметров
  - исходя из понимания внутренней организации сервера
  - мониторинг сервера с использованием обратной связи
  - для итеративной настройки параметров
  - настройки, связанные с локализацией
  - управление расширениями и знакомство с процедурой обновления
  - сервера

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

Задача этого курса – дать достаточно глубокое понимание внутреннего устройства PostgreSQL, которое позволит разобраться во множестве имеющихся конфигурационных параметров, и показать возможности мониторинга, которые необходимы для уточнения начальных настроек.

Более полное и подробное изложение этих тем можно найти в книге Егора Рогова «PostgreSQL изнутри»:

<https://postgrespro.ru/education/books/internals>

Также в этом курсе разбирается ряд других тем, связанных с администрированием и не вошедших в курс DBA1.

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

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

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

Если вы проходите курс самостоятельно, обязательно начните со знакомства с Руководством слушателя. В числе прочего в нем написано, где скачать и как использовать виртуальную машину курса и прочие материалы. Все материалы курса, включая Руководство слушателя, доступны по адресу: <https://postgrespro.ru/education/courses/DBA2>

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

Учебные материалы (презентации, демонстрации, практические задания и их решения) доступны в двух форматах. Формат html удобен для онлайн-работы, он позволяет копировать фрагменты текста и кода. Формат pdf разбит на страницы и удобен для печати.

## Page 6: Кластеры PostgreSQL {#source-page-006}

```sh
student$ sudo pg_lsclusters
```
```text
Ver Cluster Port Status Owner    Data directory              Log file
15  prod    5433 down   postgres /var/lib/postgresql/15/prod
/var/log/postgresql/postgresql-15-prod.log
16  main    5432 online postgres /var/lib/postgresql/16/main
/var/log/postgresql/postgresql-16-main.log
16  prod    5433 down   postgres /var/lib/postgresql/16/prod
/var/log/postgresql/postgresql-16-prod.log
16  slow    5432 down   postgres /var/lib/postgresql/16/slow
/var/log/postgresql/postgresql-16-slow.log
```
В виртуальной машине курса из пакета установлен PostgreSQL 16 со стандартным кластером main, который запускается при старте ОС и используется почти во всех темах курса.
Для темы «Обновление сервера» настроены два кластера prod для версий 15 и 16 на одном и том же порту 5433.
Кроме этого, в теме «Блокировки в памяти» используется кластер slow на стандартном порту 5432. Все дополнительные кластеры остановлены и запускаются вручную.
Все практические задания выполняются под пользователем ОС student. В кластере main созданы одноименные суперпользователь и база данных, чтобы psql можно было запускать без параметров.
```sh
student$ psql
```
```sql
=> \conninfo \du student
```
```text
You are connected to database "student" as user "student" via socket in
"/var/run/postgresql" at port "5432".
     List of roles
 Role name | Attributes
-----------+------------
 student   | Superuser
```
```text
=> SHOW server_version;
```
```text
          server_version
----------------------------------
 16.2 (Ubuntu 16.2-2.pgdg24.04+1)
(1 row)
```
Во всех кластерах все пользователи могут подключаться локально без аутентификации, а через сеть — с паролем:
```sql
=> SELECT type, database, user_name, auth_method FROM pg_hba_file_rules();
```
```text
 type  |   database    | user_name |  auth_method
-------+---------------+-----------+---------------
 local | {all}         | {all}     | trust
 host  | {all}         | {all}     | scram-sha-256
 host  | {all}         | {all}     | scram-sha-256
 local | {replication} | {all}     | trust
 host  | {replication} | {all}     | scram-sha-256
 host  | {replication} | {all}     | scram-sha-256
(6 rows)
```

## Page 7: Организационные вопросы {#source-page-007}

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

## Page 8: День 1 {#source-page-008}

**Многоверсионность**
  - 01. Изоляция
  - 02. Страницы и версии строк
  - 03. Снимки данных
  - 04. HOT-обновления и самоочистка

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

**Многоверсионность (продолжение)**
  - 05. Очистка
  - 06. Автоочистка
  - 07. Заморозка
- Журналирование
  - 08. Буферный кеш
  - 09. Журнал предзаписи

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

**Журналирование (продолжение)**
  - 10. Контрольная точка
  - 11. Настройка журнала
- Блокировки
  - 12. Блокировки объектов
  - 13. Блокировки строк

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

**Блокировки (продолжение)**
  - 14. Блокировки в оперативной памяти
- Задачи администрирования
  - 15. Управление расширениями
  - 16. Локализация
  - 17. Обновление сервера
