在运行 Windows 2008 R2 和 SQL 2012 Enterprise SP1 CU5 的 Windows Azure VM 上,我正在尝试使用新功能 RESTORE DATABASE FROM URL 将存储在 Azure 中的备份还原为页 blob。到目前为止,我已经多次使用高达 60GB 的备份(未压缩),它就像一个魅力。但是,有一个 32GB 的特殊备份我无法恢复。它失败并显示以下错误消息:
Msg 3013, Level 16, State 1, Line 2
RESTORE DATABASE is terminating abnormally.
没有提供有关失败原因的进一步信息。如果我从本地硬盘下载相同的备份,我可以毫无问题地恢复它。我尝试执行
dbcc traceon(3004,3605,-1)
要获取更多信息,我可以看到数据库已成功恢复,然后它在日志文件中归零,完成后就是失败的时候。SQL 日志中没有任何错误消息,Windows 事件日志中也没有。该硬盘驱动器上有足够的可用空间。虚拟机和存储在同一个数据中心,我在构建环境时遵循了所有最佳实践。
编辑>我注意到事件查看器中的以下几行 AFTER 数据库被恢复并且在它开始恢复 LOG 文件之前(换句话说,当日志文件被清零时)
SQLVDI: Loc=CVDS::Close. Desc=Open devices!. ErrorCode=(0). Process=2900. Thread=1104. Client. Instance=MSSQLSERVER. VD=Global\https://url/stuff/xx.bak_SQLVDIMemoryName_0.
SQLVDI: Loc=SignalAbort. Desc=Client initiates abort. ErrorCode=(0). Process=2900. Thread=1104. Client. Instance=MSSQLSERVER. VD=Global\https://url/stuff/xx.bak_SQLVDIMemoryName_0.
SQLVDI: Loc=TriggerAbort. Desc=invoked. ErrorCode=(0). Process=1508. Thread=2008. Server. Instance=MSSQLSERVER. VD=Global\https://url/stuff/xx.bak_SQLVDIMemoryName_0.
是否有可能在归零完成之前与 Azure 存储的连接超时,从而导致 RESTORE 失败?如果是这样,我该如何更改此超时?