web-dev-qa-db-ja.com

すべてのデータベースのXMLAをスクリプト化する

いくつかのSSASデータベースがあります。 XMLAのスクリプトを毎晩作成するだけです。これは、通常のバックアップに加えて、第2層のバックアップになります。

すべてのデータベースのXMLAスクリプトを自動生成するにはどうすればよいですか?

3
Raj More

Powershellを使用してそれを行うことができます。

$serverName = "servername\instanceName" 
$outputFolder = "D:\data\"

## load the AMO and XML assemblies into the current runspace 
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices") > $null 
[System.Reflection.Assembly]::LoadWithPartialName("System.Xml") > $null 
$dateStamp = (get-Date).ToString("yyyyMMdd")

## connect to the server 
$svr = new-Object Microsoft.AnalysisServices.Server 
$svr.Connect($serverName) 
foreach ($db in $svr.Databases) 
{ 
    write-Host "Scripting: " $db.Name 
    $xw = new-object System.Xml.XmlTextWriter("$($outputFolder)DBScript_$($db.Name)_$($dateStamp).xmla", [System.Text.Encoding]::UTF8) 
    $xw.Formatting = [System.Xml.Formatting]::Indented 
    [Microsoft.AnalysisServices.Scripter]::WriteCreate($xw,$svr,$db,$true,$true) 
    $xw.Close() 
} 
$svr.Disconnect()

参照:

3
Kin Shah