Стенд отказоустойчивого PostgreSQL: репликация и переход на резерв

Ссылка на работу
Учебно-исследовательский стенд, который поднимается одной командой в Docker Compose: основной сервер, реплика и клиент на PostgreSQL 16, потоковая репликация через слот. Отдельный сценарий доводит диск основного сервера до настоящего переполнения — каталог данных вынесен на tmpfs размером 256 МБ, — и переключение на резерв начинается только после того, как в журнале действительно появилась запись о нехватке места, а не по таймеру. Упавший сервер изолируется на уровне контейнера, чтобы не получилось двух пишущих узлов. Дальше отрабатывает полный цикл: повышение реплики, пересборка бывшего основного и возврат ролей обратно. Около 2000 строк Bash, есть режим dry-run и пошаговый прогон. Стек: PostgreSQL 16, Docker Compose, Bash.