许多SQL Server数据库管理员(dba)反复地与诸如突然终止、数据库连接或瞬时错误、驱动程序问题、恶意软件攻击等错误作斗争。此类错误可能导致数据库无法使用。虽然重新启动SQL服务器可能在某些情况下解决问题,但使用备份(.bak)文件是恢复SQL数据库(db)的最可行选择。
从。bak文件中恢复SQL Server中的数据库
SQL Server数据库恢复是对数据库的完整备份、差异备份、文件备份或文件组备份进行恢复SQL Server管理工作室(SSMS), T-SQL,或者使用PowerShell.
备份恢复前需要知道的事情
在继续备份恢复过程之前,您需要:
- 在尝试从. bak文件恢复SQL Server数据库之前,请关闭所有活动连接。这样做可以防止由于活动数据库连接而导致恢复过程失败。
- 在最近的SQL Server版本上创建的备份不能恢复到以前的SQL Server版本。
- 在执行完整数据库备份之前,备份活动事务日志。这是因为,如果活动事务日志(也称为日志的尾部)变得不可用,那么该日志中的所有事务都将丢失。
- 当您希望从另一个服务器实例恢复数据库时,您需要管理元数据以使数据库在另一个服务器上可用。参考这个链接了解更多信息。
从。bak文件恢复SQL Server数据库的方法
方法1 -使用SSMS恢复SQL数据库
如果系统上安装了SSMS,请按照以下步骤从备份(.bak)文件恢复SQL数据库:
步骤1:开放地对地导弹并连接到一个SQL Server实例。
步骤2:接下来,转到对象资源管理器,单击“服务器名称”展开“服务器”树。
步骤3:导航到数据库并在SQL Server中打开要恢复的数据库。
步骤4:右键单击数据库,然后点击恢复数据库.
图1 -恢复数据库选项
步骤5:的恢复数据库窗口。在“常规”页面的“源”部分下,选择以下任何一个选项:
a.选择数据库选项,然后从下拉列表中选择要恢复的数据库。
注意:当从另一台服务器获取备份时,目标服务器将不包含所选数据库的备份历史信息。但是,您可以通过选择device选项手动指定数据库文件或设备。 |
b.选择设备选项,然后单击省略号(…)找到你的备份文件。
- 在“选择备份设备”窗口中,选择“文件作为备份介质”,然后单击添加.
- 找到并选择要恢复的.BAK文件,然后单击好吧.
- 再次点击好吧回到恢复数据库窗口。
图2 -找到SQL数据库备份文件
- 从在“选择备份设备”窗口,选择文件作为备份介质,然后单击添加.
图3 -选择Add以导航到.BAK文件
- 找到并选择要恢复的.BAK文件,然后单击好吧.
图4 -选择备份文件
- 再次点击好吧返回“还原数据库”窗口。
图5 -在指定备份窗口中选择备份文件
步骤6:文件中显示待恢复的数据库名称数据库框下目的地部分。并且,所选备份文件的信息将添加到要恢复的备份集部分中。
图6 -恢复数据库窗口中的备份文件
已输入从备份文件恢复数据库所需的所有信息。您只需要单击OK按钮来恢复数据库。但是,SQL .bak文件存储有关数据文件位置的信息,如果这些文件出现任何问题,例如“数据文件名冲突”或“目标目录不存在”,可能会导致错误。
在从另一个SQL Server安装上创建的. bak文件恢复SQL数据库时,通常会出现此类问题。从选项页更改文件设置可以帮助克服任何此类问题。要做到这一点,请遵循以下步骤:
一。选择选项下选择页面.
图7 -找到SQL数据库备份文件
b.在…选项页,做以下工作:
- 下恢复选项部分,选择覆盖现有数据库(WITH REPLACE)”选项。
注意:选择“覆盖现有数据库(WITH REPLACE)选项将覆盖您现有的数据库。如果希望防止这种情况发生,请创建一个新数据库并将物理文件移动到新位置。 |
图8 -恢复选项部分
- 下恢复状态部分中,选择“通过回滚未提交的事务使数据库随时可用”。无法恢复其他事务日志。(用恢复来恢复)。.
注意:如果在完全还原之后执行差异还原或日志还原,则不能使数据库处于已恢复状态。您必须将其保留在未恢复状态,以便应用更多备份,即不恢复恢复数据库。 |
图9 -恢复状态选项
第七步:要继续恢复过程,请单击好吧按钮。
第八步:弹出恢复进度窗口。
图10 - Restore Process in Progress窗口
步骤9:点击好吧当弹出“恢复数据库已成功完成”消息时。
图11 -数据库恢复完成消息
您的SQL数据库将成功恢复。
方法2 -使用T-SQL从。bak文件恢复sql server数据库
您也可以使用T-SQL查询从.bak文件中恢复数据库,步骤如下:
步骤1:开始地对地导弹,然后连接到SQL Server的实例。
步骤2:单击新的查询选择。
步骤3:在查询编辑器窗口中,运行以下RESTORE语句:
- 要从.bak文件恢复整个数据库,使用以下命令:
从磁盘恢复数据库= '\' go |
请确保将'DBName'替换为您希望恢复的数据库的名称。另外,将'BackupFilePath'替换为db备份文件的路径,'BackupFileName'替换为.bak文件的名称。
- 要从.bak文件中恢复一个特定的文件,使用如下命令:
从磁盘恢复数据库文件= '\' go |
将'FileName'替换为要恢复的文件的名称。
方法3 -用替换PowerShell恢复sql数据库
还可以使用restore - sqldatabase命令恢复SQL数据库。cmdlet在SQL Server数据库上执行恢复操作,包括全数据库恢复、事务日志恢复和数据库文件恢复。
重要!如果您有更新的完整数据库备份文件,可以使用上述方法有效地恢复数据库。但是,不能从备份文件中执行选择性数据库恢复。例如,您可以从备份中恢复单个表(如果需要)。 |
你还能做什么来恢复SQL Server数据库?
如果你的SQL数据库损坏了,你没有一个完整的备份副本来恢复数据库,使用恒星修复MSSQL-技术员可以帮助。它是一个全面的软件,包含了帮助dba解决多种问题的工具。使用技术人员提供的备份提取工具,您可以从损坏的备份文件(.bak)中提取数据。您可以使用SQL修复工具修复严重损坏的SQL数据文件(。MDF和.ndf),并恢复所有数据库对象。此外,技术人员的密码恢复工具可以帮助重置丢失/忘记的db文件的密码。
读:如何用恒星修复MS SQL软件恢复SQL Server数据库?
结论
维护SQL Server中的数据库并使其正常运行是dba的首要任务。因此,如果有任何冲突,应该通过使用最后一个已知的良好备份副本执行SQL server数据库恢复过程来快速解决。
了解使用SSMS从。bak文件恢复SQL Server中的数据库的T-SQL命令或步骤,可以帮助您高效地进行SQL数据库恢复。如果备份文件不可用,或者您无法从文件中恢复db,请使用恒星修复MS SQL-技术员软件可以提供帮助。该工具有助于从损坏的。bak文件中提取和恢复数据。您还可以使用技术人员提供的其他工具来解决数据库损坏和密码恢复问题。
常见问题
问:恒星修复的MS SQL软件恢复数据从损坏的。bak文件?
一个。不,该软件可以帮助修复损坏的SQL数据库(MDF或NDF)文件,并在新文件中恢复数据,而无需对原始文件进行任何更改。
您可以尝试使用MS SQL -技术员的恒星修复中可用的备份提取工具从损坏的备份(.bak)文件中提取数据。
问:有没有可能在没有完整数据库备份的情况下恢复差异备份?
一个。不,如果之前没有进行完整的数据库备份,则不可能从差异备份中恢复SQL数据库。这是因为差异备份依赖于上次完整数据备份,并且只保存自上次执行完整备份以来更改的数据。
Q.是否有可能在SQL Server中使用命令行打开一个损坏的。bak文件?
一个。我们不建议使用命令行,因为有可能丢失数据。你可以尝试恒星修复MS SQL-技术员打开一个损坏的。bak文件在SQL服务器。