首页 > 解决方案 > 使用 powershell 或 azure cli 的 Azure Analysis Services 数据库模型备份

问题描述

我正在尝试使用以下 powershell 脚本备份 AAS 数据库模型。我发现很难,因为没有很好的微软文档来实现这个解决方案。

$AnalysisServiceDatabase = "adventureworks"
$AnalysisServiceServer = "testanalysis"
$automationConnectionName = $ConnectionName 
if (!$ConnectionName) { 
    $automationConnectionName = "AzureRunAsConnection" 
}  
$servicePrincipalConnection = Get-AutomationConnection -Name $automationConnectionName          

Write-Output "Logging in to Azure..." 
 
Add-AzureRmAccount `
    -ServicePrincipal `
    -TenantId $servicePrincipalConnection.TenantId `
    -ApplicationId $servicePrincipalConnection.ApplicationId `
    -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint

# Get PSCredential 
$cred = Get-AutomationPSCredential -Name $AutomationCredentialName

Write-Output "Starting Backup..." 

Backup-ASDatabase `
    –backupfile ("backup." + (Get-Date).ToString("yyMMdd") + ".abf") `
    –name $AnalysisServiceDatabase `
    -server $AnalysisServiceServer `
    -Credential $cred

有人可以帮我吗?如果有任何替代方法可以自动备份 Azure 分析服务数据库?

标签: azure-powershellazure-analysis-services

解决方案


我敢肯定,有几种方法可以解决这个问题。您的脚本非常接近。如果您按如下方式更改备份命令,我怀疑它会起作用:


Backup-ASDatabase `
    –backupfile ("backup." + (Get-Date).ToString("yyMMdd") + ".abf") `
    –name $AnalysisServiceDatabase `
    -server "asazure://<full server URI here>" `
      -ApplyCompression `
      -ServicePrincipal `
      -ApplicationId $servicePrincipalConnection.ApplicationId `
      -TenantId $servicePrincipalConnection.TenantId `
      -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint



如果您需要更多功能,例如恢复服务器和暂时打开当前 Azure 自动化公共 IP 的防火墙,请改为执行以下操作。希望您可以从两个示例中拼凑出您想要的脚本。

首先从该脚本(处理 Azure Analysis Services 数据库)创建一个 Runbook 。请注意此处的设置说明。

然后将第 100-123 行替换为第 162-215 行中此脚本中的备份数据库代码(在本地备份并还原到 Azure 分析服务)。并将 $Server 更改为 $amoAzureASServer。


推荐阅读