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

О разделе

Раздел 8.11 — продвинутый практикум по PostgreSQL для бэкенд-разработчиков, DBA и DevOps-инженеров. Здесь собран маршрут от внутреннего устройства (MVCC, WAL, VACUUM) до промышленной эксплуатации в Docker, облаке и Kubernetes с репликацией, бэкапами и автоматизацией через Ansible и Terraform.

Базовый SQL, CRUD из приложения и установка «на голое железо» уже есть в разделе 3.07 и 3.08. Этот практикум углубляет темы, которые решают задачи production — bloat, wraparound, планы запросов, пулинг соединений, Patroni и Wal-G.

Для кого раздел

Материал рассчитан на тех, кто уже писал SQL и подключал PostgreSQL из кода, но ещё не эксплуатировал СУБД в контейнерах или кластере. Нужны базовый Linux, понимание Docker и желательно знакомство с Kubernetes.


Маршрут по шагам

ШагСтатьяСодержание
1Архитектура и внутреннее устройствоMVCC, XID, снимки, системные поля, VACUUM, bloat, wraparound, процессы, Shared Buffers, WAL
2Продвинутая оптимизация и индексыEXPLAIN, B-tree, GiST, GIN, BRIN, частичные индексы
3Конфигурация postgresql.confПамять, I/O, autovacuum, checkpoint
4JSONB, партиционирование и расширения SQLДокументы в Postgres, разбиение таблиц, связь с оконными функциями
5PL/pgSQL, триггеры и NOTIFY/LISTENЛогика на стороне СУБД, аудит, событийные системы
6Репликация, Hot Standby и PgBouncerStreaming и logical replication, чтение с реплик, пулинг
7PostgreSQL в DockerОбразы, volumes, compose, типовые ошибки
8Облако и KubernetesManaged-сервисы, StatefulSet, операторы, секреты
9HA-кластеры и распределённые СУБДPatroni, Greenplum, CockroachDB — когда что выбирать
10Бэкапы и восстановлениеpg_dump, PITR, pg_probackup, Wal-G
11Профилирование и мониторингpg_stat_*, auto_explain, pgBadger, Prometheus — практикум Prometheus, Zabbix — практикум Zabbix
12Автоматизация — Ansible и TerraformРоли, playbooks, провайдеры облака

Закрепление — итоги, чек-лист.


Что здесь не повторяем

ТемаГде уже есть
Синтаксис SELECT, JOIN, транзакции3.07 SQL
Оконные функции и CTE885, 886
Практикум JSONB с примерами66
Установка, pg_dump, справочник параметров3.08/2
Блокировки и конкурентный доступ110
Резервное копирование (базовый уровень)106
Веб-интерфейс phpPgAdmin5.07/phpPgAdmin

phpPgAdmin и раздел SQL

phpPgAdmin — веб-клиент на PHP для PostgreSQL (аналог phpMyAdmin для MySQL). Удобен на локальном LAMP/OpenServer и для проверки SQL из браузера до перехода к psql, pgAdmin или production-инструментам.

Задача в 8.11Сначала в SQL (3.07)В phpPgAdminВ практикуме 8.11
Синтаксис SELECT, JOIN, транзакции101888891 demoSQL, DDL и DML — вкладка SQL
JSONB, оконные функции66, 886, 885Выполнить запрос на вкладке SQLшаг 4
Блокировки, MVCC (теория)110, 77шаг 1
EXPLAIN, индексы881, 884EXPLAIN ANALYZE во вкладке SQLшаг 2
postgresql.conf, pg_hba101, 3.08/2Установка и подключениешаг 3
pg_dump, импорт SQL106Дампы и FAQшаг 10
PL/pgSQL, триггеры885 (рецепты)SQL-вкладка для CREATE FUNCTIONшаг 5

Рекомендуемая цепочка для PHP-разработчика: SQL intro888phpPgAdmin/2–3 → этот практикум с шага 1.


Маршруты по ролям

Кто выМаршрутВремя (оценка)
PHP + локальный стекphpPgAdmin/2–3888 → 1 → 23–4 недели
Бэкенд-разработчик1 → 2 → 4 → 52–3 недели
DBA / сисадмин1 → 3 → 6 → 10 → 113–4 недели
DevOps7 → 8 → 9 → 122–4 недели
Полный цикл1 → … → 121–2 месяца

Связанные материалы


В подборках

Базы данныхSQL — о разделе, Управление РСУБД, NoSQL.

ИнфраструктураКонтейнеризация, DevOps.