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

О разделе

Длинные листинги (от ~15 строк) вынесены в каталог code.spirzen.ru и подгружаются в статьях через ExternalCodeEmbed — PL/pgSQL, Docker Compose, StatefulSet, Ansible и Terraform не раздувают HTML энциклопедии. Короткие фрагменты (EXPLAIN, однострочные ALTER, команды psql) по-прежнему прямо в markdown. Диаграммы mermaid — на месте.

Раздел 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, SQL — реальные кейсы, практикум shop_data
Оконные функции и CTECTE и MATERIALIZED в PostgreSQL 12+, общие табличные выражения, шпаргалка типичных задач, иерархии
Практикум JSONB с примерамиПрактикум PostgreSQL по JSONB
Установка, pg_dump, справочник параметров3.08/2
Блокировки и конкурентный доступБлокировки и конкурентный доступ в PostgreSQL
Резервное копирование (базовый уровень)Резервное копирование и восстановление PostgreSQL
Веб-интерфейс 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, транзакцииПервые шаги с SQLPostgreSQL — практическая работа и API891 demoSQL, DDL и DML — вкладка SQL
JSONB, оконные функцииПрактикум PostgreSQL по JSONB, Иерархические данные в реляционных БД, Шпаргалка с типичными задачами по SQLВыполнить запрос на вкладке SQLшаг 4
Блокировки, MVCC (теория)Блокировки и конкурентный доступ в PostgreSQL, Транзакции, изоляция и блокировкишаг 1
EXPLAIN, индексыОптимизация SQL-запросов, Сложные индексыEXPLAIN ANALYZE во вкладке SQLшаг 2
postgresql.conf, pg_hbaПервые шаги с SQL, 3.08/2Установка и подключениешаг 3
pg_dump, импорт SQLРезервное копирование и восстановление PostgreSQLДампы и FAQшаг 10
PL/pgSQL, триггерыШпаргалка с типичными задачами по SQL (рецепты)SQL-вкладка для CREATE FUNCTIONшаг 5

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


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

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

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


В подборках

Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:

Базы данныхORM и работа с данными — о разделе, Управление реляционными СУБД — о разделе, NoSQL — о разделе, SQL — о разделе, Основы баз данных — о разделе, Структуры данных — о разделе.