我有一个在AWS的RDS上运行的Sql Server数据库。一段时间以来,我有一个每天晚上从产品服务器创建bacpac的过程,然后可以将其用于还原到UAT环境中以进行探索性测试。
.\SqlPackage.exe /a:Export /SourceConnectionString:$SourceConnectionString `
/tf:$BackupFilePath /p:CommandTimeout=300 /Diagnostics:True `
/DiagnosticsFile:$DiagnosticsFilePath
一直很好。但是,最近我们开始使用Sql Server Service Broker从数据库传递实时更新,但是在上线之后(即经过大量开发工作并从Service Broker功能中获得了很多价值),美中不足的是提取bacpac不再起作用。
它给出:
Microsoft.Data.Tools.Diagnostics.Tracer详细信息:1: 2019-04-23T23:46:32:ColumnResolver:#10466208列解析器 创建了Microsoft.Data.Tools.Diagnostics.Tracer错误:19: 2019-04-23T23:46:32:Microsoft.SqlServer.Dac.DacServicesException:
在用作部分的架构中找到一个或多个不受支持的元素 数据包。错误SQL71626:元素 Service : [SqlQueryNotificationService-XYZ]是 Microsoft Azure SQL数据库第12版不支持。错误SQL71626: 元素队列: [dbo]。[SqlQueryNotificationService-XYZ] Microsoft Azure SQL数据库v12不支持。
那么我如何实现我的目标,即备份产品并加载到UAT中?
我尝试过的事情:停止服务代理,删除其对象。是的,虽然可以完成工作,但是我讨厌为了备份而降低产品环境的想法。
提醒一下,这不是实际备份系统的主要方法,AWS RDS具有内置的备份服务。但是,我不知道如何“下载”该备份,然后将其加载到我的UAT环境中。也许我可以使用其他一些转储/加载技术?
还要注意,UAT环境不在AWS RDS上,而是在运行Sql Server 2017(不是Azure SQL)的Azure VM上。