Глава 29. Логическая репликация#
Глава 29. Логическая репликация
Оглавление
- 29.1. Публикация
- 29.2. Подписка
- 29.3. Переключение на резервную копию логической репликации
- 29.4. Фильтры строк
- 29.5. Списки столбцов
- 29.6. Репликация генерируемых столбцов
- 29.7. Конфликты
- 29.8. Ограничения
- 29.9. Архитектура
- 29.10. Мониторинг
- 29.11. Безопасность
- 29.12. Настройки конфигурации
- 29.13. Обновление
- 29.14. Быстрая настройка
Логическая репликация - это метод репликации объектов данных и их изменений на основе их идентификатора репликации (обычно первичного ключа). Мы используем термин "логическая" в отличие от физической репликации, которая использует точные адреса блоков и репликацию байт-в-байт. PostgreSQL поддерживает оба механизма одновременно, см. Глава 26. Логическая репликация позволяет тонко настраивать как репликацию данных, так и безопасность.
Логическая репликация использует модель публикации и подписки с одним или более подписчиками, подписанными на одну или несколько публикаций на узле издателя. Подписчики извлекают данные из публикаций, на которые они подписаны, и могут в дальнейшем повторно публиковать данные, чтобы обеспечить каскадную репликацию или более сложные конфигурации.
Обычно когда начинается логическая репликация таблицы, PostgreSQL делает снимок данных таблицы в базе данных публикующего сервера и копирует его подписчику. После этого, изменения на стороне публикующего сервера, начиная с момента первоначального копирования, постоянно отправляются подписчику. Подписчик применяет данные в том же порядке, что и публикующий сервер, чтобы гарантировать транзакционную согласованность для публикаций в рамках одной подписки. Этот метод репликации данных иногда называют транзакционной репликацией.
Типичные сценарии использования для логической репликации включают:
Отправка инкрементных изменений в одну базу данных или подмножество базы данных подписчикам по мере их возникновения.
Запуск триггеров для отдельных изменений по мере их поступления на подписчика.
Слияние нескольких баз данных в одну (например, для аналитических целей).
Репликация между разными основными версиями PostgreSQL.
Репликация между экземплярами PostgreSQL на разных платформах
Предоставление доступа к реплицированным данным различным группам пользователей.
Совместное использование подмножества базы данных между несколькими базами данных.
База данных подписчика ведет себя так же, как и любой другой экземпляр PostgreSQL, и может стать публикующей, если создать публикации в ней. Когда подписчик используется приложением только для чтения, конфликтов при одной подписке не возникает. Однако, если в тот же набор таблиц происзодятся записи либо приложением, либо другими подписчиками, то могут возникнуть конфликты.
- 29.1. Публикация
- 29.2. Подписка
- 29.3. Переключение на резервную копию логической репликации
- 29.4. Фильтры строк
- 29.5. Списки столбцов
- 29.6. Репликация генерируемых столбцов
- 29.7. Конфликты
- 29.8. Ограничения
- 29.9. Архитектура
- 29.10. Мониторинг
- 29.11. Безопасность
- 29.12. Настройки конфигурации
- 29.13. Обновление
- 29.14. Быстрая настройка