我最近使用sql Server 2016 Web Edition建立了一个新的
Windows Server 2012 R2实例,我正在尝试设置自动备份到Azure,但没有任何运气.我首先在Azure上创建了存储帐户,然后创建了共享访问签名(SAS),这就是我开始迷路的地方.从这里开始,我尝试过:
>使用此脚本创建本地凭据:
CREATE CREDENTIAL [BlobUrlWithContainerName] WITH IDENTITY = '[FriendlyName]',SECRET = '[SAS Token]'`
上述脚本没有报告错误,但是向URL发出BACKUP DATABASE命令会导致不支持的命令(完整错误是:无法打开备份设备’https:// [storagename] .blob.core.windows.net / [containername] /AdventureWorks2016.bak’.操作系统错误50(不支持请求.).
>然后我尝试在单个数据库备份选项上浏览SSMS,右键单击数据库,选择Tasks ==>备份..,将备份更改为URL并单击添加.当我这样做时,我会收到提示:
没有注册的容器存在(也无法找到有关如何注册一个的详细信息),所以我单击New Container,它给了我一个连接到Microsoft订阅对话框.我使用我的Azure帐户登录,看到两个订阅(免费试用,已过期,按需付费,这是正确的),选择现收现付,然后当我选择我的存储帐户时,对话框关闭,我得到一个“索引超出范围”错误,这意味着它找不到任何容器.以下是相关的截图:
我不知道从哪里开始.有任何想法吗?
解决方法
对我来说,一切都是正确的,除了SAS令牌. SAS令牌不应以’?’开头问号字符.
示例SAS令牌(凭据密码/密码)
sv=2017-01-02&ss=abcd&srt=abc&sp=rwdlacup&se=2027-09-11T05:00:00Z&st=2017-09-11T04:55:00Z&spr=https&sig=randomcharactersandnumbers