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

Область применения:SQL Server

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

Во время сеанса зеркалирования можно отслеживать отражённую базу данных, чтобы проверить, передаются ли данные и насколько эффективно. Для контроля за одной или несколькими зеркальными базами данных на экземпляре сервера можно воспользоваться монитором зеркального отображения баз данных или системными хранимыми процедурами sp_dbmmonitor .

Задание мониторинга зеркального отображения базы данных, Database Mirroring Monitor Job, работает в фоновом режиме независимо от Database Mirroring Monitor. Агент SQL Server через регулярные интервалы вызывает задание Database Mirroring Monitor Job; по умолчанию — раз в минуту, и это задание вызывает хранимую процедуру, которая обновляет состояние зеркального отображения. Если вы используете SQL Server Management Studio для запуска сеанса зеркалирования, автоматически создается задание Database Mirroring Monitor Job. Однако, если для запуска зеркалирования вы используете только ALTER DATABASE<database_name>SET PARTNER, необходимо создать задание, запустив хранимую процедуру.

В этой теме:

Наблюдение за состоянием зеркального отображения

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

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

  • Убедитесь, что зеркальное отображение работает.

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

  • Определить, согласована ли зеркальная база данных с основной базой данных.

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

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

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

  • Сравнить текущую производительность с прежней производительностью.

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

  • Устранить причину снижения потока данных между участниками зеркального отображения.

  • Установить пороги предупреждений для ключевых метрик производительности.

    Если новая строка состояния содержит значение, превышающее порог, в журнал событий Windows записывается информационное событие. Системный администратор может вручную настроить предупреждения по этим событиям. Дополнительные сведения см. в статье Использование пороговых значений предупреждений и оповещений в метриках производительности зеркального отображения (SQL Server).

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

Состояние зеркального отображения можно контролировать с помощью монитора зеркального отображения баз данных или системной хранимой процедуры sp_dbmmonitorresults . Эти средства для наблюдения за зеркальным отображением любой базы данных на экземпляре локального сервера могут использовать как системные администраторы (то есть члены предопределенной роли сервера sysadmin ), так и пользователи, добавленные в предопределенную роль dbm_monitor базы данных msdb системным администратором. При использовании любого из этих средств системный администратор может также вручную обновлять состояние зеркального отображения.

Примечание.

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

  • Монитор зеркального отображения баз данных.

    Монитор зеркального отображения баз данных представляет собой графический пользовательский интерфейс, позволяющий системным администраторам просматривать и обновлять состояние и настраивать пороги предупреждений на нескольких ключевых метриках производительности. Члены предопределенной роли базы данных dbm_monitor также могут использовать монитор зеркального отображения баз данных для просмотра самых последних строк таблицы состояния зеркального отображения, однако обновлять таблицу состояния они не могут.

    На мониторе отображается состояние, включая показатели производительности выбранной базы данных на вкладке Состояние . Содержимое этой страницы поступает как с основного, так и с зеркального экземпляра сервера. Эта страница обновляется асинхронно по мере получения данных о состоянии через отдельные соединения с экземплярами основного и зеркального серверов. Монитор пытается обновлять таблицу состояния с интервалом в 30 секунд. Обновление завершается успешно только в случае, если таблица не обновлялась в течение 15 секунд, а пользователь является членом предопределенной роли сервера sysadmin . Дополнительные сведения о данных, отображаемых на странице Состояние см. в подразделе « Состояние, отображаемое монитором зеркального отображения баз данных» далее в этом разделе.

    Основные сведения об интерфейсе монитора зеркального отображения баз данных см. в разделе Database Mirroring Monitor Overview. Сведения о запуске монитора зеркального отображения базы данных см. в статье Запуск монитора зеркального отображения баз данных (среда SQL Server Management Studio).

  • Системные хранимые процедуры

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

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

    Процедура Описание
    sp_dbmmonitoraddmonitoring Создает задание, периодически обновляющее сведения о состоянии каждой зеркальной базы данных на экземпляре сервера.
    sp_dbmmonitorchangemonitoring Изменяет значение параметра мониторинга зеркального отображения базы данных.
    sp_dbmmonitorhelpmonitoring Возвращает текущий интервал обновления.
    sp_dbmmonitorresults Возвращает строки состояния для контролируемой базы данных и позволяет выбрать, будет ли эта процедура получать последнее состояние заблаговременно.
    sp_dbmmonitordropmonitoring Останавливает и удаляет задание мониторинга зеркалирования для всех баз данных в экземпляре сервера.

    Системные хранимые процедуры dbmmonitor можно использовать как дополнение к монитору зеркального отображения баз данных. Например, даже если мониторинг был настроен при помощи процедуры sp_dbmmonitoraddmonitoring, для просмотра состояния может использоваться монитор зеркального отображения баз данных.

Как работает мониторинг

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

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

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

Таблица состояния может обновляться автоматически или вручную системным администратором с минимальным интервалом обновления 15 секунд. Минимальный интервал 15 секунд предотвращает перегрузку экземпляров сервера запросами о состоянии.

Таблица состояния обновляется автоматически как монитором зеркального отображения баз данных, так и заданием монитора зеркального отображения баз данных (если она запущена). Задание монитора зеркального отображения баз данных по умолчанию обновляет эту таблицу раз в минуту (системный администратор может изменять интервал от 1 до 120 минут). Для сравнения: монитор зеркального отображения баз данных обновляет эту таблицу автоматически каждые 30 секунд. Для выполнения этих обновлений как Задание монитора зеркального отображения баз данных , так и монитор зеркального отображения баз данных вызывают процедуру sp_dbmmonitorupdate.

При первом запуске процедуры sp_dbmmonitorupdate создается таблица состояний зеркального отображения баз данных и предопределенная роль базы данных dbm_monitor в базе данных msdb . Хранимая процедура sp_dbmmonitorupdate обычно обновляет состояние зеркального отображения базы данных, вставляя новую строку в таблицу состояний для каждой зеркально отображаемой базы данных в экземпляре сервера; дополнительные сведения см. далее в этом разделе, в статье "Таблица состояний зеркального отображения базы данных". Эта процедура также оценивает метрики производительности в новых строках и отсекает строки, превышающие текущий срок хранения (по умолчанию — 7 дней). Дополнительные сведения см. в статье sp_dbmmonitorupdate (Transact-SQL).

Примечание.

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

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

Задание, контролирующее зеркальное отображение базы данных, Задание монитора зеркального отображения баз данных, работает независимо от монитора зеркального отображения баз данных. Задание монитора зеркального отображения базы данных создается автоматически только в том случае, если для запуска сеанса зеркального отображения используется SQL Server Management Studio. Если команды ALTER DATABASEdatabase_nameSET PARTNER всегда используются для запуска зеркалирования, задание существует только в том случае, если системный администратор выполняет хранимую процедуру sp_dbmmonitoraddmonitoring.

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

По умолчанию агент SQL Server раз в минуту вызывает задание "Монитор зеркального отображения базы данных", а это задание вызывает sp_dbmmonitorupdate для обновления таблицы состояния. Системные администраторы могут изменить периодичность с помощью системной хранимой процедуры sp_dbmmonitorchangemonitoring и просмотреть текущий период обновления с помощью системной хранимой процедуры sp_dbmmonitorchangemonitoring . Дополнительные сведения см. в статьях sp_dbmmonitoraddmonitoring (Transact-SQL) и sp_dbmmonitorchangemonitoring (Transact-SQL).

Контроль над состоянием зеркального отображения базы данных (системными администраторами)

Члены предопределенной роли сервера sysadmin могут просматривать и обновлять таблицу состояния.

  • Использование монитора зеркального отображения баз данных.

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

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

    Дополнительные сведения о метриках страницы Состояние см. в подразделе «Метрики производительности, отображаемые монитором зеркального отображения баз данных» далее в этом разделе.

  • Использование процедуры sp_dbmmonitorresults.

    Системные администраторы могут использовать системную хранимую процедуру sp_dbmmonitorresults для просмотра и, при необходимости, для обновления таблицы состояния, если она не была обновлена в предыдущие 15 секунд. Эта процедура в свою очередь вызывает процедуру sp_dbmmonitorupdate и возвращает одну или более строк журнала, в зависимости от количества, запрашиваемого при вызове процедуры. Дополнительные сведения о состоянии в результирующем наборе см. в статье sp_dbmmonitorresults (Transact-SQL).

Мониторинг состояния зеркалирования базы данных (для членов роли dbm_monitor)

Как уже упоминалось, при первом выполнении процедуры sp_dbmmonitorupdate в базе данных msdb создается предопределенная роль dbm_monitor . Члены предопределенной роли базы данных dbm_monitor могут просматривать текущее состояние зеркального отображения при помощи монитора зеркального отображения баз данных или хранимой процедуры sp_dbmmonitorresults . Но эти пользователи не могут обновлять таблицу состояния. Чтобы узнать давность отображаемого состояния, пользователь может посмотреть на время в метках Основной журнал (<время>) и Зеркальный журнал (<время>) на странице Состояние.

Члены предопределённой роли базы данных dbm_monitor зависят от задания монитора зеркального отображения базы данных, которое регулярно обновляет таблицу состояния. Если задание не существует или агент SQL Server остановлен, сведения о состоянии становятся все более устаревшими и могут больше не отражать конфигурацию сеанса зеркального отображения. Например, после переключения при отказе может показаться, что обоим партнёрам назначена одна и та же роль — основного или зеркального сервера, либо текущий основной сервер может отображаться как зеркальный, в то время как текущий зеркальный сервер отображается как основной.

Удаление задания монитора зеркального отображения баз данных

Задание монитора зеркального отображения базы данных Database Mirroring Monitor Job существует, пока его не удалят. Задача мониторинга должна находиться под управлением системного администратора. Чтобы удалить Задание монитора зеркального отображения баз данных, используйте процедуру sp_dbmmonitordropmonitoring. Дополнительные сведения см. в статье sp_dbmmonitordropmonitoring (Transact-SQL).

