Привет всем, у меня возникла проблема с настройкой предупреждения WMI, которое я хотел бы использовать с зеркальным отображением базы данных. Я использую Windows 2008 Enterprise X64 с Server 2008 Enterprise X64, также на SQL Server установлен SP1. Обычно я нажимаю на предупреждение, выбираю WMI, после чего набираю приведенный ниже оператор SQL.
ВЫБРАТЬ * ИЗ DATABASE_MIRRORING_STATE_CHANGE, ГДЕ DatabaseName = 'testmove' И Состояние = 8
Я также убедился, что сервисный брокер включен для msdb и всех зеркальных баз данных, но я все еще не могу заставить его работать, в основном предупреждение никогда не срабатывает. Я тестирую только функции оповещения, которые я еще даже не добавил в работу агента. Я проверил это, щелкнув правой кнопкой мыши мою зеркальную базу данных и заставив ее переключиться. Любая помощь с этой проблемой будет очень признательна
Основываясь на запросе в вашем вопросе, событие будет срабатывать только при автоматическом переключении при отказе (состояние = 8). Если вы хотите, чтобы событие WMI регистрировалось при ручной отработке отказа, как в вашем тесте, вам также необходимо проверить состояние = 7, которое является состоянием ручной отработки отказа.
Чтобы проверить как ручную, так и автоматическую отработку отказа, ваш запрос будет выглядеть так:
ВЫБРАТЬ * ИЗ DATABASE_MIRRORING_STATE_CHANGE, ГДЕ DatabaseName = 'testmove' И состояние В (7,8)
Дополнительную информацию можно найти здесь: Класс события изменения состояния зеркального отображения базы данных
Какой режим вы используете: High Safety или High Performance? Высокая производительность требует принудительного обслуживания.
"Зеркальное отображение остановлено в зеркальной базе данных с использованием ALTER DATABASE <dbname> SET PARTNER OFF
. Затем база данных зеркального отображения восстанавливается с помощью RESTORE DATABASE <dbname> WITH RECOVERY
. Когда основной сервер станет доступным, необходимо будет восстановить зеркальное отображение, на этот раз в обратном направлении ». Раздел 11.5.4 «Сценарии сбоя», «Администрирование SQL Server 2008 в действии», Род Колледж
USE MASTER
GO
ALTER DATABASE [DATABASE1] SET PARTNER OFF
RESTORE DATABASE [DATABASE1] WITH RECOVERY
GO
ALTER DATABASE [DATABASE1] SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS
GO