网站首页 > 技术教程 正文
概述
对于许多熟悉 SQL Server 的人来说, 系统数据库只与四个数据库相关联 ,它们分别是master、 model、 msdb、 tempdb。即使在 SQL Server Management Studio (SSMS) 中,当我们打开系统数据库时,也只能看到这四个数据库(我们说的是经典配置,其中一些其他功能没有配置,例如复制)。但是,除了这些数据库之外,还有一个第五个系统数据库,称为资源数据库。我们将在本文中讨论这个不太熟悉的系统数据库,并介绍有关该数据库一些特性。
特性
如前所述,当我们 在 SSMS 的对象资源管理器中打开“系统数据库”时,我们只能看到四个数据库(master、 model、 msdb、 tempdb):
我们可以没有看到资源库出现。这个“隐藏”数据库是什么以及它的用途是什么?好吧,资源数据库是一个系统数据库,它使 SQL Server 升级到新版本的过程更容易、更快。现在,让我们探讨一下有关资源数据库的一些特性。
1、资源数据库是只读数据库,包含所有系统对象
实际上,逻辑上在每个数据库的 sys 模式中的所有系统对象,在物理上都位于资源数据库中。例如,在 SSMS 中,如果我们在任何数据库的“视图”下展开“系统视图”,我们可以在 sys 模式中看到许多视图:
这些视图中的数据存储在资源数据库中,事实上,如果我们从这些视图之一读取数据,就会从资源数据库中读取:
SELECT [name]
,[object_id]
,[principal_id]
,[schema_id]
,[parent_object_id]
,[type]
,[type_desc]
,[create_date]
,[modify_date]
,[is_ms_shipped]
,[is_published]
,[is_schema_published]
FROM [NewDB].[sys].[objects]
但是,如果我们尝试直接访问资源数据库,则会收到错误信息:
另外,我们只能读取资源数据库的数据,不能更改。值得一提的是,资源数据库不存储用户数据、用户元数据或实例相关的数据。
2、 资源数据库有助于将 SQL Server 升级到更新版本
在旧版本的 SQL Server 中,升级时需要资源数据库来删除和重新创建系统对象。然而,在较新的版本中,多亏了资源数据库,系统对象可以通过复制资源数据库文件来传输(因为它包含所有这些对象)。在 SQL Server 2000 及更早的版本中,没有资源数据库。它是在 SQL Server 2005 中引入的,因此使升级更容易和更快。
3、资源数据库的 ID 是 32767
SQL Server 实例中的每个数据库都有一个 ID。一个实例最多可以容纳32767个数据库,这个数也是资源库ID,对于任何实例中的任何资源库都是恒定的。因此,实际上,资源数据库被分配了实例中可能的最大数据库 ID。话虽如此,资源数据库,因此,它的 ID 通过 sys.databases表是不可见的:
SELECT * FROM sys.databases
在结果中,我们可以看到列出了所有系统和用户数据库及其 ID,但没有列出资源数据库:
使用DB_ID()和DB_NAME()函数时,有关资源数据库的信息也不可用
但是,相同的函数不返回有关资源数据库的任何信息:
--Resource database
SELECT DB_ID( 'resource' ) AS 'resource db DBID'
SELECT DB_NAME(32767) AS 'resource'
在这两种情况下都返回NULL :
如果查询有关资源数据库的一些信息,可以使用下面的查询:
SELECT SERVERPROPERTY('ResourceVersion') AS 'ResourceVersion'
SELECT SERVERPROPERTY('ResourceLastUpdateDateTime') AS 'ResourceLastUpdateDateTime'
结果显示资源数据库的版本和资源数据库上次更新的时间:
4、 不支持移动资源数据库文件
资源数据库包含一个数据和一个日志文件,分别称为mssqlsystemresource.mdf 和mssqlsystemresource.ldf。
这些文件的位置是“ <驱动器号>:\Program Files\Microsoft SQL Server\MSSQL<version num>.<instance_name>\MSSQL\Binn\”。在我们的示例中,这个位置是“ C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Binn\”, 所以我们可以在这个位置找到这些文件:
我们可以通过以下查询检索资源数据库文件的位置:
SELECT * FROM sys.sysaltfiles WHERE dbid = 32767
正如我们前面已经讨论的, 32767 是资源数据库 ID。
5、无法使用 SQL Server 备份来备份和恢复资源数据库
我们无法执行传统的备份和恢复方法来备份或恢复资源数据库。为了备份这个数据库,我们可以备份数据库文件。值得一提的是,虽然资源数据库的数据文件扩展名为.mdf,但我们应该将其视为 .exe文件。备份文件可用于通过将它们复制到相应位置来恢复资源数据库。
结论
SQL Server有五个系统数据库,而不是人们想象的四个。资源数据库是第五个“隐藏”数据库,它是只读数据库,包含 SQL Server 的所有系统对象。它用于使 SQL Server 的升级过程更快、更容易。此数据库无法备份和恢复(使用传统的 SQL Server 方法),并且其数据和日志文件的位置也无法更改。它有一个固定的数据库 ID 32767,这是每个实例的最大数据库数。首文在本人博客https://www.cnblogs.com/lkj371/p/16745508.html发表,转载请注明出处。
- 上一篇: SQL Server 中的异常处理
- 下一篇: 「数据库架构」事务隔离级别和脏读快速入门
猜你喜欢
- 2024-11-23 达梦数据库DM8的笔记及数据迁移
- 2024-11-23 ADO.NET的作用
- 2024-11-23 Navicat 15 for SQL Server 安装教程(附安装包下载)
- 2024-11-23 车牌识别系统数据库安装教程
- 2024-11-23 北京智能考勤管理系统需求描述
- 2024-11-23 SQL Server数据库每天自动备份设置
- 2024-11-23 用友畅捷通T3软件 新建账套提示“将要建立的年度数据库已存在
- 2024-11-23 密码安全系列文章11:内网MSSQL服务器口令扫描及渗透
- 2024-11-23 汽车称重软件系统配置(一)
- 2024-11-23 SQL SERVER2016数据库安装
你 发表评论:
欢迎- 01-09单因素方差分析+作图
- 01-09描述性统计分析 之 均值分析
- 01-0986:重复性和再现性分析GRR(2)-GRR均值极差分析法和方差分析法
- 01-09SPC如何做方差分析,意义又在哪里?
- 01-09MedSPSS小课堂——多因素方差分析
- 01-09MedSPSS小课堂——双因素方差分析
- 01-09SPSS单因素方差分析的操作步骤及结果解读,陈老师SPSS数据分析
- 01-0914单因素方差分析:One-Way ANOVA
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)