停电后,一切都瘫痪了,所有 SharePoint 数据库都处于“恢复待定”状态。这是一个相对较新的安装,尚未进行备份(不要打我,我会自己做)。
当我尝试打开它们时,却无法像这样访问https://dba.stackexchange.com/questions/21817/sql-server-2008-the-database-dbname-is-not-accessible 但是直到发生故障之前权限都很好,所以我认为不是这样。目前我无法为不可访问的数据库分配权限,因为它们会抛出不可访问的错误。
我尝试从头开始重新启动所有内容,确保在 SQL 服务启动之前存储、见证磁盘等可用 - 同样的问题。
该 SQL 上的所有非 SharePoint 数据库都运行良好,可以工作、响应并且完全可用。SQL
2014,集群。SP 2016。
请提供建议。
答案1
我们在卷上遇到了类似的 SharePoint DB 情况,该卷的驱动器空间不足。扩展卷后(您不需要执行此操作)...
打开 SQL Server Management Studio,右键单击每个数据库,选择“所有任务”“脱机”。然后选择“联机”。
数据库已安装,“恢复待处理”消息消失。
答案2
在恢复过程完成之前,您将无法访问数据库。
您可以使用恢复功能让它们重新上线,如下所示:
RESTORE DATABASE YourDatabase WITH RECOVERY
在恢复过程中,您可以像这样检查状态/进度(来自本文, 以供参考:
DECLARE @DBName VARCHAR(64) = 'databasename'
DECLARE @ErrorLog AS TABLE([LogDate] CHAR(24), [ProcessInfo] VARCHAR(64), [TEXT] VARCHAR(MAX))
INSERT INTO @ErrorLog
EXEC master..sp_readerrorlog 0, 1, 'Recovery of database', @DBName
SELECT TOP 5
[LogDate]
,SUBSTRING([TEXT], CHARINDEX(') is ', [TEXT]) + 4,CHARINDEX(' complete (', [TEXT]) - CHARINDEX(') is ', [TEXT]) - 4) AS PercentComplete
,CAST(SUBSTRING([TEXT], CHARINDEX('approximately', [TEXT]) + 13,CHARINDEX(' seconds remain', [TEXT]) - CHARINDEX('approximately', [TEXT]) - 13) AS FLOAT)/60.0 AS MinutesRemaining
,CAST(SUBSTRING([TEXT], CHARINDEX('approximately', [TEXT]) + 13,CHARINDEX(' seconds remain', [TEXT]) - CHARINDEX('approximately', [TEXT]) - 13) AS FLOAT)/60.0/60.0 AS HoursRemaining
,[TEXT]
FROM @ErrorLog ORDER BY [LogDate] DESC
一旦该过程完成,假设没有损坏,数据库应该再次可以访问。如果不能,您可能需要调查损坏和/或其他错误,如下所示:
DBCC CHECKDB (‘YourDBname’) WITH NO_INFOMSGS, ALL_ERRORMSGS