Приостановка и возобновление зеркального отображения базы данных (SQL Server)

Применимо к:SQL Server

Владелец базы данных может приостанавливать и возобновлять сеанс зеркального отображения базы данных в любое время. Приостановление сохраняет состояние сеанса, при этом приостанавливается зеркальное отображение. Во время пиковых нагрузок приостановление может способствовать повышению производительности основного сервера.

Когда сеанс приостанавливается, основная база данных остается доступной. Приостановленный сеанс зеркального отображения переходит в состояние SUSPENDED, зеркальная база данных перестает соответствовать основной, что ставит под угрозу сохранность данных в основной базе.

Рекомендуется как можно быстрее возобновить приостановленный сеанс, поскольку во время приостановки зеркального отображения базы данных журнал транзакций не может быть усечен. Таким образом, если сеанс зеркального отображения базы данных приостанавливается на долгое время, журнал транзакций может заполниться до конца, и база данных станет недоступной. Объяснение причин этого см. далее в пункте «Как приостановка и возобновление влияют на усечение журнала» данного раздела.

Важно!

Следуя принудительному обслуживанию, зеркальное отображение приостанавливается, когда исходный основной сервер заново выполняет подключение. Возобновление зеркального отображения в данной ситуации может привести к потере данных исходным основным сервером. Дополнительные сведения о том, как действовать при возможной потере данных, см. в разделе Database Mirroring Operating Modes.

В этом разделе.

Влияние приостановки и возобновления на усечение журнала

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

При возобновлении сеанса основной сервер немедленно начинает отправлять накопленные записи журнала на зеркальный сервер. Когда зеркальный сервер подтверждает, что он поставил в очередь запись журнала, соответствующую самой старой автоматической контрольной точке, основной сервер усекает журнал основной базы данных до этой контрольной точки. Зеркальный сервер усекает очередь повторов до этой же записи журнала. По мере повторения этого процесса для каждой последовательной контрольной точки журнал постепенно усекается от точки к точке.

Примечание.

Дополнительные сведения о контрольных точках и усечении журнала см. в разделе Контрольные точки базы данных (SQL Server).

Избежание переполнения журнала транзакций

Если журнал заполняется до конца (достигается максимальный размер или на экземпляре сервера не хватает пространства), база данных не позволяет обновить данные. Этого можно избежать двумя способами.

  • Возобновить сеанс зеркального отображения базы данных до полного заполнения журнала или расширить пространство для журнала. После возобновления сеанса зеркального отображения базы данных основной сервер отправляет накопленный активный журнал зеркальному серверу и переводит зеркальную базу данных в состояние SYNCHRONIZING. После этого зеркальный сервер сбрасывает журнал на диск и начинает его воспроизведение.

  • Остановить зеркальное отображение базы данных, отключив зеркалирование.

    Когда сеанс зеркального отображения не приостанавливается, а отменяется, все сведения о нем удаляются. На каждом экземпляре сервера-участника остается собственная копия базы данных. При восстановлении предыдущей копии зеркала она будет иметь расхождения с бывшей основной базой данных и будет отставать от нее на время приостановки зеркального отображения. Дополнительные сведения см. в разделе Удаление зеркального отображения базы данных (SQL Server).

Связанные задачи

Приостановление или возобновление зеркального отображения базы данных

Остановка зеркального отображения базы данных

См. также

ALTER DATABASE (Transact-SQL)
Зеркальное отображение базы данных (SQL Server)
Удаление зеркального отображения базы данных (SQL Server)