Sql-Server

在 Sql Server 2005 中在故障轉移時發送電子郵件

  • February 2, 2010

我有兩個 Sql Server 2005 實例,在主體和鏡像配置中執行兩個數據庫副本。

每當發生故障轉移時,我想向某人發送電子郵件,我的意思是 Principal DB 出現故障(無論出於何種原因),因此兩個 DB 的交換角色,Mirror 成為 Principal(而 Principal 成為 Mirror)。

我已經配置了“數據庫郵件”並使用sp_send_dbmail成功發送了一條測試消息。但我不知道如何創建在故障轉移時執行的 Sql Server 代理作業(或任何可行的方法)。

我想這樣做的方法是以某種方式掛鉤某種“哦!我一秒鐘前是鏡子,但我剛剛成為校長”事件並將其設為 exec sp_send_dbmail

任何人都知道如何做到這一點?或者更好的方法來實現這一點?

有一個解決故障轉移警報的解決方案,效果很好:

http://msdn.microsoft.com/en-us/library/cc966392.aspx

我假設您在這裡有一個見證實例以允許對數據庫進行自動故障轉移。

我處理這個問題的方法是在主體和鏡像上都有一個表,用於儲存 sys.database_mirroring 中的“mirroring_role_description”列的值,然後讓 SQL 代理作業執行一個執行以下操作的腳本:

  1. 將目前值與儲存值進行比較,如果更改則發送電子郵件
  2. 將目前值儲存在表中

引用自:https://serverfault.com/questions/101813