Тезисы


Репликация позволяет сделать N копий одной БД. Обычно есть одна ведущая копия, которую называют master, и есть N ведомых реплик, которые называют slaves.

Репликация не отменяет первоначального копирования БД. Сначала нужно первый раз скопировать данные, а потом уже запустить репликацию.

Для чего делают репликацию?

  • High Availability. Если один сервер выходит из строя, другие реплики продолжают обслуживать запросы, обеспечивая непрерывный доступ к данным.
  • Масштабирование чтения. Нагрузка на чтение может быть распределена между несколькими репликами, что улучшает производительность системы.
  • Распределение нагрузки. Сложные аналитические запросы для построения отчетов и асинхронное резервное копирование БД могут выполняться на отдельных репликах, не нагружая основной сервер.
  • Географическое распределение. Реплики могут быть размещены ближе к пользователям в разных регионах, уменьшая задержки доступа к данным.

Недостатки репликации:

  • Не позволяет получить увеличение производительности запросов на вставку данных. Для этого нужно использовать шардирование.
  • Сложность управления. Управление несколькими репликами требует дополнительных ресурсов и сложной конфигурации. Это включает настройку синхронизации данных, мониторинг состояния реплик и управление конфликтами.
  • Ресурсозатратность. Поддержание нескольких копий данных требует дополнительных ресурсов, что может значительно увеличить расходы на инфраструктуру.
  • Проблемы консистентности: В асинхронной репликации данные на разных репликах могут быть несогласованными, что может привести к проблемам с консистентностью. Например, пользователь может получить разные результаты для одного и того же запроса, если реплики не успели синхронизироваться.

Роль журнала БД в репликации

Прямой способ сделать репликацию - это скопировать журнал БД с master на slave и применить его. PostgreSQL работает именно так используя журнал WAL. Однако, не все так просто. Формат и возможности журнала напрямую зависят от СУБД.

Классификация репликаций

Проблемы


Мета информация

Область:: 00 HighLoad, 00 DevOps, 00 Базы Данных
Родитель:: Репликация
Источник::
Автор::
Создана:: 2024-03-10

Дополнительные материалы

Дочерние заметки