sql server 警報管理,實時監聽數據庫動向,運籌帷幄之中


工作這么多年了,無論是身邊的同學還是同事,發現只要搞程序員的都有一個通病---懶。懶到誰都不願意加班,尤其是"義務"加班。即使大家都不願意加班,但是很多時候項目趕着上線或者上線之后出錯啊什么的,總得有人看着,這時候就誕生了一種新的工作制度,叫做7*24。顧名思義就是這種崗位實時都得有人看着,這確實是一件讓人頭疼的事情。雖然說在項目剛上線不可避免的得有7*24,但是我們可以盡量減少7*24的工作量(ps:因為7*24確實太累太苦,別問我怎么知道的)。那么我們怎么減少7*24的工作量呢?這就是我們這篇博文需要介紹到的,Sql server之警報管理。

v寫在前面

本博文中部分內容根據《Microsoft sql server》翻譯再加上自己的理解而來。

v警報概念

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中的每一個錯誤都有一個關聯的嚴重級別,通過這個級別可以指示錯誤的挺嚴重性,可以按照不同的級別產生不同的警報。(這個道理很好懂的,拿原子彈炸老鼠(小題大做)的事情咱不干)

性能計數器

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

v警報機制
v創建警報

要創建不同級別的警報,就必須得將錯誤寫到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]文本框的默認值\\.\root\Microsoft\SqlServer\ServerEvents\MSSQLSERVER,在[Query]文本框中輸入如下語句:

SELECT * FROM
DDL_DATABASE_LEVEL_EVENT 
WHERE Database='Test'

 

v博客總結

到此,Sql Server警報管理就介紹完畢了。

在此,借助博客園這個平台,向那些奮斗在7*24的前線程序猿們獻上最崇高的敬意。

 


作  者:請叫我頭頭哥
出  處:http://www.cnblogs.com/toutou/
關於作者:專注於基礎平台的項目開發。如有問題或建議,請多多賜教!
版權聲明:本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。
特此聲明:所有評論和私信都會在第一時間回復。也歡迎園子的大大們指正錯誤,共同進步。或者直接私信
聲援博主:如果您覺得文章對您有幫助,可以點擊文章右下角推薦一下。您的鼓勵是作者堅持原創和持續寫作的最大動力!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM