Server数据库非常大(4TB)处于恢复状态。原因:数据中心有一个计划的停机时间,我们不得不关闭物理机器,当它打开时,当我在错误日志中读取时,SQL Server无法访问这些文件,因为文件位于SAN机器上,而且可能事情并不顺利。
打开失败:无法为文件号1打开文件E:\SomeFolder\SomeDatabase.mdf。OS错误:5(访问被拒绝。)
既然我已经确保SAN已经启动并运行,并且权限已经确定,那么如何告诉SQL Server继续恢复呢?因为这个数据库很大,所以我不想中断恢复过程,从一开始就开始。而且,任何备份都需要几个小时才能完成。
发布于 2016-09-13 07:28:53
server服务帐户没有访问该文件的权限。
发布于 2019-04-08 20:10:43
我不是SQL内部的专家,但我非常怀疑您将无法温和地提示SQL重新检查文件并继续数据库恢复;当遇到该错误时,它将放弃恢复工作。
正如另一个答案所示,您必须完全重新启动SQL实例,或者将数据库脱机并重新联机以开始恢复。
发布于 2019-04-09 01:48:07
既然我已经确保SAN已经启动并运行,并且权限已经确定,那么如何告诉SQL Server继续恢复呢?
如果数据库处于“恢复待定”状态,只需尝试将DB联机:
ALTER DATABASE [db_name] SET ONLINE
GO这将重新启动恢复过程。
注意:对于VLDB,此恢复过程可能需要很长时间。
因为这个数据库很大,所以我不想中断恢复过程,从一开始就开始。而且,任何备份都需要几个小时才能完成。
如果您提到的访问拒绝错误导致DB失败,则恢复不会运行,因此没有什么可中断的。您可以使用以下查询验证这一点:
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,但至少给出了进程正在运行的想法。
https://dba.stackexchange.com/questions/126419
复制相似问题