Утилита pg_easy_replicate, упрощающая перенос БД между серверами PostgreSQL

Опубликована утилита pg_easy_replicate, позволяющая легко настроить логическую репликацию данных между двумя СУБД PostgreSQL. Утилита может оказаться полезной для минимизации времени простоя при переносе базы данных на другой сервер или переходе на новую значительную ветку PostgreSQL. Также pg_easy_replicate может применяться для упрощения проведения экспериментов и нагрузочных тестов с синхронизированной копией рабочей БД на другом сервере. Код проекта написан на языке Ruby и распространяется под лицензией MIT.

Pg_easy_replicate автоматизирует настройку репликации и поддерживает режим переключения серверов, при котором исходный сервер переводится в режим только для чтения после завершения репликации и полной синхронизации двух БД, что позволяет избежать потери данных и минимизировать время остановки приложений при выполнении таких работ как замена версий СУБД или замена серверов. Возможна выборочная репликация групп таблиц из одной БД на разные серверы. Надёжность утилиты проверена в рабочих системах сервиса Tines.

Тем же автором дополнительно развивается утилита pg-osc, предназначенная для изменения схемы рабочей БД с минимальным временем блокировки базы. При изменении схемы применяется подмена таблиц – отдельно создаётся “теневая таблица”, повторяющая первичную таблицу, затем изменяется схема теневой таблицы, переносятся данные из первичной таблицы и заменяются имена таблиц. Производимые во время переноса изменения синхронизируются при помощи триггеров и дополнительной таблицы аудита.

Release. Ссылка here.