SQL Server生产服务器 - 所有数据库都处于恢复暂挂状态

时间:2015-02-12 06:16:19

标签: sql-server

我的SQL Server生产服务器中的所有数据库都处于恢复暂挂状态,尝试执行不同的查询但没有用。请帮助我作为客户端的生产工作。

尝试执行alter commands - 但显示错误为

  

Msg 5120,Level 16,State 101,Line 1无法打开物理文件   " G:\数据\ MSSQL \ Database.mdf&#34 ;.操作系统错误3:" 3(系统   找不到指定的路径。)"。文件激活失败。该   物理文件名" G:\ Data \ MSSQL \ Data \ Database_log.ldf"也许   不正确。 Msg 945,Level 14,State 2,Line 1 Database' Database'   由于文件不可访问或内存不足或无法打开   磁盘空间。有关详细信息,请参阅SQL Server错误日志

     

Msg 5069,Level 16,State 1,Line 1

4 个答案:

答案 0 :(得分:2)

  

恢复暂挂意味着由于某种原因SQL无法在数据库上运行重启恢复。通常这是因为日志丢失或损坏。

检查您是否可以在指定的文件夹中找到Database.mdf和Database_log.ldf文件。 检查系统是否没有磁盘空间。

这可能是由硬盘驱动器故障引起的。您可能需要完全恢复上一次完整恢复,任何差异,然后恢复日志,直到发生日志错误。

查看类似问题here

答案 1 :(得分:0)

Recovery Pending – 如果 SQL Server 知道需要运行数据库恢复但某些东西阻止它启动,则服务器将数据库标记为“Recovery Pending”状态。这与 SUSPECT 状态不同,因为不能说恢复会失败——只是还没有开始。

执行以下查询集:

ALTER DATABASE [DBName] SET EMERGENCY; GO
ALTER DATABASE [DBName] set single_user GO
DBCC CHECKDB ([DBName], REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS; GO
ALTER DATABASE [DBName] set multi_user GO

注意:您还可以阅读 DBCC CHECKDB REPAIR ALLOW DATA LOSS 上的 Microsoft Warning

答案 2 :(得分:0)

可能是由于以下可能的原因:

  • 权限

    在服务列表中找到您的 SQL Server 实例并双击它,然后选择登录选项卡。正是此 log on 帐户必须具有足够的权限才能写入临时备份文件夹位置。通过在 Windows 资源管理器中右键单击临时备份文件夹,选择属性,然后导航到安全选项卡,检查对临时备份文件夹的权限。确保 SQL Server 使用的帐户对该文件夹具有显式读/写权限。

  • 映射驱动器

    使用完全限定的 UNC 路径而不是映射的驱动器号。

  • 缺乏域信任

    您可以通过确保在两个域之间建立信任来解决此问题。您可能还需要使用域之间的直通身份验证配置 SQL Server 服务帐户。

请参考更多here恢复数据库

答案 3 :(得分:0)

执行这些查询以修复处于恢复挂起状态的 SQL server database

ALTER DATABASE [DBName] SET EMERGENCY
GO
ALTER DATABASE [DBName] SET single_user
GO
DBCC CHECKDB ([DBName], REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS
GO
ALTER DATABASE [DBName] SET multi_user
GO

EMERGENCY 模式将 SQL Server database 标记为 READ_ONLY,停用日志记录,并仅将权限授予系统管理员。这种方法能够解决任何技术问题并使数据库恢复到可访问状态。数据库将自动退出 EMERGENCY 模式。

相关问题