设为首页 收藏本站
查看: 4223|回复: 0

[经验分享] SQL Server 2005的Resource数据库

[复制链接]

尚未签到

发表于 2015-7-2 07:36:15 | 显示全部楼层 |阅读模式
  一个新的SQL Server 2005安装总是包括四个数据库:master、model、tempdb和msdb。它也包含第五个“隐藏的”数据库。我们无法使用可以列出所有数据库的一般SQL命令来看到它。这个数据库被称为resource数据库,它的实际名字是mssqlsystemresource。
  Resource 数据库是只读数据库,它包含了 SQL Server 2005 中的所有系统对象。SQL Server 系统对象(例如 sys.objects)在物理上持续存在于 Resource 数据库中,但在逻辑上,它们出现在每个数据库的 sys 架构中。Resource 数据库不包含用户数据或用户元数据。
  Resource 数据库可比较轻松快捷地升级到新的 SQL Server 版本。在早期版本的 SQL Server 中,进行升级需要删除和创建系统对象。由于 Resource 数据库文件包含所有系统对象,因此,现在仅通过将单个 Resource 数据库文件复制到本地服务器便可完成升级。同样,回滚 Srvice Pack 中的系统对象更改只需使用早期版本覆盖 Resource 数据库的当前版本。
  前面提到过,mssqlsystemresource数据库是一个隐藏的数据库,并且通常被称为resource数据库。可执行的系统对象,例如系统存储过程和函数都存储在这里。微软创建它是为了允许非常快速和安全地更新。如果没有人能够看到这个数据库,那么就没有人能够修改它,因此我们可以通过简单地置换新的resource数据库来将它升级到引入了新的系统对象的补丁Service Pack (SP)。需要注意的是即使使用所有常规的查看数据库的方法也不能看到这个数据库,例如查询sys.databases,或者执行sp_helpdb。它也不会出现在SQL Server Management Studio对象浏览器面板的系统数据库树中,它在查询窗口的可访问数据库下拉列表中也不会出现。  我们可以使用Windows浏览器在默认的数据目录中查看该数据库的文件。假设数据目录是C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\data,我们可以在其中看到一个名为mssqlsystemresource.mdf的文件,它的大小为38MB,还有一个大小为0.5MB的mssqlsystemresource.ldf文件。这两个文件的创建和修改日期都是这个SQL Server实例的当前Service Pack的代码启用日期 ,最新访问日期就是今天。

  Resource 数据库依赖于 master 数据库的位置。如果移动了 master 数据库,则必须也将 Resource 数据库移动到相同的位置。有关详细信息,请参阅移动系统数据库。另外,请勿将 Resource 数据库放置在压缩或加密的 NTFS 文件系统文件夹中。此操作会降低性能并阻止升级。
  SQL Server 不能备份 Resource 数据库。通过将 mssqlsystemresource.mdf 文件作为二进制 (.EXE) 文件而不是作为 数据库文件,可以执行您自己的基于文件的备份或基于磁盘的备份,但是不能使用 SQL Server 还原数据库。只能手动还原 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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-82400-1-1.html 上篇帖子: 安装SQL Server 2005之后找不到SQL Server Management Studio Express 下篇帖子: 表中数据转置(Pivot)在Sql Server 2000 和Sql Server 2005 的实现
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表