Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Замечание
Эта функция будет удалена в будущей версии Microsoft SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Вместо этого используйте группы доступности Always On.
Зеркальное отображение базы данных — это решение для повышения доступности базы данных SQL Server. Зеркальное отображение каждой базы данных осуществляется отдельно и работает только с теми базами данных, которые используют модель полного восстановления.
Это важно
Сведения о поддержке зеркального отображения базы данных, ограничений, предварительных требований, рекомендаций по настройке серверов партнеров и рекомендаций по развертыванию зеркального отображения базы данных см. в разделе предварительные требования, ограничения и рекомендации для зеркального отображения базы данных.
Преимущества зеркального отображения базы данных
Зеркальное отображение базы данных — это простая стратегия, которая предлагает следующие преимущества:
Повышает доступность базы данных.
В случае аварии в режиме повышенной безопасности с автоматической отработкой отказа резервная копия базы данных быстро активируется без потери данных. В других режимах работы администратор базы данных имеет возможность принудительного восстановления (с возможной потерей данных) на резервную копию базы данных. Дополнительные сведения см. в разделе "Переключение ролей" далее в этом разделе.
Повышает защиту данных.
Зеркальное отображение базы данных обеспечивает полную или почти полную избыточность данных в зависимости от того, является ли рабочий режим высоким уровнем безопасности или высокой производительностью. Дополнительные сведения см. в разделе "Режимы работы" далее в этом разделе.
Партнер зеркального отображения базы данных, работающий в SQL Server 2008 Enterprise или более поздних версиях, автоматически пытается устранить определенные типы ошибок, которые препятствуют чтению страницы данных. Партнер, который не может прочитать страницу, запрашивает новую копию от другого партнера. Если этот запрос завершился успешно, то нечитаемая страница заменяется копией, в результате чего ошибка обычно устраняется. Дополнительные сведения см. в разделе "Автоматическое восстановление страницы" (для групп доступности и зеркального отображения баз данных).
Улучшает доступность рабочей базы данных во время обновления.
Чтобы свести к минимуму время простоя зеркальной базы данных, можно последовательно обновить экземпляры SQL Server, которые используются в размещении партнёров по отказоустойчивости. Это приведет к простою только на время одного переключения на резервную систему. Эта форма обновления называется последовательной. Дополнительные сведения см. в разделе "Установка пакета обновления" в системе с минимальным временем простоя для зеркальных баз данных.
Термины и определения зеркального отображения базы данных
автоматический переход на другой ресурс
Процесс, с помощью которого, когда основной сервер становится недоступным, зеркальный сервер берет на себя роль основного сервера и переносит ее копию базы данных в режим "в сети" в качестве основной базы данных.
Партнеры по резервированию
Два экземпляра сервера (основной сервер или зеркальный сервер), которые выполняют роль переключения ролей для зеркальной базы данных.
принудительное обслуживание
Переключение, инициированное владельцем базы данных при сбое основного сервера, передает управление зеркальной базе данных, пока она находится в неизвестном состоянии.
Высокопроизводительный режим
Сеанс зеркального отображения базы данных работает асинхронно и использует только основной сервер и зеркальный сервер. Единственная форма переключения ролей — принудительное обслуживание (с возможной потерей данных).
Режим высокой безопасности
Сеанс зеркального отображения базы данных работает синхронно и, при необходимости, использует сервер-свидетель, а также основной и зеркальный серверы.
переход на другой ресурс вручную
Переключение при отказе, инициированное владельцем базы данных, в тот момент, когда основной сервер продолжает работать, которое передает обслуживание из основной базы данных в зеркальную базу данных в синхронизированном состоянии.
зеркальная база данных
Копия базы данных, которая обычно полностью синхронизирована с основной базой данных.
зеркальный сервер
В конфигурации зеркалирования базы данных серверный экземпляр, на котором находится зеркальная база данных.
зеркальный сервер
В конфигурации репликации базы данных серверный экземпляр, на котором размещена зеркальная база данных.
основная база данных
В зеркальном отображении база данных с возможностью чтения и записи, чьи записи журнала транзакций применяются к её копии, предназначенной только для чтения (зеркальная база данных).
основной сервер
В зеркальном отображении базы данных партнер, база данных которого в настоящее время является основной базой данных.
Очередь повтора
Записи журнала транзакций, которые находятся в ожидании на диске зеркального сервера.
роль
Основной сервер и зеркальный сервер выполняют дополняющие роли основного и зеркального. При необходимости роль свидетеля исполняется третьим экземпляром сервера.
переключение ролей
Перенятие основной роли зеркалом.
Очередь отправки
Неотправленные записи журнала транзакций, накопленные на диске основного сервера.
сессия
Связь, возникающая во время зеркального отображения базы данных между основным сервером, зеркальным сервером и сервером-свидетелем (при наличии).
После начала или возобновления сеанса зеркального отображения записи журнала основной базы данных, накопленные на сервере, отправляются на зеркальный сервер. Этот сервер записывает их на диск максимально быстро, чтобы синхронизироваться с главным сервером.
Безопасность транзакций
Свойство базы данных для зеркального отображения, определяющее, работает ли сеанс зеркального отображения базы данных синхронно или асинхронно. Существует два уровня безопасности: FULL и OFF.
Свидетель
Для использования только в режиме высокой безопасности, особая конфигурация SQL Server, которая позволяет зеркальному серверу определить, когда начать автоматическую отработку отказа. В отличие от двух резервных партнеров, следящий сервер не обслуживает базу данных. Поддержка автоматического переключения при отказе — единственная роль свидетеля.
Обзор зеркального отображения базы данных
Зеркальное отображение базы данных поддерживает две копии одной базы данных, которая должна находиться на разных экземплярах сервера ядра СУБД SQL Server. Как правило, эти экземпляры сервера находятся на компьютерах в разных расположениях. Запуск зеркального отображения базы данных в базе данных инициирует связь, известную как сеанс зеркального отображения базы данных между этими экземплярами сервера.
Один экземпляр сервера обслуживает базу данных клиентам ( основной сервер). Другой экземпляр выступает в качестве горячего или теплого резервного сервера (зеркального сервера) в зависимости от конфигурации и состояния сеанса зеркального отображения. При синхронизации сеанса зеркального отображения базы данных зеркальное отображение базы данных предоставляет горячий резервный сервер, поддерживающий быструю отработку отказа без потери данных от зафиксированных транзакций. Если сеанс не синхронизирован, зеркальный сервер обычно доступен как теплый резервный сервер (с возможной потерей данных).
Основные и зеркальные серверы взаимодействуют и сотрудничают в качестве партнеров в сеансе зеркального отображения базы данных. Два партнера выполняют дополнительные роли в сеансе: основную роль и зеркальную роль. В любое время один партнер выполняет основную роль, а другой партнер выполняет зеркальную роль. Каждый партнер описывается как владелец своей текущей роли. Партнер, которому принадлежит основная роль, называется основным сервером, а его копия базы данных — текущей основной базой данных. Партнер, которому принадлежит роль зеркального отображения, называется зеркальным сервером, а ее копия базы данных — текущей зеркальной базой данных. При развертывании зеркального отображения базы данных в рабочей среде основная база данных — это рабочая база данных.
Зеркалирование базы данных предполагает воспроизведение каждой операции вставки, обновления и удаления, происходящей в основной базе данных, на зеркальную базу данных как можно быстрее. Выполнение повторных операций осуществляется с помощью отправки потока активных записей журнала транзакций на сервер репликации, который последовательно применяет записи журнала к зеркальной базе данных и делает это как можно быстрее. В отличие от репликации, которая работает на логическом уровне, зеркальное отображение базы данных работает на уровне физической записи журнала. Начиная с SQL Server 2008 основной сервер сжимает поток записей журнала транзакций перед отправкой на зеркальный сервер. Это сжатие журнала происходит во всех сеансах зеркалирования.
Замечание
Указанный экземпляр сервера может быть задействован в нескольких одновременных сеансах зеркального отображения базы данных с одними и теми же или разными участниками. В некоторых сеансах экземпляр сервера может быть участником, в других — наблюдателем. Экземпляр зеркального сервера должен работать в том же выпуске SQL Server.
Режимы работы
Сеанс зеркального отображения базы данных выполняется в синхронном или асинхронном режиме. При асинхронной операции транзакции фиксируются без ожидания зеркального сервера записи журнала на диск, что повышает производительность. При синхронной операции транзакция фиксируется на обоих партнерах, но за счет увеличения задержки транзакций.
Существует два режима работы зеркального отображения. Один из них— режим высокой безопасности поддерживает синхронную операцию. В режиме высокой безопасности при запуске сеанса зеркальный сервер синхронизирует зеркальную базу данных вместе с основной базой данных как можно быстрее. После синхронизации базы данных транзакция фиксируется на обоих участниках за счет повышения риска задержки транзакции.
Второй рабочий режим, высокопроизводительный режим выполняется асинхронно. Зеркальный сервер пытается соответствовать записям в журнале, отправляемым основным сервером. Зеркальная база данных может несколько отставать от основной базы данных. Хотя разрыв между базами данных, как правило, очень мал. Однако разрыв может стать значительным, если основной сервер находится под большой рабочей нагрузкой или система зеркального сервера перегружена.
В режиме высокой производительности, как только основной сервер отправляет запись журнала на зеркальный сервер, основной сервер отправляет подтверждение клиенту. Он не ожидает подтверждения от зеркального сервера. Это означает, что транзакции фиксируются без ожидания записи журнала на диск зеркальным сервером. Такая асинхронная операция позволяет основному серверу выполняться с минимальной задержкой транзакций при потенциальном риске потери данных.
Все сеансы зеркального отображения базы данных поддерживают только один основной сервер и один зеркальный сервер. Эта конфигурация показана на следующем рисунке.
Для режима высокой безопасности с автоматическим переключением на резервный сервер требуется третий экземпляр сервера, известный как свидетель. В отличие от двух партнеров, свидетель не обслуживает базу данных. Свидетель поддерживает автоматическое переключение, проверяя, работает ли основной сервер. Сервер-отражатель инициирует автоматическое переключение на резервный сервер только в том случае, если сервер-отражатель и сервер-свидетель остаются подключенными друг к другу после того, как оба были отключены от основного сервера.
На следующем рисунке показана конфигурация, включающая свидетеля.
Дополнительные сведения см. в разделе "Переключение ролей" далее в этом разделе.
Замечание
Установка нового сеанса зеркального отображения или добавление следящего сервера в существующую конфигурацию зеркального отображения требует, чтобы все участвующие экземпляры сервера выполняли одну и ту же версию SQL Server. Однако при обновлении до SQL Server 2008 или более поздней версии версии участвующих экземпляров SQL Server могут отличаться. Дополнительные сведения см. в статье "Минимизация простоя зеркальных баз данных при обновлении экземпляров сервера".
Режимы безопасности транзакций и работы
Независимо от того, является ли рабочий режим асинхронным или синхронным, зависит от параметра безопасности транзакций. Если вы исключительно используете SQL Server Management Studio для настройки зеркального отображения базы данных, параметры безопасности транзакций настраиваются автоматически при выборе режима работы.
Если вы используете Transact-SQL для настройки зеркального отображения базы данных, необходимо понять, как настроить безопасность транзакций. Безопасность транзакций контролируется свойством SAFETY инструкции ALTER DATABASE. В базе данных, для которой выполняется зеркалирование, режим безопасности — это либо FULL, либо OFF.
Если параметр SAFETY имеет значение FULL, операция зеркального отображения базы данных синхронна после начального этапа синхронизации. Если свидетель установлен в режиме высокой безопасности, сеанс поддерживает автоматическую отработку отказа.
Если параметр SAFETY имеет значение OFF, операция зеркального отображения базы данных асинхронна. Сеанс выполняется в режиме высокой производительности, а параметр WITNESS также должен иметь значение OFF.
Дополнительные сведения см. в статье Database Mirroring Operating Modes.
Переключение ролей
В контексте сеанса зеркального отображения базы данных основные и зеркальные роли обычно взаимозаменяемы в процессе переключения ролей. Переключение ролей включает перенос основной роли на зеркальный сервер. При переключении ролей зеркальный сервер является партнёром по переключению для основного сервера. При переключении роли зеркальный сервер берет на себя основную роль и переносит ее копию базы данных в режим "в сети" в качестве новой основной базы данных. Бывший основной сервер, если он доступен, принимает роль зеркала, а его база данных становится новой зеркальной базой данных. Возможно, роли могут несколько раз взаимозаменяться.
Существуют следующие три формы переключения ролей.
Автоматическое переключение
Для этого требуется режим высокой безопасности и наличие зеркального сервера и следящего сервера. База данных должна быть уже синхронизирована, и сервер-свидетель должен быть подключен к зеркальному серверу.
Роль следящего сервера заключается в том, чтобы проверить, работает ли данный сервер-партнер. Если зеркальный сервер теряет подключение к основному серверу, но следящий сервер по-прежнему подключен к основному серверу, зеркальный сервер не инициирует переключение на резерв. Дополнительные сведения см. в разделе Свидетель зеркального отображения базы данных.
Ручное переключение при отказе
Для этого требуется режим высокой безопасности. Партнеры должны быть подключены друг к другу, и база данных должна быть уже синхронизирована.
Принудительное обслуживание (с возможной потерей данных)
В режиме высокой производительности и режиме высокой безопасности без автоматической отработки отказа принудительное выполнение службы возможно, если основной сервер завершился сбоем, а зеркальный сервер доступен.
Это важно
Режим высокой производительности предназначен для работы без наблюдателя. Но если есть свидетель, принудительное выполнение сервиса требует, чтобы свидетель был подключен к зеркальному серверу.
В любом сценарии переключения ролей, как только новая основная база данных будет подключена к сети, клиентские приложения могут быстро восстанавливаться, повторно подключаясь к базе данных.
Одновременные сеансы
Данный экземпляр сервера может участвовать в нескольких одновременных сеансах зеркального отображения базы данных (один раз на зеркальную базу данных) с одинаковыми или разными экземплярами сервера. Часто экземпляр сервера служит исключительно в качестве партнера или свидетеля во всех сеансах зеркалирования базы данных. Тем не менее, поскольку каждый сеанс не зависит от других сеансов, экземпляр сервера может выступать в качестве партнера в некоторых сеансах и в качестве свидетеля в других сеансах. Например, рассмотрим следующие четыре сеанса между тремя экземплярами сервера (SSInstance_1иSSInstance_2SSInstance_3). Каждый экземпляр сервера служит партнером в некоторых сеансах и в качестве свидетеля в других:
| Экземпляр сервера | Сеанс для базы данных A | Сеанс для базы данных B | Сеанс для базы данных C | Сеанс для базы данных D |
|---|---|---|---|---|
SSInstance_1 |
Свидетель | Партнёр | Партнёр | Партнёр |
SSInstance_2 |
Партнёр | Свидетель | Партнёр | Партнёр |
SSInstance_3 |
Партнёр | Партнёр | Свидетель | Свидетель |
На следующем рисунке показаны два экземпляра сервера, участвующие в качестве партнеров в двух сеансах зеркалирования. Один сеанс предназначен для базы данных с именем Db_1, а другой — для базы данных с именем Db_2.
Каждая из баз данных не зависит от других. Например, экземпляр сервера может быть зеркальным сервером для двух баз данных. Если одна из этих баз данных переключается в режим отказа, экземпляр сервера становится основным сервером для этой базы данных, оставаясь зеркальным сервером для другой базы данных.
В качестве другого примера рассмотрим экземпляр сервера, который является главным сервером для двух или более баз данных, работающих в высоко безопасном режиме с автоматическим переключением на резервный узел. Если экземпляр сервера приходит в состояние сбоя, все базы данных автоматически переключаются на свои соответствующие зеркальные базы данных.
При настройке экземпляра сервера, чтобы он работал как в роли партнера, так и в роли свидетеля, убедитесь, что конечная точка зеркального отображения базы данных поддерживает обе роли (дополнительные сведения см. в разделе «Конечная точка зеркального отображения базы данных» (SQL Server)). Кроме того, убедитесь, что система имеет достаточные средства для снижения конкуренции за ресурсы.
Замечание
Поскольку зеркальные базы данных независимы друг от друга, переключение в случае отказа для баз данных как группы невозможно.
Клиентские подключения
Поддержка подключений клиента для сеансов зеркального отображения базы данных предоставляется поставщиком данных Microsoft .NET для SQL Server. Дополнительные сведения см. в разделе "Подключение клиентов к сеансу зеркального отображения базы данных" (SQL Server).
Влияние приостановки сеанса на основной журнал транзакций
В любое время владелец базы данных может приостановить сеанс. Приостановка сохраняет состояние сеанса при удалении зеркального отображения. При приостановке сеанса основной сервер не отправляет новые записи журнала на зеркальный сервер. Все эти записи остаются активными и накапливаются в журнале транзакций основной базы данных. Пока сеанс зеркального отображения базы данных остается приостановленным, журнал транзакций не может быть усечен. Таким образом, если сеанс зеркального отображения базы данных приостановлен слишком долго, журнал может заполниться.
Дополнительные сведения см. в статье "Приостановка и возобновление зеркального отображения базы данных" (SQL Server).
Настройка сеанса зеркального отображения базы данных
Прежде чем начать сеанс зеркального отображения, владелец базы данных или системный администратор должны создать зеркальную базу данных, настроить конечные точки и имена входа, а в некоторых случаях создать и настроить сертификаты. Дополнительные сведения см. в разделе "Настройка зеркального отображения базы данных" (SQL Server).
Взаимодействие и сосуществование с другими функциями ядра СУБД
Зеркальное отображение базы данных можно использовать со следующими функциями или компонентами SQL Server.
В этом разделе
Предварительные требования, ограничения и рекомендации для зеркального отображения базы данных
Описывает предварительные требования и рекомендации по настройке зеркального отображения базы данных.
Режимы работы зеркального отображения базы данных
Содержит сведения о синхронных и асинхронных режимах работы для сеансов зеркального отображения базы данных и о переключении ролей партнеров во время сеанса зеркального отображения базы данных.
Свидетель зеркального отображения базы данных
Описывает роль свидетеля в зеркальном отображении базы данных, использование одного свидетеля в нескольких сеансах зеркального отображения, рекомендации по программному обеспечению и оборудованию для свидетелей, а также роль свидетеля в автоматическом переключении при отказе. Он также содержит информацию о добавлении или удалении свидетеля.
Переключение ролей во время сеанса зеркального отображения базы данных (SQL Server)
Содержит информацию о переключении ролей партнеров во время сеанса зеркального режима базы данных, включая автоматическую отказоустойчивость, ручное восстановление отказа и принудительное оказание услуг (может привести к потере данных). Кроме того, содержит сведения об оценке прерывания работы службы во время переключения ролей.
Возможные сбои во время зеркального отображения базы данных
Обсуждает физические, операционные системы и проблемы SQL Server, включая жесткие ошибки и мягкие ошибки, которые могут привести к сбою в сеансе зеркального отображения базы данных. Описывает, как механизм времени ожидания зеркального отображения реагирует на мягкие ошибки.
Конечная точка зеркального отображения базы данных (SQL Server)
Обсуждается, как функционирует конечная точка зеркального отображения базы данных.
Настройка зеркального отображения базы данных (SQL Server)
Содержит разделы о предварительных требованиях, рекомендациях и шагах по настройке зеркального отображения базы данных.
Подключение клиентов к сеансу зеркального отображения базы данных (SQL Server)
Содержит разделы, посвященные атрибутам строки подключения клиента и алгоритмам подключения и повторному подключению клиента к зеркальной базе данных.
Приостановка и возобновление зеркального отображения базы данных (SQL Server)
Описывает, что происходит при приостановке зеркального отображения базы данных, включая влияние на усечение журнала транзакций и содержит описания приостановки и возобновления зеркального отображения базы данных.
Удаление зеркального отображения базы данных (SQL Server)
Обсуждается влияние исключения зеркального отображения и содержит описание завершения сеанса.
Наблюдение за зеркальным отображением базы данных (SQL Server)
Содержит сведения об использовании монитора зеркального отображения базы данных или хранимых процедур dbmmonitor для мониторинга зеркального отображения базы данных или сеансов.
Связанные задачи
Задачи конфигурации
Использование среды SQL Server Management Studio
Использование Transact-SQL
Установка зеркального сеанса базы данных с аутентификацией Windows (Transact-SQL)
Настройка зеркальной базы данных для использования надежного свойства (Transact-SQL)
Использование Transact-SQL или SQL Server Management Studio
Минимизация простоя зеркальных баз данных при обновлении экземпляров сервера
Подготовка зеркальной базы данных для зеркального отображения (SQL Server)
Административные задачи
Transact-SQL
Изменение безопасности транзакций в сеансе зеркального отображения базы данных (Transact-SQL)
Отработка отказа вручную сеанса зеркального отображения в базе данных (Transact-SQL)
Принудительное выполнение службы в сеансе зеркального отображения базы данных (Transact-SQL)
Приостановка или возобновление сеанса зеркального отображения базы данных (SQL Server)
Удаление свидетеля из сеанса зеркального отображения базы данных (SQL Server)
SQL Server Management Studio
Ошибочная отработка вручную сеанса зеркалирования баз данных (SQL Server Management Studio)
Приостановка или возобновление сеанса зеркального отображения базы данных (SQL Server)
Удаление свидетеля из сеанса зеркального отображения базы данных (SQL Server)
См. также
Конечная точка зеркального отображения базы данных (SQL Server)
Автоматическое восстановление страниц (для групп доступности и зеркального отображения базы данных)
Диагностика конфигурации зеркального отображения базы данных (SQL Server)
Зеркалирование базы данных: совместимость и сосуществование (SQL Server)
Предварительные требования, ограничения и рекомендации для зеркального отображения базы данных
Общие сведения о группах доступности AlwaysOn (SQL Server)
Сведения о доставке журналов (SQL Server)