Sobes.tech
Назад к вопросам
Middle
33

Что такое зеркалирование (mirroring) в SQL Server и чем оно отличается от репликации?

Компании, где спрашивали
Интехкард

Ответ от нейросети

sobes.tech AI

Зеркалирование (mirroring) в SQL Server — это технология высокой доступности, при которой база данных синхронно или асинхронно дублируется на другом сервере (зеркале). В случае сбоя основного сервера происходит автоматическое или ручное переключение на зеркальный сервер, обеспечивая минимальное время простоя.

Основные особенности зеркалирования:

  • Работает на уровне одной базы данных.
  • Поддерживает два режима: синхронный (high safety) и асинхронный (high performance).
  • Имеет роль основного сервера (principal) и зеркального (mirror).
  • Может использовать дополнительный сервер для автоматического переключения (witness).

Репликация же — это механизм копирования и распространения данных и объектов базы данных с одного сервера на другой(ие) для различных целей: масштабируемости, распределения нагрузки, интеграции данных и т.п. Репликация может быть однонаправленной или двунаправленной, поддерживает фильтрацию данных и работает на уровне транзакций или снимков.

Ключевые отличия:

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

Пример использования зеркалирования:

-- Настройка зеркалирования требует конфигурации серверов и безопасности, пример простого запроса для проверки статуса:
SELECT * FROM sys.database_mirroring WHERE database_id = DB_ID('MyDatabase');