2013-10-30 75 views

回答

4

因此,有幾種方法:

1 /創建使用分析服務命令的SQL作業的步驟,每一個數據庫使用的代碼與此類似:

<Backup xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> 
    <Object> 
    <DatabaseID>DBName</DatabaseID> 
    </Object> 
    <File>\\server\share\folder\backupFile.abf</File> 
    <AllowOverwrite>true</AllowOverwrite> 
</Backup> 

這是好的,易於並且如果您只有少量SSAS數據庫不會定期刪除或添加更多內容,則可以毫不費力地維護

2 /創建SSAS鏈接的服務器,然後在作業步驟中使用常規SQL語句傳遞你的命令(給你更多的靈活性ility,你可以使用變量來修改之類的文件名等):

Create SSAS Linked Server

DECLARE @XMLA NVARCHAR(1000) , 
       @timeStamp NVARCHAR(35); 

SET @timeStamp = CONVERT(NVARCHAR, GETDATE(), 112) + '_' 
    + REPLACE(CONVERT(VARCHAR(8), GETDATE(), 108), ':', ''); 

SET @XMLA = N'<Backup xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> 
    <Object> 
    <DatabaseID>dbName</DatabaseID> 
    </Object> 
    <File>\\server\share\folder\dbName_' 
    + @timeStamp + '.abf</File> 
    <AllowOverwrite>true</AllowOverwrite> 
    <ApplyCompression>false</ApplyCompression> 
</Backup>'; 

EXEC (@XMLA) AT [SSAS_LinkedServer] 

編輯:你也可以做這種方法是什麼從Analysis Server中使用容易獲得SSAS數據庫列表以下內容:

SELECT [catalog_name] FROM OPENQUERY([SSAS_LinkedServer],'select [catalog_name] from $system.dbschema_catalogs') 

然後,您可以只通過光標這個列表,通過鏈接服務器執行SSAS命令對每個數據庫列表,因此這意味着,如果你添加一個你不需要手動維護工作新的SSAS數據庫。

3 /使用powershell,下面的這個方法在2008 R2上不起作用,但可以修改爲直接使用SMO,而不是他們在SQL Server 2012中提供的好提供程序(這是我們使用的方法,下面是我的腳本樣本):

import-module sqlps -disablenamechecking 
$server = "SERVER\INSTANCE" 
$backupPath = "\\backup-server\share\SSAS\$server\" 

#Get a list of the SSAS databases on the server 
$ssasDBs = dir SQLSERVER:\SQLAS\$server\databases 

#Backup each SSAS database on the server 
foreach ($db in $ssasDBs) 
{ 
    $extension = Get-Date -UFormat "_%Y_%m_%d_%A_%H%M%S.abf" 
    $backupFile = $backupPath+$db+$extension 
    try 
    { 
     $db.Backup($backupFile) 
    } 
    catch 
    { 
     Write-Warning "Backup of $db Failed!!!" 
    } 
} 

這種方法有,你沒有,如果你添加一個新的SSAS數據庫改工作的優勢,它會被自動無腳本備份變化。

我確定還有其他方法可以實現這一目標,但這些是我用來管理SSAS備份的3種方式,我通常認爲SSAS的管理方面相當痛苦,因爲它似乎有點欠缺,但也許這只是我。 SQL 2012中的新powershell比較容易。

希望這可以幫助至少有一些你可以做的事情。

+1

剛剛添加了一些關於如何從常規t-sql獲取SSAS數據庫列表的小修改,以便於維護作業 – steoleary

+0

如何訪問「Analysis Services命令」? –

相關問題