Создание BacPac из (RDS / AWS) базы данных сервера Sql с включенным компонентом Service Broker - PullRequest
0 голосов
/ 25 апреля 2019

У меня база данных Sql Server работает на RDS на AWS.Некоторое время назад у меня был процесс, который каждую ночь создает bacpac с сервера prod, который я затем могу использовать для восстановления в средах 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 Verbose: 1: 2019-04-23T23: 46:32: ColumnResolver: # 10466208 Создан преобразователь столбцов Ошибка Microsoft.Data.Tools.Diagnostics.Tracer: 19: 2019-04-23T23: 46: 32: Исключение Microsoft.SqlServer.Dac.DacServicesException:

Одинили более неподдерживаемые элементы были найдены в схеме, используемой как часть пакета данных .Ошибка SQL71626: элемент Служба : [SqlQueryNotificationService-XYZ] не поддерживается в Базе данных Microsoft Azure SQL v12 .Ошибка SQL71626: элемент очередь : [dbo]. [SqlQueryNotificationService-XYZ] не поддерживается в базе данных SQL Azure Microsoft v12.

Итак, как мне достичь своей цели, а именно: создать резервную копию prod и загрузить ее в UAT?

То, что я пробовал: остановить сервисный брокер, отбросить его объекты.Да, это действительно работает, но я ненавижу идею о том, чтобы отключить мою рабочую среду, просто чтобы сделать резервную копию.

Напоминаю, что это не основной способ резервного копирования системы, у AWS RDS естьвстроенный сервис резервного копирования.Однако я не знаю, как «загрузить» эту резервную копию, а затем загрузить ее в мою среду UAT.Может быть, есть какой-то другой метод дампа / загрузки, который я мог бы использовать вместо этого?

Также обратите внимание, что среда UAT не на AWS RDS, а на виртуальной машине Azure с Sql Server 2017 (не Azure SQL).

...