我正在尝试使用其REST API将数据库还原到Azure托管数据库实例。具体来说,我在存储帐户的Blob中有一个备份。
我的网址如下:
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(接受)。但是,当我使用返回的位置标头查询请求的状态时,会收到内部服务器错误和跟踪ID,我似乎无法弄清楚该去哪里。
根据文档,我有把握确保我的请求有效。我正在提供给它们指定createMode的字段(有条件),我的请求似乎与文档中的示例匹配。
最重要的是,我似乎无法在此请求中指定要还原的备份文件。如果我的SAS令牌不正确,则会返回验证类型错误,因此我认为它是正确的。我有此请求与PointInTimeRestore的createMode一起使用,但这是目前的一种替代方法。
编辑:一些更多信息:可以通过Sql Mgmt Studio成功还原有问题的数据库。似乎正在运行的PointInTimeRestore实际上并没有。它可以做得更好,但最终也会出错。