Состояние, отображаемое монитором зеркального отображения баз данных

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

Примечание.

Основные сведения о мониторе зеркального отображения баз данных и странице Состояние см. в подразделе " Средства для контроля над состоянием зеркального отображения базы данных" выше в этом разделе.

Краткая информация о каждом из них приведена в следующих разделах.

Участники

На странице Состояние отображаются следующие сведения о каждом из участников.

  • Экземпляр сервера

    Имя экземпляра сервера, состояние которого отображается в строке Состояние .

  • Текущая роль.

    Текущая роль этого экземпляра сервера. Возможные состояния:

    • Принципал

    • Зеркало

  • Состояние зеркального отображения.

    Возможные состояния:

    • Неизвестно

    • Синхронизация

    • Синхронизировано

    • Приостановлена

    • Отключено

  • Соединение со свидетелем

    Состояние подключения свидетеля. Возможные состояния:

    • Неизвестно

    • Подключено

    • отключен.

Журнал основного сервера

На странице Состояние отображаются следующие сведения о состоянии журнала на основном сервере на указанный момент времени.

  • Неотправленный журнал

    Объем данных журнала в очереди на отправку в килобайтах (КБ).

  • Самая старая неотправленная транзакция

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

  • Время на отправку журнала (предполагаемое).

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

  • Текущая скорость отправки

    Скорость, с которой транзакции отправляются на экземпляр зеркального сервера, в КБ в секунду.

  • Текущая скорость новых транзакций.

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

Вход на зеркальный сервер

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

  • Невосстановленный журнал

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

  • Время на восстановление журнала (предполагаемое).

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

  • Текущая скорость восстановления

    Скорость, с которой транзакции восстанавливаются в зеркальной базе данных (в КБ в секунду).

Сеанс дублирования

Кроме того, на странице Состояние отображаются следующие сведения о сеансе зеркального отображения.

  • Затраты на фиксацию изменений на зеркальном сервере.

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

  • Время, необходимое для отправки и восстановления всего текущего журнала (предполагаемое).

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

  • Адрес свидетеля

    Сетевой адрес экземпляра сервера-свидетеля. Сведения о формате этого адреса см. в разделе Указание сетевого адреса сервера (зеркальное отображение базы данных).

  • Режим работы

    Режим работы сеанса зеркального отображения базы данных.

    • Высокая производительность (асинхронный)

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

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

Дополнительные источники сведений о зеркальной базе данных

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

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

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

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

  • sys.database_mirroring

    Это представление отображает метаданные зеркального отображения базы данных для каждой зеркально отображаемой базы данных на экземпляре сервера. Дополнительные сведения см. в разделе sys.database_mirroring (Transact-SQL).

  • sys.database_mirroring_endpoints

    Представление каталога sys.database_mirroring_endpoints отображает сведения о конечной точке зеркального отображения базы данных на экземпляре сервера. Дополнительные сведения см. в статье sys.database_mirroring_endpoints (Transact-SQL).

  • sys.database_mirroring_witnesses

    Это представление каталога отображает метаданные зеркального отображения базы данных для каждого сеанса, в котором экземпляр сервера является свидетелем. Дополнительные сведения см. в статье sys.database_mirroring_witnesses (Transact-SQL).

  • sys.dm_db_mirroring_connections

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

    Дополнительные сведения см. в статье sys.dm_db_mirroring_connections (Transact-SQL).

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

Счетчики производительности позволяют отслеживать производительность при зеркальном отображении баз данных. Например, можно просмотреть счетчик Задержка транзакции , чтобы узнать, влияет ли зеркальное отображение базы данных на производительность основного сервера, или просмотреть счетчики Очередь на повтор и Очередь отправки журнала , чтобы узнать, насколько быстро зеркальная база данных воспроизводит изменения основной базы данных. Можно проверить счетчик Отправлено байт журнала/с, чтобы отслеживать объем журнала, отправляемого за секунду.

В Мониторе производительности на любом из партнеров счетчики производительности доступны в объекте производительности зеркального отображения базы данных (SQLServer:Database Mirroring). Дополнительные сведения см. в статье SQL Server, Database Mirroring Object.

Запуск системного монитора

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

Уведомление о событии является особым типом объекта базы данных. Уведомления о событиях выполняются в ответ на различные инструкции языка определения данных Transact-SQL (DDL) и события трассировки SQL и отправляют сведения о событиях сервера и базы данных в службу Service Broker.

При зеркальном отображении базы данных доступны следующие события.

  • Класс событийDatabase Mirroring State Change

    Указывает, что состояние зеркального отображения зеркальной базы данных изменилось. Дополнительные сведения см. в статье Database Mirroring State Change Event Class.

  • Класс событийAudit Database Mirroring Login

    Содержит сведения о сообщениях аудита, связанных с безопасностью транспорта зеркального отображения базы данных. Дополнительные сведения см. в статье Audit Database Mirroring Login Event Class.

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

Хранимые процедуры

См. также

Зеркальное отображение базы данных (SQL Server)
Основные понятия о поставщике WMI для событий сервера