本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 将文件还原到 SQL Server 2014 中的新位置。
本主题内容
准备工作:
若要将文件还原到新位置,请使用:
在您开始之前
局限性与限制
还原文件的系统管理员必须是当前使用数据库还原的唯一人员。
在显式或隐式事务中不允许使用 RESTORE 命令。
在完整或大容量日志恢复模式下,在还原文件之前,必须备份活动事务日志(称为日志尾部)。 有关详细信息,请参阅备份事务日志(SQL Server)。
若要还原已加密的数据库,必须有权访问用于加密数据库的证书或非对称密钥。 如果没有证书或非对称密钥,则无法还原数据库。 因此,只要需要备份,就必须保留用于加密数据库加密密钥的证书。 有关详细信息,请参阅 SQL Server Certificates and Asymmetric Keys。
安全
权限
如果还原的数据库不存在,则用户必须具有 CREATE DATABASE 权限才能执行 RESTORE。 如果数据库存在,则 RESTORE 权限默认授予给sysadmin和dbcreator固定服务器角色的成员,以及数据库的所有者(dbo)。(对于 FROM DATABASE_SNAPSHOT 选项,数据库始终存在。)
RESTORE 权限被授予那些成员信息始终可供服务器轻松获取的角色。 由于仅当数据库可访问且未损坏时,才能检查固定数据库角色成员身份,因此执行 RESTORE 时并不总是如此, 因此db_owner 固定数据库角色的成员没有 RESTORE 权限。
使用 SQL Server Management Studio
将文件还原到新位置
在 对象资源管理器中,连接到 SQL Server 数据库引擎的实例,展开该实例,然后展开 “数据库”。
右键单击所需的数据库,指向 “任务”,指向“ 还原”,然后单击“ 文件和文件组”。
在 “常规 ”页上的“ 到数据库 ”列表框中,输入要还原的数据库。 可以输入新数据库,也可以从下拉列表中选择现有数据库。 该列表包括服务器上的所有数据库,不包括系统数据库 master 和 tempdb。
若要指定要还原的备份集的源和位置,请单击以下选项之一:
从数据库
在列表框中输入数据库名称。 此列表仅包含已根据 msdb 备份历史记录备份的数据库。
从设备
单击浏览按钮。 在“ 指定备份设备 ”对话框中,选择 “备份媒体类型 ”列表框中列出的设备类型之一。 若要为 备份媒体 列表框选择一个或多个设备,请单击“ 添加”。
将想要的设备添加到 “备份媒体 ”列表框后,单击“ 确定 ”返回到 “常规 ”页。
在 选择要还原的备份集 网格中,选择要还原的备份。 此网格显示可用于指定位置的备份。 默认情况下,建议使用恢复计划。 若要替代建议的恢复计划,可以更改网格中的选择。 依赖于已取消选择备份的任何备份都会自动取消选中。
列头 价值观 还原 选中的复选框指示要还原的备份集。 名称 备份集的名称。 文件类型 指定备份中的数据类型: 数据、 日志或 Filestream 数据。 表中包含的数据位于 数据文件 中。 事务日志数据位于 日志文件 中。 存储在文件系统上的二进制大型对象(BLOB)数据位于 Filestream 数据文件 中。 类型 执行的备份类型: 完整、 差异或 事务日志。 服务器 执行备份作的 Database-Engine 实例的名称。 文件逻辑名称 文件的逻辑名称。 数据库 备份作中涉及的数据库的名称。 开始日期 备份作开始的日期和时间,显示在客户端的区域设置中。 完成日期 备份作完成的日期和时间,显示在客户端的区域设置中。 大小 备份集的大小(以字节为单位)。 用户名 执行备份作的用户的名称。 在 “选择页面 ”窗格中,单击“ 选项” 页。
在 还原数据库文件作为 网格中,指定要移动的文件或文件的新位置。
列头 价值观 原始文件名 源备份文件的完整路径。 文件类型 指定备份中的数据类型: 数据、 日志或 Filestream 数据。 表中包含的数据位于 数据文件 中。 事务日志数据位于 日志文件 中。 存储在文件系统上的二进制大型对象(BLOB)数据位于 Filestream 数据文件 中。 还原为 要还原的数据库文件的完整路径。 若要指定新的还原文件,请单击文本框并编辑建议的路径和文件名。 在 “还原方式 ”列中更改路径或文件名等效于在 Transact-SQL RESTORE 语句中使用 MOVE 选项。 单击 “确定” 。
使用 Transact-SQL
将文件还原到新位置
(可选)执行 RESTORE FILELISTONLY 语句以确定完整数据库备份中的文件的数量和名称。
执行 RESTORE DATABASE 语句以还原完整数据库备份,并指定:
要还原的数据库的名称。
用于还原完整数据库备份的备份设备。
用于移动每个文件到新位置的 MOVE 子句。
NORECOVERY 子句。
如果在创建文件备份后修改了文件,请执行 RESTORE LOG 语句以应用事务日志备份,并指定:
用于应用事务日志的数据库名称。
从中还原事务日志备份的备份设备。
如果在当前事务日志备份之后还有其他事务日志备份需要应用,请使用 NORECOVERY 子句;否则,请指定 RECOVERY 子句。
如果已应用,事务日志备份必须涵盖备份文件和文件组的时间。
示例 (Transact-SQL)
本示例将最初位于驱动器 C 上的数据库的两个文件 MyNwind 还原到驱动器 D 上的新位置。还将应用两个事务日志将数据库还原到当前时间。 该 RESTORE FILELISTONLY 语句用于确定要还原的数据库中文件的编号和逻辑和物理名称。
USE master;
GO
-- First determine the number and names of the files in the backup.
RESTORE FILELISTONLY
FROM MyNwind_1;
-- Restore the files for MyNwind.
RESTORE DATABASE MyNwind
FROM MyNwind_1
WITH NORECOVERY,
MOVE 'MyNwind_data_1' TO 'D:\MyData\MyNwind_data_1.mdf',
MOVE 'MyNwind_data_2' TO 'D:\MyData\MyNwind_data_2.ndf';
GO
-- Apply the first transaction log backup.
RESTORE LOG MyNwind
FROM MyNwind_log1
WITH NORECOVERY;
GO
-- Apply the last transaction log backup.
RESTORE LOG MyNwind
FROM MyNwind_log2
WITH RECOVERY;
GO
另请参阅
还原数据库备份 (SQL Server Management Studio)
RESTORE (Transact-SQL)
使用备份和还原复制数据库
还原文件和文件组 (SQL Server)