我正在探索VSTS版本管理,并且在我将任何迁移脚本应用于Azure SQL数据库之前,我想备份托管在Azure SQL数据库上的生产数据库。我无法找到任何特定的任务或等待Azure SQL数据库完全备份的首选方式,以便我可以在数据库正确备份后才能继续部署。 我曾看过使用PowerShell任务或Azure SQL CMD任务,但我不确定如何使其余任务等待备份完成。 如果有人能指出我正确的方向,我将不胜感激。谢谢。在VSTS版本中备份Azure SQL数据库
回答
您可以备份SQL Azure的数据库,并检查在一个循环的状态。
$exportRequest = New-AzureRmSqlDatabaseExport -ResourceGroupName $ResourceGroupName -ServerName $ServerName `
-DatabaseName $DatabaseName -StorageKeytype $StorageKeytype -StorageKey $StorageKey -StorageUri $BacpacUri `
-AdministratorLogin $creds.UserName -AdministratorLoginPassword $creds.Password
$importStatus = Get-AzureRmSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink
[Console]::Write("Exporting")
while ($importStatus.Status -eq "InProgress")
{
$importStatus = Get-AzureRmSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink
[Console]::Write(".")
Start-Sleep -s 10
}
[Console]::WriteLine("")
$importStatus
更多信息,可以参考Export an Azure SQL database to a BACPAC file。
另一种方法是通过使用PowerShell调用Microsoft.SqlServer.Dac.DacServices.ExportBacpac方法来备份Azure SQL数据库。
param([string]$ConnectionString, [string]$DatabaseName,[string]$OutputFile,[string]$s)
Add-Type -Path "$s\AzureDatabaseSolution\SQLDatabase\lib\Microsoft.SqlServer.Dac.dll"
$now = $(Get-Date).ToString("HH:mm:ss")
$Services = new-object Microsoft.SqlServer.Dac.DacServices $ConnectionString
Write-Host "Starting at $now"
$Watch = New-Object System.Diagnostics.StopWatch
$Watch.Start()
$Services.ExportBacpac($OutputFile, $DatabaseName)
$Watch.Stop()
Write-Host "Backup completed in" $Watch.Elapsed.ToString()
注:本包使用的组件:Microsoft.SqlServer.Dac 1.0.3(我把它添加到源控制和映射建立代理)
在另一方面,添加防火墙规则,你可以参考这个线程:Deploy Dacpac packages via power shell script to Azure SQL Server。
顺便说一下,您可以使用这些PowerShell脚本构建自定义构建/发布步骤/任务。 Add a build task
谢谢,这似乎是一个不错的选择。将尝试并报告。 – Sanddy
@Sanddy现在结果如何?你解决了吗? –
还没有,我在创建链接时创建了一个自定义构建任务,但我对PowerShell并不熟悉,以及如何编写扩展,以便它还安装Azure Powershell sdk。我在Git中查看了现有的VS Build扩展,但他们似乎使用了很多内部Powershell库,没有什么简单的。 所以现在我试图尝试使用Azure CLI,我的CLI脚本在本地工作。但是,当我在Inline Azure CLI任务中使用相同的脚本时,它会出现“## [error] Unhandled:Failed which:Not found az:null”错误! – Sanddy
Azure SQL数据库不断自动备份。如果您尝试创建数据库副本或将数据库归档到BACPAC文件,则可以执行其中一项。
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-automated-backups https://docs.microsoft.com/en-us/azure/sql-database/sql-database-copy https://docs.microsoft.com/en-us/azure/sql-database/sql-database-export
- 1. 在ASP.NET中备份SQL Server数据库
- 2. SQL Azure备份
- 3. 备份SQL Server数据库
- 4. SQL数据库备份
- 5. 如何备份数据库备份每天在SQL Server 2005中
- 6. 是否有脚本可以将SQL Azure数据库与数据进行备份?
- 7. Azure数据库备份丢失评论
- 8. SQL Server 2008中的数据库备份
- 9. MS Azure备份无法备份文件的新版本
- 10. 从VSTS数据库版本生成数据更改脚本
- 11. 如何在XP中备份本地SQL Server数据库?
- 12. Azure SQL数据库备份策略说明
- 13. 将SQL Server数据库备份还原到Windows Azure VM
- 14. 使用c备份和还原Azure sql数据库#
- 15. Azure备份数据库(sql转储文件)
- 16. 从数据库备份中查找TFS Express版本
- 17. 默认情况下,SQL Azure数据库跨数据中心进行备份?
- 18. 在本地备份远程数据库
- 19. VSTS Build + Azure数据库+ Redgate ReadyRoll
- 20. 在Azure函数中访问VSTS构建服务器版本
- 21. 使用VSTS发布Azure数据工厂项目版本
- 22. 使用“自动导出”时,SQL Azure数据库的多少个备份副本?
- 23. 此版本的SQL Server不支持“CREATE CREDENTIAL” - Azure SQL数据库
- 24. 未包含在Azure网站备份中的数据库
- 25. Azure SQL数据库Web vs商业版
- 26. 使用visual studio在备份数据库服务器上使用的备份本地sql server数据库表
- 27. 备份Windows Azure SQL Azure,Blob和表数据的策略
- 28. 数据库备份
- 29. 备份数据库
- 30. 备份数据库
我不相信有一个标准任务或任何接近它的东西。这应该让你开始,但。您必须在循环中查询目标副本的状态:https://www.mssqltips.com/sqlservertip/2235/creating-backups-and-copies-of-your-sql-azure-databases/ – jessehouwing