Состояния зеркального отображения (SQL Server)

Применимо к: даSQL Server (все поддерживаемые версии)

Во время сеанса зеркального отображения база данных всегда находится в определенном состоянии ( состояние зеркального отображения). Состояние базы данных отражает состояние соединения, поток данных и различия между данными, которые имеются у участников. Сеанс зеркального отображения базы данных принимает такое же состояние, что и у основной базы данных.

На всем протяжении сеанса зеркального отображения базы данных экземпляры сервера контролируют друг друга. Состояние зеркального отображения используется участниками для наблюдения за базой данных. Основная и зеркальная базы данных всегда находятся в одинаковом состоянии, за исключением состояния PENDING_FAILOVER. При наличии в сеансе следящего сервера он контролируется каждым из участников при помощи его состояния соединения (CONNECTED или DISCONNECTED).

База данных может находиться в одном из следующих состояний зеркального отображения.

Состояние зеркального отображения. Описание
SYNCHRONIZING Содержимое зеркальной базы данных отстает от содержимого основной базы данных. Основной сервер отправляет записи журнала на зеркальный сервер, который применяет эти изменения к зеркальной базе данных для выполнения наката.

В начале сеанса зеркального отображения базы данных она находится в состоянии SYNCHRONIZING. Основной сервер обрабатывает базу данных, а зеркальный сервер пытается таким же образом обрабатывать зеркальную базу данных.
SYNCHRONIZED Когда зеркальный сервер добивается такого же состояния базы данных, как на основном сервере, состояние зеркального отображения меняется на SYNCHRONIZED. База данных сохраняет данное состояние, пока основной сервер продолжает отправлять изменения на зеркальный сервер, который в свою очередь продолжает применять изменения к зеркальной базе данных.

Если для безопасности транзакций установлено значение FULL, в состоянии SYNCHRONIZED поддерживается как автоматический переход на другой ресурс, так и переход на другой ресурс вручную, при этом не происходит потеря данных.

Если безопасность транзакций отключена, всегда возможна потеря данных, даже в состоянии SYNCHRONIZED.

В SQL Server Management Studio состояние базы данных будет отображаться как "Восстановление". Чтобы узнать фактическое состояния, запросите столбец mirroring_state_desc в sys.database_mirroring.
SUSPENDED Зеркальное отображение базы данных недоступно. Основная база данных запущена, но не отправляет никаких журналов на зеркальный сервер; состояние, называемое выполнением без поддержки, возникает после отработки отказа.

Когда в результате ошибок повтора или действий администратора сеанс временно прекращается, он переходит в состояние SUSPENDED.

SUSPENDED является постоянным состоянием, нечувствительным к завершению работы участников и их запуску.
PENDING_FAILOVER Это состояние имеет место только на основном сервере после начала отработки отказа, но до того, как сервер взял на себя роль зеркального.

Если инициируется отработка отказа, основная база данных переходит в состояние PENDING_FAILOVER, немедленно закрывает все пользовательские подключения и берет на себя роль зеркальной базы данных.
DISCONNECTED Один участник потерял связь с другим участником.

См. также:

Наблюдение за зеркальным отображением базы данных (SQL Server)