首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VLDB卡在恢复状态。这是许可问题,现在我该怎么办?

VLDB卡在恢复状态。这是许可问题,现在我该怎么办?
EN

Database Administration用户
提问于 2016-01-16 04:55:26
回答 3查看 174关注 0票数 4

Server数据库非常大(4TB)处于恢复状态。原因:数据中心有一个计划的停机时间,我们不得不关闭物理机器,当它打开时,当我在错误日志中读取时,SQL Server无法访问这些文件,因为文件位于SAN机器上,而且可能事情并不顺利。

打开失败:无法为文件号1打开文件E:\SomeFolder\SomeDatabase.mdf。OS错误:5(访问被拒绝。)

既然我已经确保SAN已经启动并运行,并且权限已经确定,那么如何告诉SQL Server继续恢复呢?因为这个数据库很大,所以我不想中断恢复过程,从一开始就开始。而且,任何备份都需要几个小时才能完成。

EN

回答 3

Database Administration用户

发布于 2016-09-13 07:28:53

server服务帐户没有访问该文件的权限。

  1. 导航到此文件所在的文件夹。
  2. 将此文件夹上的完全控制权限授予SQL server服务帐户。
  3. 使DB脱机-联机或重新启动SQL server服务。
票数 2
EN

Database Administration用户

发布于 2019-04-08 20:10:43

我不是SQL内部的专家,但我非常怀疑您将无法温和地提示SQL重新检查文件并继续数据库恢复;当遇到该错误时,它将放弃恢复工作。

正如另一个答案所示,您必须完全重新启动SQL实例,或者将数据库脱机并重新联机以开始恢复。

票数 0
EN

Database Administration用户

发布于 2019-04-09 01:48:07

既然我已经确保SAN已经启动并运行,并且权限已经确定,那么如何告诉SQL Server继续恢复呢?

如果数据库处于“恢复待定”状态,只需尝试将DB联机:

代码语言:javascript
复制
ALTER DATABASE [db_name] SET ONLINE
GO

这将重新启动恢复过程。

注意:对于VLDB,此恢复过程可能需要很长时间。

因为这个数据库很大,所以我不想中断恢复过程,从一开始就开始。而且,任何备份都需要几个小时才能完成。

如果您提到的访问拒绝错误导致DB失败,则恢复不会运行,因此没有什么可中断的。您可以使用以下查询验证这一点:

代码语言:javascript
复制
SELECT command AS [Command],
    DB_NAME(database_id) AS [DB],
    CAST(percent_complete AS DECIMAL(5,2)) AS [PercentComplete], 
    DATEADD(SECOND, estimated_completion_time, GETDATE()) AS [ETA],
    wait_resource, 
    wait_time, 
    wait_type, 
    blocking_session_id
FROM sys.dm_exec_requests
WHERE command = 'DB STARTUP' -- may need to change this if troubleshooting recovery as part of attach database or restore

注意:如果您在AG辅助服务器上运行此查询,您将看到多个会话运行DB启动。

注意2:这个查询不是100%准确的RE: ETA和% complete,但至少给出了进程正在运行的想法。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/126419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档