Проблема
Этот накопительный пакет обновления добавляет возможность инициализации репликации транзакций из резервной копии с помощью URL-адреса устройства. Чтобы использовать эту возможность, необходимо указать "url" для параметра @backupdevicetype и расположение файла резервной копии в хранилище Azure для параметра @backupdevicename при вызове sp_addsubscription.
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».
Решение
Эта проблема устранена в следующих накопительных обновлениях для SQL Server:
- Накопительный пакет обновления 7 для SQL Server 2019
- Накопительный пакет обновления 21 для SQL Server 2017
Сведения о накопительных обновлениях для SQL Server:
Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и исправления безопасности, которые входили в состав предыдущего накопительного пакета обновления. Ознакомьтесь с последними накопительными пакетами обновления для SQL Server:
- Последний накопительный пакет обновления для SQL Server 2019
- Последний накопительный пакет обновления для SQL Server 2017
Примечание Эта функция исправления позволяет настроить репликацию транзакций между локальной базой данных и базой данных Azure SQL с @sync\_type помощью = N'инициализировать с резервной копией'.
Пример:
РЕЗЕРВНОЕ КОПИРОВАНИЕ БАЗЫ ДАННЫХ <Published_DB> TO URL='backup_file_namePath'
Восстановить БД абоненту:
ЕСЛИ СУЩЕСТВУЕТ (ВЫБЕРИТЕ * FROM master.sys.CREDENTIALS, ГДЕ NAME = 'storage_account_name')
УДАЛИТЬ УЧЕТНЫЕ ДАННЫЕ [containerPath]
-- Имя учетной записи хранения можно найти на портале Azure по адресу: Хранилище -> Параметры -> Ключи доступа
-- Ключ подписи общего доступа можно создать на странице: Хранилище -> Параметры -> Общая подпись оценки
CREATE CREDENTIAL (ПУТЬ К КОНТЕЙНЕРУ)
WITH IDENTITY = 'ПОДПИСЬ ОБЩЕГО ДОСТУПА', СЕКРЕТ = '<shared_access_signature_key_with_removed_first_?_symbol>'
ВОССТАНОВИТЬ БАЗУ ДАННЫХ [<database_name>] FROM URL = 'backup_file_namePath'
Создайте подписку у издателя, используя тип синхронизации «инициализация с резервной копией» и указав локальный файл резервной копии:
exec sp_addsubscription @publication = N'test_init_backup', @subscriber = N'sub_server_name',
@destination_db = N'destination_db_name', @sync\_type = N'инициализация с резервной копией',
@backupdevicetype='URL',@backupdevicename='backup_file_namePath'
Дополнительные сведения см. в разделе Инициализация транзакционной подписки из резервной копии.
Ссылки
Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.