sql server 警報管理及實時監聽

bluepeach發表於2021-09-09

MS SQL SERVER自動將發生的事情記錄在Windows的程式日誌中。SQL SERVER AGENT會自動監視由SQL SERVER記錄的程式執行日誌,如果找到符合定義的Action發生,將拉響響應事件的警報。 SQL SERVER主要監視以下幾類事情:

  • SQL SERVER事件

  • 伺服器/資料庫效能條件

  • Windows management instrument事件(下文中簡稱:WMI)

警報對應上述3種事件,當事件發生時,將自動觸發對應的事件。警報由名稱、觸發警報的時間或者效能條件、SQL SERVER代理響應事件或者效能條件所執行的操作這3個部分來完成。一個基本的警報包含以下內容:

錯誤號

SQL SERVER中大約有3000個可能出現的錯誤(SQL SERVER常見錯誤),每個錯誤都有自己的編號。在很多情況下程式開發可能產生不可預知的錯誤,在這些情況下,我們就需要New自定義錯誤號,並且針對這個事件產生一個警報

錯誤級別

程式裡面,任何錯誤都是有Priority的,SQL SERVER中的每一個錯誤都有一個關聯的嚴重級別,透過這個級別可以指示錯誤的挺嚴重性,可以按照不同的級別產生不同的警報。(這個道理很好懂的,拿原子彈炸老鼠(小題大做)的事情我們不幹)

效能計數器

資料庫使用者可以從效能計數器中產生的相對應的警報,這些計數器對於使用者資料庫的各種效能具有良好的效果。


警報機制

圖片描述

建立警報

要建立不同級別的警報,就必須得將錯誤寫到Windows時間日誌中。這個不難理解。因為在警報概念部分我們已經說了,SQL SERVER代理是從事件日誌上讀取錯誤資訊。當SQL SERVER代理讀取了事件日誌並在此發現了新錯誤時,就會搜尋整個資料庫來尋找相應的警報。一旦SQL SERVER代理發現了Match的警報,將立即啟用該警報,從而通知相關人員或者根據Job的設定來做出相應的反應。

下面我們就依次建立事件警報/效能警報/WMI警報

建立事件警報

①  開啟Sql Server Management Studio視窗,找到警報節點,如圖

圖片描述

②  點選New Alert(建立警報)

圖片描述

注意:在視窗中可以對警報的基本屬性進行設定。例如:在[Name]文字框中可以對警報的名稱進行設定,從[Type]下拉選單框中可以對警報的型別進行設定,圖中選擇的Sql Server事件警報選項。在[Database Name]下拉框中可以選擇執行警報的資料庫(預設是所有資料庫),同時可以使用[Error Number]可以指定警報對應的錯誤號,使用[Severity]可以選擇預定義的警報。如果選擇的嚴重級別在19~25之間,就會向Windows應用程式日誌傳送Sql server訊息,並觸發警報。

③  選擇[Response]標籤頁,如下圖所示,可以設定發生警報時向哪些操作員進行通知。單機[New Operator]按鈕,可以完成新增警報通知的操作員

圖片描述

④  選擇[Options]標籤頁,如下圖所示,可以設定警報錯誤傳送的方式,可以選擇[E-mail]、[Pager]、[Net send]核取方塊(可多選),同時可以填寫在傳送警報的同時給出的通知訊息,並能夠對響應的間隔時間進行設定。

圖片描述

⑤  完成屬性設定後,單機[OK]按鈕完成警報的建立工作

建立效能警報

圖片描述

在效能警報建立頁面,可以完成以下設定:

  • 在[Object]下拉框中可以設定效能警報針對的物件,like: 選擇[Sql Server Database]選項設定效能警報針對的資料庫

  • 透過[Counter]下拉框設定效能計數器的計數方式

  • 透過[Instance]下拉框設定效能計數器針對的資料庫例項

  • 透過[Alert if counter]下拉框設定效能計數器觸發的條件

接下來,就如同建立事件警報的步驟一樣,設定[Response]標籤頁和[Options]標籤頁,完成設定後,單機[OK]按鈕完成警報的建立工作

建立WMI警報

WMI警報幫助使用者對本地和遠端計算機進行管理。WMI透過程式設計和指令碼語言為日常管理提供了一條連續一致的途徑,使用者透過WMI警報可以完成以下任務:

  • 在[Object]下拉框中可以設定效能警報針對的物件,like: 選擇[Sql Server Database]選項設定效能警報針對的資料庫

  • 遠端啟動計算機或在遠端計算機上啟動一個程式

  • 設定在特定日期和時間執行的程式

  • 獲得本地或遠端計算機已安裝的程式列表

  • 查詢本地或遠端計算機的Windsows事件日誌

WMI警報的建立和事件警報/效能警報建立類似,在[New Alert]視窗的[Type]下拉選單中選擇[WMI event alert]選項,如下圖所示

使用[Namespace]文字框的預設值\.rootMicrosoftSqlServerServerEventsMSSQLSERVER,在[Query]文字框中輸入如下語句:

SELECT * FROMDDL_DATABASE_LEVEL_EVENT WHERE Database='Test'

 

圖片描述

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2558/viewspace-2800682/,如需轉載,請註明出處,否則將追究法律責任。

相關文章