如何将数据库还原到新位置和新名称 (Transact-SQL)

更新日期: 2006 年 4 月 14 日

本主题介绍了如何使用新位置以及新名称(可选)还原数据库。

ms190447.security(zh-cn,SQL.90).gif安全说明:
建议您不要附加或还原未知或不可信源中的数据库。此类数据库可能包含恶意代码,这些代码可能会执行非预期的 Transact-SQL 代码,或者通过修改架构或物理数据库结构导致错误。在使用未知或不可信源中的数据库之前,请在非生产服务器上的数据库中运行 DBCC CHECKDB,同时检查数据库中的代码(例如,存储过程或其他用户定义代码)。

用新名称还原数据库

  1. (可选)执行 RESTORE FILELISTONLY 语句,以确定完整数据库备份中的文件数及名称。

  2. 执行 RESTORE DATABASE 语句可以还原完整数据库备份,同时指定:

    • 数据库的新名称。
      ms190447.note(zh-cn,SQL.90).gif注意:
      如果要将数据库还原到其他服务器实例,则可以选择使用原始名称而不是新名称。
    • 从中还原完整数据库备份的备份设备。
    • 指定 NORECOVERY 子句,前提是还原了文件备份后,还要应用事务日志备份。否则应指定 RECOVERY 子句。
      如果要应用事务日志备份,则事务日志备份必须包含备份文件的时间。
    • 如果文件名已经存在,则为每个要还原到新位置的文件指定 MOVE 子句。例如,可能需要在同一台服务器上创建现有数据库的副本以用于测试。在这种情况下,由于原始数据库的数据库文件已经存在,因此在还原操作期间创建数据库副本时,必须指定不同的文件名。
      MOVE 子句的语法如下:
      MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name'
      [ ,...n ] [ , ]
      其中,logical_file_name_in_backup 是备份集中数据或日志文件的名称,operating_system_file_name 是文件应还原到的位置。n 是占位符,指示可以指定其他 MOVE 子句。请为每个要从备份集还原到新位置的逻辑文件指定 MOVE 语句。
      ms190447.note(zh-cn,SQL.90).gif注意:
      若要从备份集中获取逻辑文件列表,请使用 RESTORE FILELISTONLY。

示例

此示例创建名为 MyAdvWorks 的新数据库。MyAdvWorks 是现有 AdventureWorks 数据库的副本,它包括两个文件:AdventureWorks_DataAdventureWorks_Log。由于 AdventureWorks 数据库已存在,因此在还原操作过程中必须移动备份中的文件。RESTORE FILELISTONLY 语句用于确定待还原数据库内的文件数及名称。

ms190447.note(zh-cn,SQL.90).gif注意:
有关如何创建 AdventureWorks 数据库的完整数据库备份的示例,请参阅如何创建完整数据库备份 (Transact-SQL)
ms190447.note(zh-cn,SQL.90).gif注意:
备份和还原事务日志的示例(包括时点还原)使用从 AdventureWorks 创建的 MyAdvWorks_FullRM 数据库的方式与下面的 MyAdvWorks 示例相同。但是,必须将所得的 MyAdvWorks_FullRM 数据库更改为使用完整恢复模式:ALTER DATABASE MyAdvWorks_FullRM SET RECOVERY FULL
USE master
GO
-- First determine the number and names of the files in the backup.
-- AdventureWorks_Backup is the name of the backup device.
RESTORE FILELISTONLY
   FROM AdventureWorks_Backup
-- Restore the files for MyAdvWorks.
RESTORE DATABASE MyAdvWorks
   FROM AdventureWorks_Backup
   WITH RECOVERY,
   MOVE 'AdventureWorks_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf', 
   MOVE 'AdventureWorks_Log' TO 'F:\MyLog\MyAdvWorks_Log.ldf'
GO

请参阅

概念

当数据库在其他服务器实例上可用时管理元数据
备份和还原的安全注意事项
通过备份和还原来复制数据库

其他资源

RESTORE (Transact-SQL)
SQL Server Management Studio 教程

帮助和信息

获取 SQL Server 2005 帮助