[译]SSAS下玩转PowerShell(三)
在第一篇中簡單介紹了PowerShell,包含基本的一些命令,以及如何打開PowerShell,并且導航到SSAS對象。第二篇中學習了如何使用變量根據(jù)當前日期創(chuàng)建SSAS備份,以及如何運行MDX和XMLA腳本。
?
原文地址:
http://www.mssqltips.com/sqlservertip/2980/using-powershell-for-ssas-to-check-service-status-and-database-availability/
?
?
在這一篇中,主要介紹以下幾個話題:
- 使用PowerShell命令驗證SSAS服務的狀態(tài)
- 如果SSAS服務當?shù)糇詣影l(fā)送消息
- 驗證SSAS數(shù)據(jù)庫的硬盤使用情況
- 每小時運行腳本驗證數(shù)據(jù)庫的狀態(tài)
?
環(huán)境:
Adventureworks微軟示例項目。
SQL Server 2008之后的版本。
?
開始:
1. 首先使用PowerShell獲取Windows Services狀態(tài)。
get-service
這個命令返回當前的Windows Services以及其狀態(tài):
2. 此篇中我們關注的是SSAS服務,所以命令將會如下所示:
get-service | select status, name | Where-Object {$_.Name -like "*MSSQLServerOLAP*"}
這條命令顯示名稱中包含"MSSQLServerOLAP"的服務名稱以及服務狀態(tài),可以看到服務當前的狀態(tài)是開啟還是停止。
3. 接下來將實現(xiàn)如果服務停止,自動發(fā)送信息。
$servicestatus=get-service | select status,name | Where-Object {$_.Name -like "*MSSQLServerOLAP*"}
$Message="The SSAS Service is down"
if($servicestatus.status -eq "Stopped"){
echo $Message
}
這條命令如果監(jiān)測到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的狀態(tài)可以每五分鐘發(fā)送一條MDX語句。在此篇我們將創(chuàng)建一條簡單的MDX腳本然后以每小時的方式運行以此驗證Cube是處于在線狀態(tài)。
6. 打開SSMS。
7. 連接到SSAS服務并且瀏覽Adentureworks多維數(shù)據(jù)集。
8. 拖拽Internet Gross Profit到透視表區(qū)域,然后切換到MDX視圖。
9. 自動生成的查詢?nèi)缦滤?#xff1a;
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腳本來調(diào)用這條查詢。如果沒有結(jié)果或者一條沒有處理的錯誤消息返回,自動返回連接錯誤的信息。
$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下創(chuàng)建一個作業(yè):
13. 給作業(yè)取一個名字,然后創(chuàng)建一個新步驟。
14. 指定一個步驟名稱,在Type下選擇PowerShell然后在命令區(qū)粘貼第11步的腳本,然后點擊OK。
然后選擇Schedules頁面,點擊New按鈕。
輸入schedule信息,在這里我們設置為每小時運行來驗證數(shù)據(jù)庫的狀態(tài)。
?
至此,一個每小時驗證SSAS數(shù)據(jù)庫狀態(tài)的作業(yè)創(chuàng)建完成。希望大家喜歡這篇。
?
相關內(nèi)容:
PowerShell創(chuàng)建自動化任務是一個不錯的工具,更多信息請參考以下鏈接:
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的內(nèi)容。
http://www.mssqltips.com/sql-server-tip-category/81/powershell/
《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的[译]SSAS下玩转PowerShell(三)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android MAT使用
- 下一篇: 使用Xib解决1px线条绘制的一些方法