Конфигурация потоковой репликации PostgreSQL (Master-Replica Streaming)
Пошаговая конфигурация потоковой физической репликации PostgreSQL: wal_level, max_wal_senders, pg_hba.conf, создание слота репликации и standby.signal.
Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
/etc/postgresql/16/main/postgresql.conf
# Master /etc/postgresql/16/main/postgresql.conf
wal_level = replica
max_wal_senders = 5
max_replication_slots = 5
wal_keep_size = 4GB
hot_standby = on
archive_mode = on
archive_command = 'test ! -f /var/lib/postgresql/archive/%f && cp %p /var/lib/postgresql/archive/%f'
Разбор ключевых директив конфигурации
Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).
| Директива / Блок | Рекомендуемое значение | Зачем нужно и системное влияние (CPU / RAM / I-O) |
|---|---|---|
wal_level = replica |
replica | Записывает в WAL данные для потоковой репликации. |
wal_keep_size = 4GB |
4GB | Сохраняет сегменты WAL при разрыве связи. |
checkpoint_completion_target = 0.9 |
0.9 | Сглаживает запись контрольных точек (checkpoints) по времени, предотвращая пиковые просадки дискового ввода-вывода (I/O Spikes). |
random_page_cost = 1.1 |
1.1 (NVMe SSD) | Указывает планировщику низкую стоимость случайного чтения на SSD/NVMe, что стимулирует частое использование индексов. |
Рекомендуемые системные требования VDS под этот стек
Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.
Оптимальный сайзинг: 2x VDS: 2-4 vCPU, 4-8 GB RAM, приватная сеть
Timeweb Cloud
2 CPU / 4 GB NVMe
Рекомендуемые ресурсы
2-4 vCPU /
4-8 GB RAM /
50 GB NVMe
Selectel
2 vCPU / 4 GB RAM
Рекомендуемые ресурсы
2-4 vCPU /
4-8 GB RAM /
50 GB NVMe
Beget
Turbo 4 GB
Рекомендуемые ресурсы
2-4 vCPU /
4-8 GB RAM /
50 GB NVMe
Онлайн-утилиты SysKit для проверки этого сервера
Протестируйте корректность применения конфигурации прямо сейчас в один клик.
Частые ошибки при настройке и их решение (FAQ)
Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.
Как проверить статус репликации?
Выполните `SELECT client_addr, state, sync_state FROM pg_stat_replication;`.
Как применить изменения параметров без перезагрузки сервера?
Для большинства параметров выполните: `sudo -u postgres psql -c 'SELECT pg_reload_conf();'`. Изменение `shared_buffers` требует `systemctl restart postgresql`.
Как найти медленные SQL запросы в базе?
Включите директиву `log_min_duration_statement = 250ms` и расширение `pg_stat_statements` для подробного профилирования.
Рекомендуемые смежные конфигурации
Дополнительные рецепты и калькуляторы для полной оптимизации данного серверного стека.