История предупреждений о зеркалировании SQL Server 2005 - PullRequest
1 голос
/ 20 августа 2010

У нас установлено зеркалирование между двумя стандартными выпусками SQL Server 2005. Есть также зеркальные оповещения, настроенные следующим образом: Зеркальное отображение БД (соединение с зеркалом потеряно) Зеркальное отображение БД (связь с потерянным принципалом) Зеркальное отображение БД (основной работающий подвергается) Зеркальное отображение БД (Synchronizing Mirror) Зеркальное отображение БД (Синхронизация принципала) Затраты на зеркальное принятие превышают порог (ЗЕРКАЛО) Самая старая неотправленная транзакция превышает порог (ПРИНЦИП) Не восстановленный журнал превышает порог (ЗЕРКАЛО) Неотправленный лог превышает порог (ПРИНЦИП)

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

Я подумал, что эта информация должна быть в таблице, и обнаружил, что это таблица msdb.dbo.dbm_monitor_data. Он содержит такие данные, как log_flush_rate, send_queue_size, send_rate, redo_queue_size, redo_rate ,action_delay и Transactions_per_sec с именами базы данных. Тогда я задавался вопросом, как заполняется эта таблица. Для этого я обнаружил, что задание мониторинга зеркального отображения, которое SQL-сервер создает «Задание монитора зеркального отображения базы данных», запускает процедуру sp sp_dbmmonitorupdate, которая заполняет эту таблицу из счетчиков зеркалирования perfmon. Эта работа выполняется каждую минуту.

Предупреждение было сгенерировано, например, в 11:23:52. Задания выполняются только раз в минуту, но все же удалось получить данные в 11:23:00, а затем в 11:23:52 (когда было сгенерировано предупреждение), что дважды в минуту.

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

Проблема: Как я могу узнать, почему эта таблица была обновлена ​​без графика? что вызвало его население? Кто-нибудь знает, какая таблица содержит данные истории оповещений?

ПРИМЕЧАНИЕ. Задания перестроения индекса не выполнялись, а пороги зеркалирования были установлены, как показано на следующем снимке экрана: alt text

Может кто-нибудь помочь, пожалуйста?

заранее спасибо

1 Ответ

0 голосов
/ 27 августа 2010

Ответ: sp_dbmmonitorupdate вызывает ошибки, которые, в свою очередь, вызывают предупреждения и, следовательно, заполняют таблицу. Я копался во всех хранимых процедурах и таблицах, чтобы найти это. : -)

...