簡體   English   中英

如何創建從SSAS數據庫備份的作業?

[英]how can I create job for make Back Up From SSAS Database?

我使用SQL Server 2008 R2和SSAS。

我在SSAS中有一些維數據庫。

我需要創建一份工作,以便每天從SSAS的所有DataBase備份。

我怎么能這樣做?

所以有幾種方法:

1 /使用Analysis Services命令創建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語句來傳遞命令(由於您可以使用變量來修改文件名等內容,因此可以提供更多靈活性):

創建SSAS鏈接服務器

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位使它變得更容易。

希望這有助於至少有一些關於你能做什么的想法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM