Я пытаюсь восстановить базу данных в экземпляр управляемой базы данных Azure, используя их REST API. В частности, у меня есть резервная копия в BLOB-объекте в учетной записи хранения.
Мой URL выглядит так:
https://management.azure.com/subscriptions/<subscription ID>/resourceGroups/<Resouce Group Name>/providers/Microsoft.Sql/managedInstances/<Managed Instance Name>/databases/<Database Name>?api-version=2017-03-01-preview
Мой запрос выглядит так:
{
"location" : "southcentralus",
"properties" : {
"createMode" : "RestoreExternalBackup",
"storageContainerSasToken" : "<SAS Token>",
"storageContainerUri" : "<Storage Container Uri>",
"collation": "SQL_Latin1_General_CP1_CI_AS"
}
}
Когда я отправляю запрос, я получаю 202 (Принято). Тем не менее, когда я запрашиваю статус запроса, используя возвращенный заголовок местоположения, мне выдают Внутреннюю ошибку сервера и идентификатор отслеживания, который я не могу понять, откуда идти дальше.
Я уверен, что мой запрос действителен согласно документам. Я предоставляю поля, которые они помечают как (условно) обязательные для данного createMode, и мой запрос, похоже, соответствует примеру из документации.
То, что мне нравится, это то, что я не могу указать, какой файл резервной копии восстановить в этом запросе. Если мой токен SAS неверен, возвращается ошибка типа проверки, поэтому я считаю, что это правильно. У меня есть этот запрос, работающий с createMode PointInTimeRestore, но это больше обходного пути на данный момент.
edit: Дополнительная информация: Базу данных можно успешно восстановить с помощью Sql Mgmt Studio. PointInTimeRestore, который, казалось, работал, на самом деле не работает. Это делает это дальше, но в конечном итоге ошибки также.