Sql-Server

根據錯誤日誌中的文本觸發 SQL 代理作業以進行 AG 故障轉移

  • May 5, 2020

我有一個 2 節點 AG 設置(不是 FCI)​​。我需要配置一個警報以根據錯誤日誌中找到的字元串觸發作業,該字元串顯示該節點現在是新的主節點。

我要使用的字元串是:

‘primary_pending’ 到 ‘primary_normal’

這是輔助節點變為主節點時錯誤日誌中顯示的內容。我希望警報啟動我創建的 SQL 作業,以自動化我們的 SSRS 以使用新的主副本。

下面是我設置的警報,但它沒有正確觸發。我確實將警報配置為在觸發此警報時執行作業。

發生故障轉移時,作業不會啟動。我猜這可能是由於使用了錯誤號。我找到了一篇關於使用它的部落格文章,但似乎無法再次找到它。錯誤日誌在此文本的行中沒有顯示任何錯誤號,所以我認為這是問題所在。

如何根據在錯誤日誌中找到的文本觸發警報,或者有更好的方法嗎?

我確實有條件邏輯來檢查我所有工作中的主要/次要狀態,但我不能將它用於這項工作,因為我希望它只執行 1x(當它第一次成為主要時)。

故障轉移警報

您需要<all databases>在數據庫名稱選擇中進行選擇。您正在檢查的錯誤與特定數據庫無關,因此指定數據庫可以有效地過濾它,因此警報不會關心它。

我剛剛使用 RAISERROR 對此進行了測試,以記錄一條包含“’this’或’that’”的消息,並且效果很好。起初我認為您可能需要分隔單引號,但在我的測試中我沒有並且它有效。

引用自:https://dba.stackexchange.com/questions/255971