我正在运行修补后的SQL 2014尝试将数据库备份到我们的Azure存储BLOB中,使用:
BACKUP DATABASE [DB]
TO URL = N'https://storage.blob.core.windows.net/server-mssqlserver/DB.bak'
WITH CREDENTIAL = N'AzureCredential'
,NOFORMAT
,NOINIT
,NAME = N'DBA_DB-Full Database Backup'
,NOSKIP
,NOREWIND
,NOUNLOAD
,COMPRESSION
,STATS = 5
GO
但查询会引发以下错误:
Msg 3292,Level 16,State 9,Line 1
尝试使用指定的URL设备执行备份或还原时发生故障。有关详细信息,请参阅Windows事件日志 消息3013,级别16,状态1,行1 BACKUP DATABASE异常终止。
检查服务器的事件日志会将实际错误显示为:
SQLVDI:Loc = IdentifySQLServer。 DESC = MSSQLSERVER。 ErrorCode =(5)访问被拒绝 。过程= 4668。线程= 6596。客户。实例= MSSQLSERVER。 VD =
我已确保 SQL Server代理服务的帐户具有创建全局对象策略,并确保 SQL VSS Writer 服务正在本地系统帐户下运行。错误不断发生!
我可以做些什么来修复它,或者只记录一些比#34; SQLVDI:Loc = IdentifySQLServer"更详细的错误消息。一个上面?
答案 0 :(得分:0)
Crikey,这是其中之一"不知道我是如何修理它的#34;的东西。
在我去吃午餐之前,我可以通过运行提供的T-SQL可靠地生成有问题的错误,但当我从午餐回来时,BACKUP命令就完成了!
我记得更改的主要内容是Azure端的 ,我在其中创建了 SAS(共享访问签名)。
对于SQL 2014,这应该是不是必需的,因为它使用实际的Azure Credential来连接到存储。我实际上为SQL Server 2016的一个实例创建了SAS,我希望备份到同一个容器,可能也打开了SQL Server 2014容器的访问途径!
非常感谢Sean Gallardy推荐ProcMon,其中显示的错误日志信息比" ErrorCode =(5)访问被拒绝"消息确实。