SQL Azure允许按计划自动导出到Azure blob存储。这可以在Azure管理门户中基于每个数据库进行配置。
有没有办法通过PowerShell,REST API或Windows Azure管理库编写脚本?
我们正在开发一个分片数据库解决方案,每个环境有超过60个分片,这意味着需要配置100个数据库,手动执行此操作并非真正的选择。
答案 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()