sql - 用于将数据库从 Blob 存储还原到托管实例的 Azure 自定义脚本
问题描述
我需要 PS 中的后 VM 部署脚本来将位于 Blob 存储中的 .BAK 文件还原到 Azure 托管实例。我可以使用 SMSS 手动执行此操作,但在尝试从 SQL 查询恢复文件时出现以下错误(下面链接中的错误图像,因为我没有足够的代表来发布图像)
查询我实际上正在运行:
CREATE CREDENTIAL blobstorage
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = '$StrgAccSAS';
RESTORE DATABASE [$DBName]
FROM URL = '$URL'
WITH CREDENTIAL 'blobstorage';
执行脚本时正确传递请求的参数。
解决方案
使用您创建凭据时,SHARED ACCESS SIGNATURE
您必须:
- 将凭据命名为与容器路径相同
- 它必须以 https 开头
- 它不能包含尾部正斜杠
完成此操作后,您就不会(并且不能在托管实例中)使用该WITH CREDENTIAL
选项。SQL 将使用您设置的与您要从中恢复的 URL 匹配的凭据:
RESTORE DATABASE [$DBName]
FROM URL = '$URL'
推荐阅读
- python-3.x - 将自定义格式化日期从字符串转换为日期时间对象
- android - DiffUtil 浓缩咖啡测试
- java - SceneBuilder JavaFX 使用文本框,根据收到的数据创建一个新行
- python - 为什么我的 Python 类中 set 方法中的 NameError 不起作用?
- sql - 如果另一列中的值存在,则删除某些匹配的行
- java - 试图理解这段代码对 HttpURLConnection 的意义
- swift - 用户图像的 ContextMenuConfiguration?
- python - 如何将值插入到 bash 中的配置单元表中?
- flask - 使用 Flask wtf_form 根据 RadioField 选择显示/隐藏输入字段或 div
- vb.net - Get SUM of Unique Value in a collection