备份和还原系统数据库的注意事项

SQL Server 维护一组系统级数据库(称为“系统数据库”),这些数据库对于服务器实例的运行至关重要。每次进行大量更新后,都必须备份多个系统数据库。必须备份的系统数据库包括 msdbmastermodel。如果有任何数据库在服务器实例上使用了复制,则还必须备份 distribution 系统数据库。备份这些系统数据库,就可以在发生系统故障(例如硬盘丢失)时还原和恢复 SQL Server 系统。

下表概述了所有的系统数据库。

系统数据库

说明

是否需要备份?

恢复模式

注释

master

记录 SQL Server 系统的所有系统级信息的数据库。

简单

必须经常备份 master,以便根据业务需要充分保护数据。建议使用定期备份计划,这样在大量更新之后可以补充更多的备份。

有关详细信息,请参阅 备份 master 数据库时的注意事项

model

在 SQL Server 实例上为所有数据库创建的模板。

用户可配置1

仅在业务需要时备份 model,例如自定义其数据库选项后立即备份。

最佳方法:建议您仅根据需要创建 model 的完整数据库备份。由于 model 较小而且很少更改,因此无需备份日志。

有关详细信息,请参阅备份 model 和 msdb 数据库时的注意事项

msdb

SQL Server 代理用来安排警报和作业以及记录操作员信息的数据库。msdb 还包含历史记录表,例如备份和还原历史记录表。

简单(默认值)

更新时备份 msdb

有关详细信息,请参阅备份 model 和 msdb 数据库时的注意事项

Resource (RDB)

包含 Microsoft SQL Server 2005 或更高版本附带的所有系统对象副本的只读数据库。

Resource 数据库位于 mssqlsystemresource.mdf 文件中,该文件仅包含代码。因此,SQL Server 不能备份 Resource 数据库。

注意注意
通过将 mssqlsystemresource.mdf 文件作为二进制 (.exe) 文件而不是作为数据库文件处理,可以对该文件执行基于文件的备份或基于磁盘的备份。但是不能使用 SQL Server 还原这些备份。只能手动还原 mssqlsystemresource.mdf 的备份副本,并且必须谨慎,不要使用过时版本或可能不安全的版本覆盖当前的 Resource 数据库。

tempdb

用于保存临时或中间结果集的工作空间。每次启动 SQL Server 实例时都会重新创建此数据库。服务器实例关闭时,将永久删除 tempdb 中的所有数据。

简单

无法备份 tempdb 系统数据库。

配置分发

只有将服务器配置为复制分发服务器时才存在此数据库。此数据库存储元数据、各种复制的历史记录数据以及用于事务复制的事务。

简单

有关何时备份 distribution 数据库的信息,请参阅备份和还原复制的数据库

1 若要了解 model 的当前恢复模式,请参阅如何查看或更改数据库的恢复模式 (SQL Server Management Studio)sys.databases (Transact-SQL)

还原系统数据库

重要说明重要提示

只能从在服务器实例当前运行的 SQL Server 版本上创建的备份中还原系统数据库。例如,若要还原在 SQL Server 2005 SP1 上运行的服务器实例上的系统数据库,则必须使用在服务器实例升级到 SQL Server 2005 SP1 之后所创建的数据库备份。

若要还原任何数据库,必须运行 SQL Server 实例。只有在 master 数据库可供访问且至少部分可用时,才能启动 SQL Server 实例。如果 master 数据库不可用,则可以通过下列两种方式之一将该数据库返回到可用状态:

  • 从当前数据库备份还原 master

    如果可以启动服务器实例,则应能够从完整数据库备份还原 master。有关详细信息,请参阅还原 master 数据库时的注意事项

  • 完全重新生成 master

    如果由于 master 严重损坏而无法启动 SQL Server,则必须重新生成 master。接下来,应该还原最新的 master 完整数据库备份,因为重新生成数据库将导致所有数据丢失。有关如何重新生成 master 的详细信息,请参阅重新生成系统数据库

重要说明重要提示

重新生成 master 将重新生成所有系统数据库。

如果 modelmsdbdistribution 数据库不可用,则需要从当前的完整数据库备份还原该数据库。有关详细信息,请参阅还原 model 和 msdb 数据库时的注意事项备份和还原复制的数据库