温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么修复SQL Server数据库中的恢复挂起状态

发布时间:2022-03-01 10:07:54 来源:亿速云 阅读:2161 作者:iii 栏目:开发技术

本文小编为大家详细介绍“怎么修复SQL Server数据库中的恢复挂起状态”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么修复SQL Server数据库中的恢复挂起状态”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

将 SQL 数据库置于恢复模式的原因

SQL 服务器恢复挂起可能是因为在解析数据库中的某些事务期间系统关闭不当。

当你的硬盘或 RAM 中没有足够的空间时,有时运行各种查询会导致 SQL 数据库恢复挂起状态。各种用户移动他们的日志文件,以便可以增加系统的吞吐量,但在传输 SQL 文件时,他们的数据被损坏,这迫使数据库处于恢复挂起状态。 

SQL Server 数据库中的各个阶段

SQL Server 数据库中存在三个管理阶段,它们根据损坏的严重程度进行划分。 

在线阶段- 如果用户在 SQL 数据库服务器上工作时正在执行查询并且一个数据库文件在此过程之间损坏,则数据库保持在线并且仍然可以在线访问。这个阶段被称为在线阶段。

可疑阶段- 在 SQL 应用程序启动时,如果服务器无法恢复数据库,则 SQL 将数据库标记为可疑。

恢复挂起阶段- 此阶段发生在 SQL Server 知道必须运行数据库恢复但有什么阻止它启动时。在这种情况下,SQL Server 会将 DB 标记为“Recovery Pending”状态。

你可以通过在 SQL 数据库上运行以下命令来自行检查处于恢复挂起状态的数据库。

从 sys.databases SELECT name, state_desc 并写 GO 并按回车查看 SQL 数据库恢复挂起状态为;

可以看出结果中位置6的Demo是一个RECOVERY PENDING STATE的数据库。

现在让我们研究一下恢复 SQL server 恢复挂起阶段的方法。

SQL Server 数据库中的手动恢复挂起状态

在恢复模式下解决 SQL 数据库问题的手动方法是通过两个步骤完成的。在我们研究这些步骤之前,我建议复制一份你的 SQL 数据库,这样如果你无法解析这些步骤,那么你的数据就不会受到损坏。

第 1 步

在紧急模式下勾选 SQL 并强制修复它。使用 Alter DB 和 CHECKDB 命令删除 MS SQL 恢复挂起状态,如下所示:

ALTER DATABASE [DBName] SET EMERGENCY;

ALTER DATABASE [DBName] set single_user;

DBCC CHECKDB ([DBName], REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS;

ALTER DATABASE [DBName] set multi_user

SQL 通过将 SQL 服务器从紧急阶段中解放出来来帮助他们的用户,但如果上述命令不能帮助你解决问题,那么,

使用以下命令将数据库置于紧急模式,

ALTER DATABASE mydatabase SET EMERGENCY。使用此命令后,紧急标记将放置在文件后面。

现在,你必须通过应用以下查询将 SQL 数据库从紧急模式设置回正常模式,

ALTER DATABASE mydatabase SET ONLINE

第 2 步

将数据库设置为紧急模式并分离并重新连接主数据库

要执行此步骤以克服 SQL server recovery Pending 状态,你需要执行与步骤 1 中所做的相同的步骤,将数据库置于紧急状态。此用户需要通过运行查询使 MS SQL 脱机,然后再次联机,以克服 MS SQL 恢复挂起状态。

ALTER [DBName] SET EMERGENCY;

ALTER DATABASE [DBName] set multi_user

EXEC sp_detach_db '[DBName]'

EXEC sp_attach_single_file_db @DBName = '[DBName]', @physname = N'[mdf path]'  

使用第二步,用户将能够创建一个新的日志文件,损坏的文件会自动从数据库中删除。让我们看看你在使用第 1 步和第 2 步消除 SQL 服务器恢复挂起问题时将遇到的问题。

手动方法限制
  • 在修复 SQL Server 数据库中的恢复挂起状态时,数据库损坏程度可能很高。

  • 如果你不熟练或来自技术领域,你将无法很好地运行这些命令,从而导致 SQL 数据库文件混乱。

  • 手动将 SQL 服务器联机或脱机可能会使你的应用程序完全损坏,因此关系数据库会受到很大的挫折,从而导致整个安装应用程序崩溃。

现在让我们转向另一种控制 SQL 服务器数据库恢复挂起问题的方法。

SQL Server 数据库中的专业恢复挂起状态 

克服 SQL 服务器恢复挂起问题的专业方法比手动方法更好。在这方面,我们使用SQL 数据库恢复工具来修复和恢复 SQL 数据库的损坏文件,并帮助你修复 SQL 服务器数据库中的恢复挂起状态。此工具支持 MDF 和 NDF 文件。使用此实用程序可以恢复你的数据库表、触发器、记录、函数和存储过程。 

牢记数据的重要性,此实用程序强制执行两种标准和高级恢复模式。在使用 SQL 数据库恢复工具进行修复后,用户还可以将文件从一台 SQL 服务器保存到另一台。这个工具欢迎所有版本的windows。使用此软件时也可以考虑架构和快照。 

使用 SQL 数据库恢复工具后,您不会在修复 SQL Server 数据库恢复挂起状态时遇到任何问题。

读到这里,这篇“怎么修复SQL Server数据库中的恢复挂起状态”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI