Middle
65
questionbank

Какие существуют виды репликации таблиц в базах данных?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Репликация — это процесс создания и поддержки нескольких копий данных в разных местоположениях.

Основные виды репликации таблиц:

  1. Master-Replica (Односторонняя, Asynchronous/Synchronous):

    • Master-Asynchronous Replica: Изменения вносятся на мастер-сервере и асинхронно реплицируются на реплики. Быстрая запись на мастер, но возможна потеря данных при сбое мастера до репликации.
    • Master-Synchronous Replica: Изменения на мастере считаются завершенными только после их подтверждения на всех репликах. Обеспечивает согласованность данных, но медленнее записи на мастер.
  2. Multi-Master (Двусторонняя):

    • Изменения могут вноситься на любом из мастер-серверов и затем реплицируются на все остальные. Требует разрешения конфликтов при одновременных изменениях одних и тех же данных на разных серверах.
  3. Peer-to-Peer:

    • Каждый участник репликации может читать и писать данные, и изменения распространяются на всех остальных. Это обобщение Multi-Master, где нет строгого понятия "мастер".
  4. Transactional Replication:

    • Реплицируются отдельные транзакции по мере их совершения. Подходит для сценариев, где важна низкая задержка и высокая согласованность.
  5. Snapshot Replication:

    • Создается полная копия данных (снимок) в определенный момент времени и реплицируется на подписчиков. Используется для начальной синхронизации или для таблиц, которые редко меняются.
  6. Merge Replication:

    • Позволяет участникам работать автономно, а затем объединять изменения. Используется в сценариях с мобильными пользователями или в географически распределенных системах. Требует сложного разрешения конфликтов.
  7. Logical Replication:

    • Реплицируется не физическое представление данных, а логические изменения (операции INSERT, UPDATE, DELETE). Позволяет реплицировать данные между базами данных с разной схемой или даже разными СУБД.

Примеры:

  • MySQL Replication (Master-Replica)
  • PostgreSQL Logical Replication
  • MongoDB Replica Sets (Primary-Secondary)
  • Galera Cluster (Multi-Master)