我有3个数据库(一名校长,一个镜子和一个证人),我试图使该系统尽可能容忍最大。

因此,我正在考虑做一些额外的编码以保护我免受证人的损失。

我想跟踪sys.database_mirroring数据库中的irriroring_state_desc,以防万一它从同步变为断开连接,我会知道将其推广到本金,但是如果它从同步变为脱节为脱节是可以推广的(可以推广它(我在高安全模式下工作)

我的第一种方法是让自定义的Windows服务监视此表...但是这样做,我对数据库进行了很多不必要的选择。

所以我不过,也许触发会是我想要的...但是我只是坚持

CREATE TRIGGER modify_state ON SYS.database_mirroring FOR INSERT, UPDATE

我需要有关其余语法的帮助。

我有一个带有2列(last_state和current_state)的state_db数据库,并且我需要能够检查当前状态,而我的state_db中的一个状态。如果它们与众不同,我想用current_state和current_state修改last_state,并使用sys.database_mirroring的新态度读取新的状态

我的问题是,我可以使用触发器进行插入和修改,以将辅助数据库保留为sys.database_mirroring的最后两个状态?如果是,我该怎么做?

有帮助吗?

解决方案

您无法在系统对象上创建触发器。因此,走上您不可能的道路。

提高容忍度的最佳选择是将证人数据库移至其自己的服务器硬件(即使SQL Server允许您以这种方式进行设置,不仅仅是同一框上的另一个实例),与主体和镜像分开。

这样,您极不可能遇到失败,同时消除您的校长和镜像数据库。

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top