大家好,我有一个问题,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 State = 8
我也确保服务代理为msdb和所有镜像数据库启用,但我仍然无法得到这个工作基本上警报永远不会触发。 我正在testing只有警报function,我甚至还没有在代理作业中添加。 我通过右键单击我的镜像数据库并强制它进行故障转移来testing。 任何帮助这个问题将不胜感激
基于你的问题中的查询,事件只会在自动故障转移(状态= 8)时触发。 如果您希望WMI事件在手动故障转移中存档(如在testing中),则还需要检查state = 7,这是手动故障转移的状态。
要检查手动故障转移和自动故障转移,您的查询将显示为:
SELECT * FROM DATABASE_MIRRORING_STATE_CHANGE WHERE DatabaseName ='testmove'AND State 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