备份和还原系统数据库的注意事项
SQL Server 维护一组系统级数据库(称为“系统数据库”),这些数据库对于服务器实例的运行至关重要。每次进行大量更新后,都必须备份多个系统数据库。必须备份的系统数据库包括 msdb、master 和 model。如果有任何数据库在服务器实例上使用了复制,则还必须备份 distribution 系统数据库。备份这些系统数据库,就可以在发生系统故障(例如硬盘丢失)时还原和恢复 SQL Server 系统。
下表概述了所有的系统数据库。
系统数据库 |
说明 |
是否需要备份? |
恢复模式 |
注释 |
---|---|---|---|---|
记录 SQL Server 系统的所有系统级信息的数据库。 |
是 |
简单 |
必须经常备份 master,以便根据业务需要充分保护数据。建议使用定期备份计划,这样在大量更新之后可以补充更多的备份。 有关详细信息,请参阅 备份 master 数据库时的注意事项。 |
|
在 SQL Server 实例上为所有数据库创建的模板。 |
是 |
用户可配置1 |
仅在业务需要时备份 model,例如自定义其数据库选项后立即备份。 最佳方法:建议您仅根据需要创建 model 的完整数据库备份。由于 model 较小而且很少更改,因此无需备份日志。 有关详细信息,请参阅备份 model 和 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 数据库。
|
用于保存临时或中间结果集的工作空间。每次启动 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 将重新生成所有系统数据库。 |
如果 model、msdb 或 distribution 数据库不可用,则需要从当前的完整数据库备份还原该数据库。有关详细信息,请参阅还原 model 和 msdb 数据库时的注意事项和备份和还原复制的数据库。