SQL Azure - 脚本自动导出配置

时间:2014-01-06 20:06:27

标签: azure azure-sql-database

SQL Azure允许按计划自动导出到Azure blob存储。这可以在Azure管理门户中基于每个数据库进行配置。

有没有办法通过PowerShell,REST API或Windows Azure管理库编写脚本?

我们正在开发一个分片数据库解决方案,每个环境有超过60个分片,这意味着需要配置100个数据库,手动执行此操作并非真正的选择。

2 个答案:

答案 0 :(得分:1)

您有一个PowerShell Cmdlet - Start-AzureSqlDatabaseExport - Ref,使用它可以开始将SQL Azure数据导出到Blob存储。

您可以在PowerShell预定作业中使用该cmdlet - Ref

您可以创建VM角色并在其中运行自定义PS脚本。这样你所有的PS操作都会足够快。

答案 1 :(得分:0)

我还没有尝试过,但是Sandrino Di Mattia写了关于这个here -

的文章
param([string]$ConnectionString = $(throw "The ConnectionString parameter is required."), 
      [string]$DatabaseName = $(throw "The DatabaseName parameter is required."),
      [string]$OutputFile = $(throw "The OutputFile parameter is required."), 
      [string]$SqlInstallationFolder = "C:\Program Files (x86)\Microsoft SQL Server")

# Load DAC assembly.
$DacAssembly = "$SqlInstallationFolder\110\DAC\bin\Microsoft.SqlServer.Dac.dll"
Write-Host "Loading Dac Assembly: $DacAssembly"
Add-Type -Path $DacAssembly
Write-Host "Dac Assembly loaded."

# Initialize Dac service.
$now = $(Get-Date).ToString("HH:mm:ss")
$Services = new-object Microsoft.SqlServer.Dac.DacServices $ConnectionString
if ($Services -eq $null)
{
    exit
}

# Start the actual export.
Write-Host "Starting backup at $DatabaseName at $now"
$Watch = New-Object System.Diagnostics.StopWatch
$Watch.Start()
$Services.ExportBacpac($OutputFile, $DatabaseName)
$Watch.Stop()
Write-Host "Backup completed in" $Watch.Elapsed.ToString()