我的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
答案 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
模式。