如何还原数据库备份 (Transact-SQL)

本主题说明如何还原完整数据库备份。

重要说明重要提示

还原完整数据库备份的系统管理员必须是当前使用要还原的数据库的唯一人员。

前提条件和建议

  • 若要还原已加密的数据库,您必须有权访问用于对数据库进行加密的证书或非对称密钥。如果没有证书或非对称密钥,数据库将无法还原。因此,只要需要该备份,就必须保留用于加密数据库加密密钥的证书。有关详细信息,请参阅 SQL Server 证书和非对称密钥

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

升级后的数据库兼容级别

升级后,tempdbmodelmsdbResource 数据库的兼容级别将设置为 100。master 系统数据库保留它在升级之前的兼容级别,除非该级别小于 80。如果 master 的兼容级别在升级前小于 80,升级后兼容级别将设置为 80。

如果升级前用户数据库的兼容级别为 80 或 90,升级后将保持相应级别。如果升级前兼容级别为 70 或更低,则在升级后的数据库中,兼容级别将设置为 80,该级别为 SQL Server 2008 支持的最低兼容级别。

注意注意

新的用户数据库将继承 model 数据库的兼容级别。

过程

还原完整数据库备份

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

    • 要还原的数据库的名称。

    • 从中还原完整数据库备份的备份设备。

    • NORECOVERY 子句,前提是在还原完整数据库备份之后,还要应用事务日志备份或差异数据库备份。

    重要说明重要提示

    若要还原已加密的数据库,您必须有权访问用于对数据库进行加密的证书或非对称密钥。如果没有证书或非对称密钥,数据库将无法还原。因此,只要需要该备份,就必须保留用于加密数据库加密密钥的证书。有关详细信息,请参阅 SQL Server 证书和非对称密钥

  2. 可以选择指定:

    • FILE 子句,以此标识备份设备上要还原的备份集。
注意注意

将 SQL Server 2005 或 SQL Server 2000 数据库还原到 SQL Server 2008 后,该数据库将立即变为可用,然后自动升级。如果数据库具有全文索引,升级过程将导入、重置或重新生成它们,具体取决于 upgrade_option 服务器属性的设置。如果将升级选项设置为“导入”(upgrade_option = 2) 或“重新生成”(upgrade_option = 0),在升级过程中将无法使用全文索引。导入可能需要数小时,而重新生成所需的时间最多时可能十倍于此,具体取决于要编制索引的数据量。另请注意,如果将升级选项设置为“导入”,并且全文目录不可用,则会重新生成关联的全文索引。若要更改 upgrade_option 服务器属性的设置,请使用 sp_fulltext_service

示例

说明

以下示例从磁带中还原 AdventureWorks 的完整数据库备份。

代码

USE master
GO
RESTORE DATABASE AdventureWorks
   FROM TAPE = '\\.\Tape0'
GO