资源数据库

更新日期: 2006 年 4 月 14 日

Resource 数据库是只读数据库,它包含了 SQL Server 2005 中的所有系统对象。SQL Server 系统对象(例如 sys.objects)在物理上持续存在于 Resource 数据库中,但在逻辑上,它们出现在每个数据库的 sys 架构中。Resource 数据库不包含用户数据或用户元数据。

Resource 数据库可比较轻松快捷地升级到新的 SQL Server 版本。在早期版本的 SQL Server 中,进行升级需要删除和创建系统对象。由于 Resource 数据库文件包含所有系统对象,因此,现在仅通过将单个 Resource 数据库文件复制到本地服务器便可完成升级。同样,回滚 Srvice Pack 中的系统对象更改只需使用早期版本覆盖 Resource 数据库的当前版本。

Resource 的物理属性

Resource 数据库的物理文件名是 mssqlsystemresource.mdf 和 mssqlsystemresource.ldf。默认情况下,这些文件位于 <驱动器>:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\。每个 SQL Server 实例都具有一个(也是唯一的一个)关联的 mssqlsystemresource.mdf 文件,并且实例间不共享此文件。在群集中,Resource 数据库位于共享磁盘上的 \Data 文件夹中。

Resource 数据库依赖于 master 数据库的位置。如果移动了 master 数据库,则必须也将 Resource 数据库移动到相同的位置。有关详细信息,请参阅移动系统数据库。另外,请勿将 Resource 数据库放置在压缩或加密的 NTFS 文件系统文件夹中。此操作会降低性能并阻止升级。

备份和还原 Resource 数据库

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

ms190940.note(zh-cn,SQL.90).gif重要提示:
还原 mssqlsystemresource.mdf 的备份之后,必须重新应用所有后续更新。

访问 Resource 数据库

Resource 数据库仅应由 Microsoft 客户支持服务部门 (CSS) 的专家修改或在其指导下进行修改。唯一支持的用户操作是将 Resource 数据库移至 master 数据库所在的位置。有关详细信息,请参阅移动系统数据库

Resource 数据库的 ID 始终是 32767。Resource 数据库关联的其他重要值是版本号和数据库的上次升级时间。

若要确定 Resource 数据库的版本号,请使用

SELECT SERVERPROPERTY('ResourceVersion');
GO

若要确定 Resource 数据库的上次升级时间,请使用

SELECT SERVERPROPERTY('ResourceLastUpdateDateTime');
GO

若要访问系统对象的 SQL 定义,请使用 OBJECT_DEFINITION 函数:

SELECT OBJECT_DEFINITION(OBJECT_ID('sys.objects'));
GO

请参阅

概念

系统数据库
使用专用管理员连接
在单用户模式下启动 SQL Server

其他资源

OBJECT_DEFINITION (Transact-SQL)
SERVERPROPERTY (Transact-SQL)
如何重新生成 SQL Server 2005 的 Master 数据库

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

版本 历史记录

2006 年 4 月 14 日

已更改的内容:
  • 更正了有关备份和还原 mssqlsystemresource.mdf 的信息。
  • 在“访问 Resource 数据库”部分中阐明了支持的用户操作。

2005 年 12 月 5 日

已更改的内容:
  • 更正了有关移动 Resource 数据库的内容。