修复SQL Server数据库卡在恢复过程中的5种行之有效的方法
如果您发现SQL Server数据库卡在恢复过程中,可能有很多原因。最常见的原因是您错误地使用了 No Recovery 选项。在这里我总结了5种方法来解决这个问题。
我备份了一个数据库:
BACKUP DATABASE MyDatabase
TO DISK='MyDatabase.bak'
WITH INIT --overwrite existing
然后尝试恢复它:
RESTORE DATABASE MyDatabase
FROM DISK='MyDatabase.bak'
WITH REPLACE --force over specified database
现在数据库停留在恢复状态。
您是否也发现SQL数据库卡在恢复中的问题,这个烦人的“正在恢复”标志,您的数据库就无法再操作它了,有时还会收到“无法获得独占访问权,因为数据库正在使用中“ 警报。
在这里,我将列出可能导致SQL Server数据库恢复状态的原因,并为您提供5个行之有效的方法来解决此问题。
在排除故障之前,一些用户可能会有疑问“恢复数据库通常需要多长时间”?
这个问题并不确定,因为它涉及许多因素,例如数据库的大小、计算机的硬件、是否从本地磁盘、外部设备或网络位置恢复。
不管怎样,当你发现SQL数据库卡在恢复状态而无法访问时,你可以考虑一些常见的原因:
✎“例如”:
在这里,我总结了5种方法来修复SQL Server2014、2016、2019 等数据库卡在恢复中的问题。可以一一尝试。.
*在尝试以下方法之前,请检查卡住的数据库是否有您忘记关闭的“查询窗口”,如果有,请先将其关闭。这可能会直接解决问题。
通常SQL Server数据库恢复默认使用“With Recovery” ,当你想同时恢复更多数据库或日志时使用“No Recovery”选项 - 它告诉SQL Server等待更多操作。因此,您需要使用“With Recovery”来完成还原:
1. 启动SSMS并连接到您的实例,单击上方栏中的“新建查询”。然后在空白处输入以下语句:
RESTORE DATABASE“数据库名称”WITH RECOVERY
“注意:”如果你想在恢复时覆盖这个数据库而不先备份事务日志的尾部,你可以在RECOVERY之前添加REPLACE。但要小心,它可能会导致数据丢失。您可以在拥有完整备份时执行此操作。
2. 然后单击“执行”。当您收到成功结果时,“刷新”数据库列表,您可以看到数据库已停止恢复。
1. 启动 SSMS 并连接到您的实例,右键单击处于还原状态的SQL Server数据库,选择“任务”>“还原”>数据库...
2. 转到右侧选项卡中的“选项”页面,在“恢复状态”部分中选择”“使用恢复进行还原”。
3. 然后单击“确定”。恢复成功后,右击"数据库"刷新列表,可以看到数据库已经脱离恢复状态。
1. 启动SSMS并连接到您的实例,右键单击卡在还原中的数据库,选择“任务”>“还原”>“事务日志…”
2. 在提示窗口的“通用”页面中,取消选中"事务日志"部分中的 all log backups,然后单击“确定”。
3. “刷新”你的数据库列表,你可以看到你的数据库恢复正常了。
1. 启动SSMS并连接到您的实例,右键单击卡在还原中的数据库,选择“任务”>“还原”>数据库...
2. 转到“选项页面,勾选”“关闭目标数据库的现有连接”选项。您将在下面看到一条通知,告诉您这可能会使目标数据库处于单用户模式。
3. 然后点击“确定”,database-in-use错误就不会再发生了。
1. 启动SSMS并连接到您的实例,单击上方栏上的“新建查询,然后输入以下语句:”
USE master;
GO
ALTER DATABASE“数据库名”
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
ALTER DATABASE“数据库名”
SET MULTI_USER;
GO
2. 然后单击“执行”,您将在恢复之前关闭现有连接。
“注意:”如果你有完整备份,你也可以删除数据库,然后直接从 bak 文件恢复数据库。
我发现很多时候,SQL数据库卡在恢复中是因为用户在脚本中错误地使用了No Recovery。除了这个问题,不正确地使用脚本还可能导致许多其他错误,甚至数据丢失。
因此,如果你对T-SQL不熟悉,或者你想备份和恢复SQL数据库错误率较低,推荐你一款专业的企业端点备份软件傲梅企业备份网络版.
“要正确使用傲梅企业备份网络版,请按照以下步骤操作:”
☛ 启动 傲梅企业备份网络版,然后通过单击“计算机”> "安装客户端"远程或手动安装客户端 。
☛ 对于手动安装了客户端程序的计算机,您仍然需要对其“进行请求控制才能进行进一步的操作”。
单击“计算机”> “不受控制的计算机”以找到正确的 IP,然后单击上方栏中的“请求控制” 。他们的计算机上会显示一个提示窗口,一旦获得所有权限,您就可以随时开始。
点击上方栏的"任务",点击"新任务",选择"SQL Server备份",新建一个备份任务。按照提示窗口中的 3 个步骤进行操作。
“第一步”,点击“添加计算机,”在所有被控制的有SQL数据库的计算机中找到正确的IP,点击“确定”。
“第二步”,点击“添加”,您可以选择要备份的多个实例和数据库。
“第三步”,选择一个位置作为目标路径,可以在提示窗口中点击“添加存储”,添加一个网络共享或NAS作为存储端。然后单击“开始备份”以开始任务。
创建后,任务将单独显示在“任务”页面上。
✦如何安全地恢复 SQL数据库
“第一步”,点击SQL Server备份任务右上角的“高级”,选择“恢复”。
“第二步”,在提示窗口中选择要恢复的计算机和数据库。
您还可以在右上角选择一个特定的备份(完整/差异)。单击“下一步”。
第3步,选择“恢复到原始位置”或“恢复到新位置”。
如果你选择后者,你可以将备份还原到同一台或另一台服务器上的另一个实例。然后点击 "开始还原"。
在本文中,我介绍了5种行之有效的方法来解决SQL数据库卡在恢复的问题。
但是,如果您想要更简单、更安全的方式来无误地备份和恢复数据库,我建议您使用傲梅企业备份网络版。
它具有简单直观的界面,供您集中操作和管理局域网内多台Windows PC、工作站和服务器的备份和恢复。您还可以检查日志以查看这些操作的详细信息。
此外,它还集中了文件备份、系统备份和磁盘备份、分区备份、基本同步、实时同步和镜像同步等功能,可以为您节省大量时间,从而提高效率。