案例:能否将SQL备份还原到不同的数据库?

 

我有一个Database1 备份。备份每周在调度程序中完成,我得到一个 .bak 文件。现在我想摆弄一些数据,所以我需要将它恢复到另一个数据库 - Database2。是否有任何其他方法可以将其恢复到 Database2,或者至少,我如何浏览该 .bak 文件的数据?

- stackoverflow.com

在某些情况下,我们可能希望恢复 SQL备份到具有不同名称的新数据库,以将其与源数据库区分开来。有时我们甚至可能希望将数据库转移到另一个实例或服务器上进行迁移。

那么我们如何在SQL Server中将备份恢复到新数据库呢?在本文中,我总结了 3 种方法来帮助您完成此操作。如果你觉得它们很复杂,你也可以选择专业的软件。

SQL 服务器徽标

什么是数据库备份文件

数据库备份文件是一种包含整个数据库的副本的文件。数据库备份文件通常用于紧急情况和备份恢复方案中。例如,如果发生数据丢失,您可以使用备份文件恢复数据库中的数据。

数据库备份通常包括数据库的所有内容:表、视图、索引、过程、函数、触发器等。备份文件还包括数据、数据结构、用户和权限等信息。这些备份文件可以保存在另一个计算机或云存储中,以防止数据丢失和系统故障。

备份文件可以手动创建,也可以自动计划创建。通常,备份文件每天、每周或每月自动创建一次,以确保您始终有最新的数据库副本。但是请注意,备份文件也需要存储在安全的位置,以避免丢失或被未经授权的人访问。

如何将SQL数据库备份文件还原到另一个数据库

以下3种方法适用于不同的场景。

▶要将SQL备份恢复到不同名称的新数据库,请选择方法1或方法2。

“提示”:开始之前,请确保没有其他人在使用,否则您可能会遇到SQL数据库卡在恢复中的问题。

方法 1:使用 SSMS GUI 将SQL数据库备份文件还原到另一个数据库

Microsoft SQL ServerManagement Studio (SSMS) 的备份和还原功能可以帮助您实现此操作。只需确保您已成功创建 SQL 备份,然后执行以下操作来恢复它们。

1 . 启动SSMS,并连接到您的目标实例。现在请不要创建一个新的空数据库来接收备份中的数据,您只需要右键单击“数据库”并选择“恢复数据库”

恢复数据库

2 . 在提示窗口“通用”页面"源"部分,选择“设备” > … >“添加”,指定位置并选择要恢复的备份文件。该名称将自动填入“数据库”的空白处。然后单击“确定”

选择备份文件

3 . 当你将SQL备份恢复到同一台服务器时,接下来的操作将不同于恢复到另一台服务器。

✦将 SQL数据库还原到具有不同名称的同一服务器

目标 > 数据库中,写一个与前一个不同的新名称。

点击“确定”,它将备份恢复到一个新的数据库。

恢复数据库新名称

✦将 SQL数据库还原到另一个实例/服务器

您还可以将SQL Server数据库备份从 bak 文件恢复到另一台服务器,但在这种情况下您不必更改名称。“*如果你真的想改变它,你可以在数据库”“目标”部分的空白处重命名数据库。

在左侧菜单中 选择“文件”,然后“在将数据库文件还原为”部分中勾选“将所有文件重新定位到文件夹”。然后单击“确定”。完成后,“刷新”数据库列表,您可以看到数据库在这里。 

文件搬迁

方法二:使用T-SQL命令将SQL备份恢复到新数据库

如果您熟悉 T-SQL,则可以尝试使用此方法代替备份和恢复 GUI。 

1 . 启动SSMS并连接到您的服务器,右键单击目标实例名称并选择“新建查询”

新查询

2 . 输入以下语句以查找备份的逻辑文件名。

RESTORE FILELISTONLY FROM DISK='filepath\backup.bak'

“注意”:在“filepath\backup.bak”中,您需要写下备份的位置和备份的文件名。例如:C:\mydb\backup.bak

3 . 单击“执行”,您将在“结果”部分看到逻辑文件名。

逻辑名称

4 . 输入以下语句将此备份恢复到新数据库(如果您正在将备份恢复到另一台服务器,则不需要重命名数据库)。您不必在此之前创建新的数据库。

