如何管理機房內為數眾多的 SQL Server 呢 ? SQL Server SQL 2008 提供了不錯的管理工具[ 資料搜集器]。但該工具只適用於 SQL Server 2008,舊版的就不合用了。且[ 資料搜集器]只負責長時間紀錄各伺服器的資源使用狀態,並無提供警示訊息以及主動通知。因此,若想符合這個功能,就只能自行撰寫管理程式來監控個資料庫伺服器了。若不想花時間撰寫程式,且部門還有預算的話,就可花個小錢購買third-party 軟體 –SQL Red Gate。根據最近的測試結果發現,此工具可一併管理 SQL Server 2000、SQL Server 2005、SQL Server 2008、SQL Server 2008 R2 這幾個版本。
下載測試軟體並安裝好之後,經由[開始]->[Red Get]->[SQL Respons1] 開啟管理工具。若是第一次使用,則需要在工具選單上透過[Alter Repository Set] 設定負責收集資料的程式。你可以選擇將此程式與管理工具安裝在同一台,也可以分開安裝。(我這裡示範的是分開安裝。)
點選[下一步]之後,進入Insall Alter repository 視窗點選 [Save Installer File to Server] 按鈕,將安裝的程式下載到本機目錄後,點選 [Lanch Windows Remote Desktop]開啟遠端登入工具登入用於蒐集資料的伺服器,將剛剛所下載的程式Copy過去後執行安裝。
在蒐集資料的伺服器雙擊 Response Alter Repository.exe 開始安裝,如下圖所示。此程式預設的安裝路徑為 C:\Program Files\Red Gate\SQL Response 1\Alert Repository。安裝完成後,記得要雙擊此目錄下的RedGate.SqlResponse.AlertRepository.Console.exe 啟動蒐集功能。
最後回到用戶端開啟 SQL Response 1.3 管理介面後,點選 Alter Respository->Connect to Respository,開啟對話窗並輸入負責蒐集資料的伺服器之IP與 Tcp Port完成連線設定。
SQL Response 1.3 工具,點選工具選單上的 [ Add SQL Server] 按鈕,加入要監控的SQL Server執行個體。透過對話窗可更改適當的Windows 帳戶以及 SQL Server 帳戶監控。
加入的資料庫執行個體會表列於左上方的視窗,左下方則有各種不同的監控事件,可自行勾選想監控的項目將警示訊息表列於右側視窗。如下圖所示,抓到dadlock的效果還不錯,可以分析Deadlock的細節例如 lock的型態與SQL 語法。
Low physical Disk - 當偵測到硬碟可用空間不足時所呈現的畫面。若此硬碟有安裝SQL Server 執行個體,則會順便列出mdf、ldf占用的容量。(據觀察temp資料庫會被略過,無法呈現。此外D碟若有使用中的 mdf 與 ldf 也無法呈現) 預設可用空間少於總空間的20%就會發出警告。若要修改設定,可點選下圖的[ [ Edit Alter Configuration] 按鈕進行個別修改。
Low physical memory - 偵測實體記憶體不足的畫面透過圓餅圖呈現目前記憶體的使用狀況。
long running qury - 當 SQL Server中較耗時的查詢時,發出的警告視窗如下圖所示。視窗內會列出耗時的查詢語法,以及當下的各 SQL Server 資源狀況。
DB方面的 Recommendations我覺得值得一提的是Fragmented index這項,因為大部分的管理者可能都會忽略這項檢視進而讓資料庫的效能降低。
監控的平率可在蒐集資料的伺服器中修改 Config.xml檔,預設的路徑如下:
C:\Program Files\Red Gate\SQL Response 1\Alert Repository\Config.xml
蒐集項目 | 預設時間 | 蒐集內容 |
DatabaseRecmmendation CheckTime | 18000秒 (5小時) | backup exists for database Full backup overdue Log backup overdue Integrity check overdue and Page Verification is off |
DBFileTime | 18000秒 (5小時) | Transaction Log has excessive free space and Data file has excessive free |
WinipingTime | 300秒 | Computer unreachable, Computer Login Failure, SQL Server Lgon failure and SQL Server |
JobInfoTime | 60分 | Job Failure, Job did not start, Job duration unusual and SQL Server agent not running |
PerfMonTime | 30秒 | Low physical memory and CPU utilization unusual and also affect the wmi get machine statistics and sql get machine statics calls |
DiskInfoTime | 120分 | Low disk space |
SysProcessesTime | 45秒 | Long running query and Blocked SQL Process |
SqlErrorLogTime | 60分 | SQL Deadlock and SQL Server error log entry |
ClockSkewTime | 120秒 | checking the clock time skew of the machine |
ClusterActiveNodeTime | 60秒 | checking for cluster fail over |
DatabaseStateTime | 120秒 | checking for databases changing state |
DatabaseIndexTime | 18000秒 | checking for Index Fragmentation |
行文到此,原想將官網的網址轉貼於此。但今日再上去看時,才發現此軟體已更新了。有興趣的話這裡仍可下載到此版本。新版的名稱為SQL Monitor,增加了網頁版監控的工具。哎~ 只能說軟體日新月異,畢竟人家這套軟體開發兩年了,如果不改版新增加一些功能就落伍囉。
下回有機會再將SQL Monitor 使用心得分享給大家囉。