digital-garden/_inbox/Репликация БД.md
2024-06-13 21:01:37 +03:00

6.4 KiB
Raw Blame History

aliases tags date zero-link parents linked
репликация базы данных
репликацию бд
зрелость/🌱
2024-03-10
00 DevOps
00 Базы Данных
00 Архитектура ПО
_inbox/Репликация

Тезисы

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

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

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

  • Увеличение High Availability БД. Одна БД падает, ее заменяет реплика.
  • Позволяет получить масштабирование чтения, но ==не позволяет получить масштабирование операций вставки.== Для масштабирования вставки используется Шардирование.
  • Чтобы делать асинхронное резервное копирование БД
  • Чтобы распределить нагрузку. Например перенести сложные запросы построения отчетов на отдельную реплику.

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

Проблемы репликации

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

Асинхронная репликация

В асинхронной репликации обычно есть мастер, куда мы пишем, и есть слэйв, с которого только читаем. Здесь допустима задержка обновления слейвов.

Также при таком подходе можно использовать слейвы для разных действий, например один слейв отдать под отчетность, второй под бэкапы.