从磁盘恢复数据库新名称='filepath\backup.bak'
WITH
   MOVE 'logical_filename' TO 'filepath\newname.mdf',
   MOVE 'logical_filename_log' TO 'filepath\newname_log.ldf'

将 SQL 备份还原到具有不同名称的同一服务器

至于 'filepath\newname.mdf' 和 'filepath\newname_log.ldf' 部分你需要写新数据库应该放在的路径。 

移动恢复

如果您不知道该文件夹在哪里,您可以右键单击您的目标实例并选择属性 > 数据库设置 > 数据来查找。

数据库属性数据

将 SQL 备份还原到另一个实例/服务器

在开始之前,请确保您的目标实例具有访问备份文件的权限。

在 'filepath\newname.mdf' 和 'filepath\newname_log.ldf' 你需要写目标实例的路径,而不是原始实例。

单击“执行”。看到成功的结果,点击“刷新”,数据库就出现在列表中了。

还原到另一台服务器

“注意”:如果您收到错误报告:无法打开备份设备。操作系统错误5(Access is denied),原因可能是你登录SQL Server的账号没有读写目标共享的权限。 您可以查看本文以了解解决方案:SQL Server 备份到网络共享访问被拒绝

将 SQL 备份还原到另一个实例/服务器的集中式工具

为了使恢复到另一台服务器更容易,您可以选择傲梅企业备份网络版, 使用简单的点击将 SQL数据库备份文件和恢复到另一个实例,甚至是局域网内的另一台计算机。它与所有 Windows PC 和服务器兼容。

与传统方式相比,本软件更简单,不需要在每台服务器上单独操作,您可以在安装本软件的电脑上集中备份和恢复。功能包括:

“备份”:文件备份、系统备份、磁盘备份、分区备份、 SQL 服务器备份.

“文件同步”:计划同步,实时同步, 镜像同步。*自动将文件夹复制到网络共享。

“选项”:备份计划、完整/增量/差异备份、保留策略、压缩、加密等。

“还原”:还原到原始位置,还原到另一台客户端计算机,即使硬件不同。

Monitor : 监控客户端的网络、CPU、内存、磁盘等性能信息。还可以设置告警,对异常性能信息进行及时预警。

为您提供180天免费试用:

要正确安装 傲梅企业备份网络版,您可以按照以下步骤操作:

启动 傲梅企业备份网络版,然后通过单击“计算机” > “安装客户端程序”远程或手动安装代理程序。

安装客户端程序

对于手动安装了客户端程序的计算机,您仍然需要对其进行“请求控制才能进行进一步的操作”。

单击“计算机”>“不受控制的计算机”以找到正确的 IP,然后单击上方栏中的“请求控制” 。他们的计算机上会显示一个提示窗口,一旦获得所有权限,您就可以随时开始。

请求控制

将 SQL数据库备份文件和还原到其他实例/服务器

选择“任务”>“新建任务”>“SQL Server 备份”以创建新的备份任务。按照提示窗口中的 3 个步骤进行操作。

“第一步:”点击“添加计算机”,检测到所有具有SQL实例的受控计算机,选择正确的IP,点击“确定”

添加计算机

“第二步:”单击“添加”,您可以选择要备份的多个数据库。

添加所有实例

第三步:,点击“添加存储”,添加Share或NAS Device作为存储端,选择路径。然后点击“开始备份”开始。

共享 Nas 存储

“✦”如何将 SQL 备份还原到另一个实例或计算机

1 . 创建的备份任务将显示在“任务”选项卡中,您可以在这里管理或恢复它,而不是在磁盘上定位特定的 bak 文件。只需点击"任务",然后点击左上角的“高级” ,选择“还原”

恢复数据库

2 . 在此步骤中,您可以选择要从中还原的计算机和特定备份(完整/差异),您可以根据需要选择其中的数据库。

选择特定备份

3 . 选择将数据库还原到原始位置或新位置。通过选择第二个选项,您可以在同一或局域网中的另一个SQL Server上指定另一个实例。然后单击“开始还原”以完成此任务。

恢复到新位置

概括

在本文中,我介绍了什么是数据库备份文件,以及如何去还原。

如果觉得这些方式不够直观,还可以选择更简单的工具:傲梅企业备份网络版全数据库版。除了SQL数据库,它还是一个集中备份软件用于计算机文件、分区、磁盘或操作系统。您甚至可以将多台计算机上的文件夹同步到中央网络位置。