Какие требования к физической репликации Postgresql 11?

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

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

Далее требуется правильная настройка файла postgresql.conf на мастере и слейвах. В файле postgresql.conf на мастере нужно установить следующие параметры:

- wal_level: это параметр определяет, какой уровень журнала WAL (Write-Ahead Log) должен использоваться для записи и репликации транзакций. В контексте физической репликации рекомендуется установить его значение равным 'replica'.
- max_wal_senders: это параметр определяет максимальное количество процессов, которые могут отправлять изменения журнала WAL на слейвы. Рекомендуется установить значение, соответствующее количеству ожидаемых слейвов.
- wal_keep_segments: это параметр определяет количество сегментов журнала WAL, которое должно быть сохранено даже после достижения максимального размера, чтобы слейвы имели возможность восстановиться, если связь с мастером потеряна.

На слейвах файл postgresql.conf должен быть настроен следующим образом:

- primary_conninfo: этот параметр определяет параметры подключения к мастер-серверу.
- restore_command: этот параметр определяет команду, которая будет использоваться для восстановления архивных журналов WAL, если таковые требуются для восстановления базы данных.

Кроме того, важно обратить внимание на настройку файла recovery.conf на слейвах. Этот файл должен содержать параметры, которые определяются для восстановления базы данных:

- standby_mode: этот параметр должен быть установлен в 'on', чтобы слейв работал в режиме реплики.
- primary_conninfo: аналогично параметру primary_conninfo в файле postgresql.conf слейва.
- restore_command: аналогично параметру restore_command в файле postgresql.conf слейва.

Также в PostgreSQL 11 представлен новый механизм синхронной репликации, который позволяет использовать несколько слейвов для достижения более высокой отказоустойчивости. Для его настройки требуется установить параметр synchronous_standby_names в файле postgresql.conf на мастере и указать имена всех слейвов, которые должны быть синхронизированы с мастером.

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