FT.DBA1-17

Tantor: Администрирование PostgreSQL 17

Курс предназначен для администраторов PostgreSQL и всех, кто хочет познакомиться с архитектурой и задачами администрирования СУБД PostgreSQL 17 версии

Отличия от предыдущей версии курса:
Курс создан на основе курса 00-000348 "Администрирование СУБД Tantor в редакции SE, версия 16", который был выпущен в июле 2024 года. Название курса было изменено на "Tantor: Администрирование PostgreSQL 17"

Основные изменения коснулись глав по архитектуре, диагностике, безопасности. В виртуальной машине к курсу была обновлена операционная система с Astralinux версии 1.7 на Astralinux версии 1.8 и Tantor Postgres SE с версии 16.1 на версию 17.5.

В первом практическом задании описано как установить программное обеспечение Tantor Postgres из открытого репозитория для выполнения последующих практических заданий.

Курс полезен для тех, кто планирует использовать не только Tantor Postgres, но и "ванильный" PostgreSQL. Обзор библиотек и расширений Tantor Postgres перенесён в заключительную главу курса.

Предварительная подготовка:
базовые навыки работы в операционных системах семейства Linux и базовые знания SQL

60 000₽

Длительность

5 дней (40ч в неделю)

Доступ к курсу

Навсегда в личном кабинете

Документы

Удостоверение о повышении квалификации

Какие навыки будут получены:

  • знание архитектуры PostgreSQL
  • установка и создание кластера баз данных
  • начальная настройка параметров конфигурации
  • организация хранения данных на логическом и физическом уровнях
  • повседневные задачи администрирования и регламентные работы
  • создание резервных копий
  • физическая и логическая репликация

Программа курса

20 модулей
Введение
О курсе
Установка
Проверка возможности установки
Инсталлятор
Локальная установка
Процесс установки
После установки
Конфигураторы
Создание кластера утилитой initdb


Управление
Утилита управления экземпляром pg_ctl
Процесс postgres
Управление экземпляром через systemctl
Работа в контейнере docker
Остановка экземпляра
Утилиты управления


Утилита psql
psql: подключение к базе данных
psql: параметры подключения
Получение справки по командам psql
Форматирование вывода psql
Вывод результата в формате HTML
Вывод результата в расширенном формате
Приглашение к вводу команд (промпт) psql
Автофиксация транзакций и выполнение команд psql
Переменные psql
Выполнение командных файлов в psql
Графические приложения: DBeaver
Графические приложения: pgAdmin
Графические приложения: Платформа Tantor
Демонстрация
Практика


Архитектура PostgreSQL
Экземпляр PostgreSQL
Запуск экземпляра
Запуск серверного процесса
Общая память процессов экземпляра
Кэш таблиц системного каталога
Представление pg_stat_slru
Локальная память процесса
Представление pg_backend_memory_contexts
Функция pg_log_backend_memory_contexts(PID)
Структуры памяти, обслуживающие буферный кэш
Поиск свободного буфера
Алгоритм вытеснения грязных буферов
Стратегии замены буферов
Поиск блока в буферном кэше
Закрепление буфера (pin) и блокировка content_lock
Освобождение буферов при удалении файлов
Процесс фоновой записи bgwriter
Очистка кэша буферов процессом bgwriter
Контрольная точка
Шаги выполнения контрольной точки
Взаимодействие процессов экземпляра с диском
Практика


Многоверсионность
Таблицы
Служебные столбцы
Структура блока данных
Заголовок версии строки
Вставка строки
Обновление строки
Удаление строки
Типы данных наименьшего размера
Типы данных переменной длины
Целочисленные типы данных
Хранение дат, времени, их интервалов
Типы данных для вещественных чисел
Моментальный снимок
Транзакция
Свойства транзакций
Уровни изоляции транзакций
Феномены изоляции транзакций
Пример ошибки сериализации
Статусы транзакций
Фиксация транзакции
Подтранзакции
Типы блокировок
Блокировки объектов
Совместимость блокировок
Блокировки объектов
Блокировки строк
Мультитранзакции
Очередь при блокировке строки
Практика


Регламентные работы
Автовакуум
Представление pg_stat_progress_vacuum
Параметры команды VACUUM
Параметр default_statistics_target
Раздувание (bloat) таблиц и индексов
Оптимизация Heap Only Tuple
Мониторинг HOT update
Влияние FILLFACTOR на HOT cleanup
Внутристраничная очистка в таблицах
Внутристраничная очистка в индексах
Эволюция индексов: создание, удаление, перестройка
Частичные индексы
Команда REINDEX
REINDEX CONCURRENTLY
Расширение HypoPG
Счетчик транзакций
Практика


