gpt4 book ai didi

sql - 从 URL(Azure 存储)还原数据库失败,没有更多详细信息

转载 作者:行者123 更新时间:2023-12-02 06:51:35 25 4
gpt4 key购买 nike

在运行 Windows 2008 R2 和 SQL 2012 Enterprise SP1 CU5 的 Windows Azure VM 上,我尝试使用新功能“从 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 事件日志中也没有。该硬盘上有足够的可用空间。虚拟机和存储位于同一个数据中心,并且我在构建环境时遵循了所有最佳实践。

编辑> 在数据库恢复之后和开始恢复日志文件之前(换句话说,当日志文件被清零时),我注意到事件查看器中出现以下几行

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 失败?如果是这样,我该如何更改此超时?

最佳答案

您可能希望尝试启用即时文件初始化(它解决了我的问题)。为此,您需要在安全策略中授予 SQL 服务帐户“执行卷维护任务”权限。

有关说明,请参阅:
http://blogs.msdn.com/b/sql_pfe_blog/archive/2009/12/23/how-and-why-to-enable-instant-file-initialization.aspx

感谢这个“问题”提供的答案:
https://stackoverflow.com/questions/20692592/restoring-large-database-backups-from-azure-blob-storage-to-sql-server-2012-in-a

关于sql - 从 URL(Azure 存储)还原数据库失败,没有更多详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18738047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com