3
Физическая репликация
Синхронизация копий кластера на нескольких серверах
Основные задачи
высокая доступность, отказоустойчивость
масштабируемость
Механизм
один сервер транслирует журнальные записи на другой сервер,
и тот проигрывает полученные записи
Особенности
мастер-реплика: поток данных только в одну сторону
требуется двоичная совместимость серверов
возможна репликация только всего кластера
Одиночный сервер, управляющий базами данных, может не
удовлетворять предъявляемым требованиям.
Один сервер — возможная точка отказа. Два (или больше) серверов
позволяют сохранить доступность системы в случае сбоя
(отказоустойчивость) или — более широко — в любом случае,
например, при проведении плановых работ (высокая доступность).
Один сервер может не справляться с нагрузкой. Наращивать ресурсы
сервера может оказаться невыгодно или вообще невозможно. Но
можно распределить нагрузку на несколько серверов
(масштабирование).
Таким образом, речь идет о том, чтобы иметь несколько серверов,
работающих над одними и теми же базами данных. Под репликацией
понимается процесс синхронизации этих серверов.
Механизм репликации состоит в том, что один сервер передает
журнальные записи на другой сервер, и тот их проигрывает — как при
восстановлении после сбоя.
При физической репликации серверы имеют назначенные роли: мастер
и реплика. Мастер передает на реплику свои журнальные записи в виде
файлов или потока записей; реплика применяет эти записи к своим
файлам данных. Применение происходит чисто механически, без
«понимания смысла» изменений, поэтому важна двоичная
совместимость между серверами (одинаковые платформы и основные
версии PostgreSQL). Поскольку журнал общий для всего кластера, то и
реплицировать можно только весь кластер целиком.