WMI Notfication和数据库镜像

大家好,我有一个问题,configuration一个WMI警报,我想用数据库镜像。 我在Windows 2008 Enterprise X64上运行Server 2008 Enterprise X64,同时SQL Server安装了SP1。 基本上,我点击提醒selectWMI后,我键入下面的SQL语句

SELECT * FROM DATABASE_MIRRORING_STATE_CHANGE WHERE DatabaseName ='testmove'AND St​​ate = 8

我也确保服务代理为msdb和所有镜像数据库启用,但我仍然无法得到这个工作基本上警报永远不会触发。 我正在testing只有警报function,我甚至还没有在代理作业中添加。 我通过右键单击我的镜像数据库并强制它进行故障转移来testing。 任何帮助这个问题将不胜感激

基于你的问题中的查询,事件只会在自动故障转移(状态= 8)时触发。 如果您希望WMI事件在手动故障转移中存档(如在testing中),则还需要检查state = 7,这是手动故障转移的状态。

要检查手动故障转移和自动故障转移,您的查询将显示为:

SELECT * FROM DATABASE_MIRRORING_STATE_CHANGE WHERE DatabaseName ='testmove'AND St​​ate IN(7,8)

其他信息可以在这里find: 数据库镜像状态更改事件类

您使用哪种模式:高安全性还是高性能? 高性能需要强制服务。

“使用ALTER DATABASE <dbname> SET PARTNER OFF在镜像数据库上ALTER DATABASE <dbname> SET PARTNER OFF镜像。然后使用RESTORE DATABASE <dbname> WITH RECOVERY镜像数据库。当主体服务器变为可用时,镜像将需要重新build立,此时相反的方向“。 第11.5.4节“失败场景”,SQL Server 2008 Administration in Action,Rod Colledge

 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