Sql-Server
在 Sql Server 2005 中在故障轉移時發送電子郵件
我有兩個 Sql Server 2005 實例,在主體和鏡像配置中執行兩個數據庫副本。
每當發生故障轉移時,我想向某人發送電子郵件,我的意思是 Principal DB 出現故障(無論出於何種原因),因此兩個 DB 的交換角色,Mirror 成為 Principal(而 Principal 成為 Mirror)。
我已經配置了“數據庫郵件”並使用sp_send_dbmail成功發送了一條測試消息。但我不知道如何創建在故障轉移時執行的 Sql Server 代理作業(或任何可行的方法)。
我想這樣做的方法是以某種方式掛鉤某種“哦!我一秒鐘前是鏡子,但我剛剛成為校長”事件並將其設為 exec sp_send_dbmail。
任何人都知道如何做到這一點?或者更好的方法來實現這一點?
有一個解決故障轉移警報的解決方案,效果很好:
我假設您在這裡有一個見證實例以允許對數據庫進行自動故障轉移。
我處理這個問題的方法是在主體和鏡像上都有一個表,用於儲存 sys.database_mirroring 中的“mirroring_role_description”列的值,然後讓 SQL 代理作業執行一個執行以下操作的腳本:
- 將目前值與儲存值進行比較,如果更改則發送電子郵件
- 將目前值儲存在表中