digital-garden/dev/architecture/highload/Репликация БД.md

9.5 KiB
Raw Permalink Blame History

aliases tags date zero-link parents linked
репликация базы данных
репликацию бд
maturity/🌱
2024-03-10
../../../meta/zero/00 HighLoad
../../../meta/zero/00 DevOps
../../../meta/zero/00 Базы Данных
Репликация

Тезисы


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

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

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

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

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

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

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

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

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

Проблемы


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

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

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

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