Automatisation des sauvegardes de cubes SSAS

Faire un backup de vos bases Analysis Services, c’est facile, c’est une commande XMLA.
Allez, je vous la mets pour la forme :

<Backup xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
  <0bject>
    <DatabaseID>Adventure Works DW 2008</DatabaseID>
  </0bject>
  <File>Adventure Works DW 2008.abf</File>
</Backup>

Si ensuite, je veux l’automatiser, je crée une étape “Commande Analysis Services” dans un job du SQL Agent.

Sauf que si je veux garder les 7 derniers backups, j’ai besoin d’ajouter la date dans le nom du fichier ABF. Dynamiquement.

La solution que j’ai pris, faire un peu de PowerShell :

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices")
[Microsoft.AnalysisServices.Server]$server = New-Object Microsoft.AnalysisServices.Server

[string]$instanceName = "BI1101ID\MSBI"
$server.connect($instanceName) 

$backupRoot = "C:\DataRoot\MSAS10_50.MSSQLSERVER\OLAP\BACKUP\"
$dbName = "UneBaseSSAS"

[string]$backupTimeStamp = Get-Date -Format "yyyyMMddHHmm"

$db = $server.databases[$dbName]
$backupFile = $backupRoot + $dbName + "-" + $backupTimeStamp + ".abf"

$db.Backup($backupFile)

Et voila.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s