Открыть сервис

Зеркальное отображение баз данных

Зеркальное отображение баз данных (англ. database mirroring) — это технология обеспечения отказоустойчивости и высокой доступности систем управления базами данных (СУБД), основанная на поддержании синхронной или асинхронной копии базы данных на отдельном сервере (зеркале). Основная цель зеркалирования — минимизация времени простоя при сбое основного сервера и предотвращение потери данных путём автоматического переключения на резервную копию.

История

Концепция зеркального отображения данных возникла в 1980-х годах в контексте систем хранения данных (SAN) и кластеризации. В базах данных технология получила развитие с ростом требований к непрерывности бизнеса. В 2000-х годах Microsoft внедрила зеркалирование в SQL Server 2005 как встроенный механизм высокой доступности. В Oracle аналогичная функциональность реализована через Data Guard, а в PostgreSQL — через потоковую репликацию (streaming replication), которая фактически выполняет ту же задачу. В MySQL зеркалирование часто реализуется через кластеризацию (NDB Cluster) или сторонние инструменты.

Принцип работы

Зеркальное отображение предполагает наличие двух экземпляров СУБД: основного (principal) и зеркального (mirror). Все изменения данных, выполняемые на основном сервере, передаются на зеркальный сервер и применяются к его копии базы данных. Процесс передачи и применения изменений называется воспроизведением (redo). В зависимости от режима синхронизации различают:

Для автоматического переключения при отказе основного сервера используется сервер-свидетель (witness) — третий, обычно менее мощный, узел, который контролирует состояние обоих серверов и инициирует переключение (failover) при обнаружении неработоспособности основного. В некоторых реализациях (например, в SQL Server) свидетель обязателен для автоматического переключения; в других (PostgreSQL) автоматизация достигается через внешние менеджеры кластера (Patroni, Pacemaker).

Виды зеркалирования

По степени синхронизации

По топологии

Архитектура и компоненты

Типовая архитектура зеркалирования включает:

Преимущества

Недостатки и ограничения

Применение

Зеркальное отображение баз данных используется в критически важных информационных системах:

Альтернативные технологии

Примеры реализации в популярных СУБД

Безопасность

При зеркалировании данные передаются по сети, поэтому требуется шифрование канала (SSL/TLS) и аутентификация узлов. В противном случае возможен перехват или подмена данных. Также необходимо обеспечить физическую защиту зеркального сервера и контроль доступа к журналам транзакций.

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →