使用备份和还原复制数据库

在 SQL Server 2014 中,可以通过还原使用 SQL Server 2005 或更高版本创建的用户数据库的备份来创建新数据库。 但是,SQL Server 2014 无法还原使用早期版本的 SQL Server 创建的 mastermodelmsdb 的备份。 此外,SQL Server 2014 备份不能由任何早期版本的 SQL Server 还原。

重要

SQL Server 2014 使用与早期版本不同的默认路径。 因此,若要还原在早期版本的默认位置创建的数据库备份,必须使用 MOVE 选项。 有关新的默认路径的信息,请参阅 SQL Server 的默认实例和命名实例的文件位置。 有关移动数据库文件的详细信息,请参阅本主题后面的“移动数据库文件”。

使用备份和还原复制数据库的常规步骤

使用备份和还原将数据库复制到 SQL Server 的另一个实例时,源计算机和目标计算机可以是运行 SQL Server 的任何平台。

常规步骤包括:

  1. 备份源数据库,该数据库可以驻留在 SQL Server 2005 或更高版本的实例上。 运行此 SQL Server 实例的计算机是 源计算机

  2. 在您想要复制数据库到的计算机(目标计算机)上,连接到您计划用于还原数据库的 SQL Server 实例。 如果需要,请在目标服务器实例上创建与用于源数据库的备份相同的备份设备。

  3. 还原目标计算机上的源数据库的备份。 还原数据库会自动创建所有数据库文件。

以下主题介绍了可能影响此过程的其他注意事项。

在恢复数据库文件之前

还原数据库会自动创建还原数据库所需的数据库文件。 默认情况下,还原过程中 SQL Server 创建的文件使用与源计算机上的原始数据库中备份文件相同的名称和路径。

(可选)还原数据库时,可以指定还原数据库的设备映射、文件名或路径。 在以下情况下,这可能是必要的:

  • 原始计算机上数据库使用的目录结构或驱动器映射在其他计算机上不存在。 例如,备份可能包含默认还原到驱动器 E 的文件,但目标计算机缺少驱动器 E。

  • 目标位置的空间可能不足。

  • 你正在重用还原目标上存在的数据库名称,并且其任何文件都与备份集中的数据库文件相同,会发生以下情况之一:

    • 如果可以覆盖现有数据库文件,将覆盖它(这不会影响属于其他数据库名称的文件)。

    • 如果无法覆盖现有文件,将发生还原错误。

若要避免错误和意外后果,在还原作之前,可以使用 备份文件 历史记录表找出计划还原的备份中的数据库和日志文件。

移动数据库文件

如果由于前面提到的原因而无法将数据库备份中的文件还原到目标计算机上,则必须在还原文件时将文件移动到新位置。 例如:

  • 你想要从在早期版本的默认位置创建的备份还原数据库。

  • 出于容量考虑,可能需要将备份中的某些数据库文件还原到其他驱动器。 这可能是一个常见的事件,因为组织中的大多数计算机没有相同的磁盘驱动器数量和大小或相同的软件配置。

  • 出于测试目的,可能需要在同一台计算机上创建现有数据库的副本。 在这种情况下,原始数据库的数据库文件已存在,因此在还原作期间创建数据库副本时需要指定不同的文件名。

有关详细信息,请参阅本主题后面的“将文件和文件组还原到新位置”。

更改数据库名称

在将数据库还原到目标计算机时,可以直接更改数据库的名称,而无需先还原数据库然后再手动更改名称。 例如,可能需要将数据库名称从 Sales 更改为 SalesCopy ,以指示这是数据库的副本。

还原数据库时显式提供的数据库名称将自动用作新数据库名称。 由于数据库名称尚不存在,因此将使用备份中的文件创建一个新名称。

当通过还原升级数据库时

从早期版本还原备份时,提前了解目标计算机上是否存在备份中每个全文目录的路径(驱动器和目录),这很有帮助。 若要列出备份中每个文件的逻辑名称和物理名称、路径和文件名(包括目录文件),请使用 RESTORE FILELISTONLY FROM <backup_device> 语句。 有关详细信息,请参阅 RESTORE FILELISTONLY (Transact-SQL)

如果目标计算机上不存在相同的路径,则有两种替代方法:

  • 在目标计算机上创建等效的驱动器/目录映射。

  • 在还原操作期间,使用 RESTORE DATABASE 语句中的 WITH MOVE 子句将目录文件移动到新位置。 有关详细信息,请参阅 RESTORE (Transact-SQL)

有关升级全文索引的替代选项的信息,请参阅 升级 Full-Text 搜索

数据库所有权

在另一台计算机上还原数据库时,启动还原作的 SQL Server 登录名或Microsoft Windows 用户将自动成为新数据库的所有者。 还原数据库后,系统管理员或新数据库所有者可以更改数据库所有权。 为了防止数据库被未经授权地还原,请使用介质或备份集密码。

还原到另一个服务器实例时管理元数据

将数据库还原到另一个服务器实例上时,若要为用户和应用程序提供一致的体验,可能需要在另一个服务器实例上为数据库(例如登录名和作业)重新创建部分或全部元数据。 有关详细信息,请参阅当数据库在其他服务器实例上可用时管理元数据 (SQL Server)

查看备份集中的数据和日志文件

将文件和文件组还原到新位置

将文件和文件组还原到现有文件上

使用新名称还原数据库

重启中断的还原操作

更改数据库的所有者

使用 SQL Server 管理对象集(SMO)复制数据库

另请参阅

将数据库复制到其他服务器
SQL Server 的默认实例和命名实例的文件位置
RESTORE FILELISTONLY (Transact-SQL)
RESTORE (Transact-SQL)