在第一篇中簡單介紹了PowerShell,包含基本的一些命令,以及如何打開PowerShell,而且導航到SSAS對象。第二篇中學習瞭如何使用變量根據當前日期建立SSAS備份,以及如何運行MDX和XMLA腳本。html
原文地址: sql
在這一篇中,主要介紹如下幾個話題:數據庫
- 使用PowerShell命令驗證SSAS服務的狀態工具
- 若是SSAS服務當掉自動發送消息sqlserver
- 驗證SSAS數據庫的硬盤使用狀況學習
- 每小時運行腳本驗證數據庫的狀態spa
環境: 3d
SQL Server 2008以後的版本。
開始:
1. 首先使用PowerShell獲取Windows Services狀態。
get-service
這個命令返回當前的Windows Services以及其狀態:
2. 此篇中咱們關注的是SSAS服務,因此命令將會以下所示:
get-service | select status, name | Where-Object {$_.Name -like "*MSSQLServerOLAP*"}
這條命令顯示名稱中包含"MSSQLServerOLAP"的服務名稱以及服務狀態,能夠看到服務當前的狀態是開啓仍是中止。
3. 接下來將實現若是服務中止,自動發送信息。
$servicestatus=get-service | select status,name | Where-Object {$_.Name -like "*MSSQLServerOLAP*"}
$Message="The SSAS Service is down"
if($servicestatus.status -eq "Stopped"){
echo $Message
}
這條命令若是監測到SSAS服務中止,將顯示消息"The SSAS Service is down"。
4. 如下命令顯示磁盤的剩餘空間。
$driveinformation=gwmi win32_volume -Filter 'drivetype = 3' | select driveletter, label, @{LABEL='GBfreespace';EXPRESSION={$_.freespace/1GB} }
這條命令以GB爲單位顯示每一個磁盤的剩餘空間,當咱們須要知道SSAS是否有足夠的剩餘空間的時候,這條命令頗有用。
5. 爲了驗證SSAS下Cube的狀態能夠每五分鐘發送一條MDX語句。在此篇咱們將建立一條簡單的MDX腳本而後以每小時的方式運行以此驗證Cube是處於在線狀態。
6. 打開SSMS。
7. 鏈接到SSAS服務而且瀏覽Adentureworks多維數據集。
8. 拖拽Internet Gross Profit到透視表區域,而後切換到MDX視圖。
9. 自動生成的查詢以下所示:
SELECT NON EMPTY { [Measures].[Internet Gross Profit] } ON COLUMNS FROM [Adventure Works] CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS
10. 保存腳本爲Adventure.mdx文件。
11. 接下來使用PowerShell腳原本調用這條查詢。若是沒有結果或者一條沒有處理的錯誤消息返回,自動返回鏈接錯誤的信息。
$result=Invoke-ASCmd -Database "Adventureworks" -InputFile:"c:\scripts\Adventure.mdx"
$Message="Adventureworks had a connection error"
if ((!$result) -or ($resultado -like "*either does not exist or has not been processed*")){$message}
12. 爲了讓PowerShell腳本週期的運行,在SSMS下建立一個做業:
13. 給做業取一個名字,而後建立一個新步驟。
14. 指定一個步驟名稱,在Type下選擇PowerShell而後在命令區粘貼第11步的腳本,而後點擊OK。
而後選擇Schedules頁面,點擊New按鈕。
輸入schedule信息,在這裏咱們設置爲每小時運行來驗證數據庫的狀態。
至此,一個每小時驗證SSAS數據庫狀態的做業建立完成。但願你們喜歡這篇。
相關內容:
PowerShell建立自動化任務是一個不錯的工具,更多信息請參考如下連接:
http://technet.microsoft.com/en-us/library/hh849804.aspx
http://technet.microsoft.com/en-us/library/ee177028.aspx
http://blogs.technet.com/b/flaphead/archive/2006/09/12/455555.aspx
在MSSQLTips.com上閱讀更多關於PowerShell的內容。
http://www.mssqltips.com/sql-server-tip-category/81/powershell/