Выполнение запросов
Синтаксический разбор
Семантический разбор
Трансформация (переписывание) запроса
Планирование выполнения (оптимизация)
Выполнение запроса
Команда EXPLAIN
Параметры команды EXPLAIN
Таблицы
Индексы для ограничений целостности
Способы доступа к данным в плане запроса
Методы доступа к строкам
Способы соединения наборов строк
Кардинальность и селективность
Стоимость плана запроса
Статистики
Таблица pg_statistic
Накопительная статистика
Расширение pg_stat_statements
Практика


Расширения PostgreSQL
Расширяемость PostgreSQL
Директории файлов расширений и библиотек
Установка расширений
Файлы расширений
Foreign Data Wrapper
Расширение file_fdw
Расширение dblink
Практика


Конфигурирование PostgreSQL
Обзор
Параметры конфигурации
Просмотр параметров
Основной файл параметров postgresql.conf
Файл параметров postgresql.auto.conf
Применение изменений параметров
Привилегии на изменение параметров
Классификация параметров: Контекст
Параметры контекста internal
Классификация параметров: Уровни
Параметры хранения на уровне таблицы
Классификация параметров: Категории
Категория: "Для разработчиков"
Категория: "Пользовательские настройки"
Названия и значения параметров конфигурации
Параметр конфигурации transaction_timeout
Автономные транзакции
Представление pg_stat_slru
Параметр конфигурации transaction_buffers
Параметры multixact_members_buffers и multixact_offsets_buffers
Параметр конфигурации subtransaction_buffers
Параметр конфигурации notify_buffers
Задание параметров при создании кластера
Разрешения на директорию PGDATA
Размер блока данных PostgreSQL
Ограничения PostgreSQL
Параметр enable_large_allocations 
Ограничения на длину идентификаторов
Конфигурационные параметры
Демонстрация
Практика


Логическая структура кластера
Кластер баз данных
Экземпляр
База данных
Список баз данных
Создание базы данных
Изменение свойств базы данных
Команда ALTER DATABASE
Удаление базы данных
Схемы в базе данных
Создание и изменение схем
Путь поиска объектов в схемах
Специальные схемы
Определение текущего пути поиска
В какой схеме будет создан объект
Путь поиска в подпрограммах SECURITY DEFINER
Маскировка объектов схем
Системный каталог
Общие объекты кластера
Использование системного каталога
Обращение к системному каталогу
reg-типы
Часто используемые команды psql
Инспектор баз данных в Платформе Tantor
Демонстрация
Практика


Физическая структура кластера
Директория файлов кластера PGDATA
Директория файлов кластера PGDATA
Временные объекты
Табличные пространства
Табличные пространства: характеристики
Табличные пространства: характеристики
Команды управления табличными пространствами
Изменение директории табличного пространства
Параметры табличных пространств
Работа с файлами журнала
Основной слой хранения данных
Дополнительные слои
Расположение файлов объектов
Размеры табличных пространств и баз данных
Функции определения размера
Перемещение объектов
Смена схемы и владельца
Реорганизация и перемещение таблиц утилитой pg_repack
Уменьшение размера файлов таблиц утилитой pgcompacttable
TOAST (The Oversized-Attribute Storage Technique)
TOAST (The Oversized-Attribute Storage Technique)
Поля переменной длины
Вытеснение полей в TOAST
Алгоритм вытеснения полей в TOAST
TOAST chunk
Ограничения TOAST
Параметры toast_tuple_target и default_toast_compression 
Колоночное хранение Hydra pg_columnar
Демонстрация
Практика


Диагностический журнал
Уровни важности сообщений
Расположение журнала
Передача сообщений syslog
Ротация файлов диагностического журнала
Диагностический журнал
Параметры диагностики
Отслеживание использования временных файлов
Отслеживание работы автовакуума и автоанализа
Наблюдение за контрольными точками
Описание записей log_checkpoints
Утилита pg_waldump и записи log_checkpoints
Логирование соединений
Параметр log_connections
Параметр log_disconnections
Расширения pgaudit и pgaudittofile
Конфигурирование расширений pgaudit и pgaudittofile
Диагностика частоты соединений с базой данных
Диагностика блокирующих ситуаций
Практика


Безопасность
Пользователи (роли) в кластере баз данных
Атрибуты (параметры, свойства) ролей
Атрибут INHERIT и GRANT WITH INHERIT
Переключение сессии в другую роль и смена ролей
Предопределённые (служебные) роли
Права на объекты
Просмотр прав на объекты в psql
Привилегии по умолчанию (DEFAULT PRIVILEGES)
Защита на уровне строк (Row-level security, RLS)
Подсоединение к экземпляру
Файл pg_hba.conf
Содержимое pg_hba.conf
Содержимое pg_hba.conf (продолжение)
Файл сопоставления имён pg_ident.conf
Практика


Физическое резервирование
Виды резервных копий
Инкрементальные бэкапы
Что резервируется
Процедура восстановления
Файлы журнала предзаписи
LSN (Log Sequence Number)
Названия журнальных файлов и LSN
Процесс восстановления startup
Функции для работы с журналами
Холодное резервирование
Параметр конфигурации full_page_writes
Утилита резервирования pg_basebackup
Утилита pg_verifybackup
Архив журналов
Отсутствие потерь (Durability)
Утилита pg_receivewal
Слот репликации
Создание базовой резервной копии
Утилита резервирования wal-g
Демонстрация
Практика


Логическое резервирование
Логическое резервирование
Примеры использования
Сравнение логического и физического резервирования
Команда COPY .. TO
Команда COPY .. FROM
Команда \copy
Утилита pg_dump
Параллельная выгрузка
Утилита pg_restore
Возможности pg_restore
Утилита pg_dumpall
Возможности pg_dumpall
Строки большого размера
Параметр enable_large_allocations 
Демонстрация
Практика


Физическая репликация
Физическая репликация
Мастер и реплика
Реплики и архив журнала
Настройка мастера
Создание реплики
Слоты репликации
Параметры конфигурации на репликах
Горячая реплика
Обратная связь с мастером
Мониторинг горизонта
Параметры max_slot_wal_keep_size и transaction_timeout
Параметры мастера, которые должны быть синхронизированы с репликами
Смена ролей мастер-реплика
Повышение реплики до мастера
Файлы истории линий времени
Утилита pg_rewind
Процессы экземпляра реплики
Отложенная репликация
Восстановление повреждённых блоков данных с реплики
Демонстрация
Практика


Логическая репликация
Логическая репликация
Применение логической репликации
Физическая и логическая репликация
Идентификация строк
Способы идентификации строк
Действия для создания логической репликации
Создание публикации
Создание подписки
Создание подписки
Нагрузка на экземпляр
Получение журнальных данных с реплики
Конфликты
Двунаправленная репликация
Демонстрация
Практика


Обзор Платформы Tantor
Сценарии использования
Инструменты мониторинга
Платформа Tantor
Настройки пользователей
Рабочие пространства
Обзор экземпляра
Кластера Patroni
Профилировщик запросов
Репликация
Табличные пространства
Оповещения
Конфигурация мониторинга
Аналитика
Активности фоновых процессов
Настройки
Анализ схемы данных
Регламентное обслуживание
Планировщик задач
Курс по Платформе Tantor


Новые возможности Tantor Postgres версии 17.5
Tantor Postgres - ветвь PostgreSQL
Доработки в Tantor Postgres
Дополнительные параметры конфигурации
Расширения Tantor Postgres SE и SE 1C
Параметры оптимизатора запросов
Библиотека pg_stat_advisor
Параметры enable_temp_memory_catalog и enable_delayed_temp_file
Параметр enable_large_allocations
Алгоритм сжатия pglz
Параметр libpq_compression
Параметр wal_sender_stop_when_crc_failed
Параметр backtrace_on_internal_error
Расширение uuid_v7
Расширение pg_tde (Transparent Data Encryption)
Валидатор oauth_base_validator
Библиотека credcheck
Расширения fasttrun и online_analyze
Расширение mchar
Расширение fulleq
Расширение orafce
Расширение http
Расширение pg_store_plans
Расширение pg_variables
Производительность при использовании pg_variables
Преимущества расширения pg_variables
Расширение pg_stat_kcache
Статистики, собираемые pg_stat_kcache
Расширение pg_wait_sampling
История событий ожидания
Расширение pg_background
Расширения pgaudit и pgaudittofile
Конфигурирование расширений pgaudit и pgaudittofile
Утилита pgcopydb
Утилита pg_anon
Утилита pg_configurator
Утилита pg_diag_setup.py
Утилита pg_sec_check
Утилита WAL-G (Write-Ahead Log Guard)
Другие расширения
Практика


Как проходит обучение на платформе ФОРС

[ 01 ]

Знакомство с платформой

Платформа учебного центра ФОРС предназначена для удобного и комфортного обучения. Доступ к материалам будет открыт сразу после приобретения курса, а также навсегда доступен в личном кабинете.

[ 02 ]

Обучение

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

[ 03 ]

Обратная связь и поддержка

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

[ 04 ]

Дипломы и сертификаты

Все документы об окончании курсов собраны в одном месте в электронном формате — вы всегда можете посмотретьи скачать их в личном кабинете.

Остались вопросы?

Оставьте свои контактные данные — мы с вами свяжемся и все расскажем

Нажимая на кнопку «Отправить», я принимаю условия Политики конфиденциальности, и даю согласие на обработку персональных данных

WhatsApp
Telegram