Что такое зеркалирование (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');