文章目录

  • 一、master数据库
    • master数据库的物理属性
    • 数据库选项
  • 二、model数据库
    • model的物理属性
  • 三、msdb数据库
    • msdb的物理属性
  • 四、tempdb数据库
    • tempdb的物理属性
  • 五、resource数据库

学了许久数据库的知识了,到今天我才了解到五个系统数据库是什么。在SQL sever系统中,系统运行时会用到的相关信息,如系统对象的组态设置等,都是以系统的形式存在,而存放这些系统信息的数据库成为系统数据库。成功安装SQL sever后,系统会自动建立master、model、msdb、tempdb及resource五个系统数据库。

一、master数据库

顾名思义,master是“主人,主管”的意思,数据库系统中少了它可不行。
master数据库是SQL sever系统中最重要的数据库,它记录SQL sever系统的所有系统级信息,这包括实例范围的元数据(例如登录帐户)、端点、链接服务器和系统配置设置,不过系统对象不在master数据库中,而在resource数据库中。master数据库记录了所有其他数据库的存在、数据库的文件的位置;

  • 有关master数据库的限制有:
  1. master数据库不可用,则SQLServer实例就无法启动;
  2. 不能给master数据库添加文件或文件组,不能更改master数据库的排序规则,默认是实例的排序规则;
  3. 不能删除master数据库,不能删除guest用户;
  4. 不能在master数据库创建触发器,不能启动CDC(数据变更捕获),不能参与数据库镜像,不能设置为READ_ONLY(只读),不能设置为OFFLINE(脱机);
  5. 不能更改数据库所有者,master的所有者是sa;
  6. 不能创建全文目录或全文索引;
  7. 不能删除主文件组、主数据文件或日志文件;
  8. 不能重命名数据库或主文件组;

master数据库的物理属性

下表列出了SQL Server数据库托管实例的master数据和日志文件的初始配置值。 对于不同版本的SQL Server,这些文件的大小可能略有不同。

文件 逻辑名称 物理名称 文件增长
主数据 master master.mdf 以10%的速度自动增长到磁盘充满为止
日志 mastlog mastlog.ldf 以10%的速度自动增长到最大2TB

数据库选项

下表列出了SQL Server数据库托管实例的 master 数据库中部分数据库选项的默认值,以及该选项是否可以修改。

数据库选项 默认值 是否可修改
ALLOW_SNAPSHOT_ISOLATION ON
ANSI_NULL_DEFAULT OFF
ANSI_NULLS OFF
ANSI_PADDING OFF
ANSI_WARNINGS OFF
ARITHABORT OFF
AUTO_CLOSE OFF
AUTO_CREATE_STATISTICS ON
AUTO_SHRINK OFF
AUTO_UPDATE_STATISTICS ON
AUTO_UPDATE_STATISTICS_ASYNC OFF
CHANGE_TRACKING OFF
CONCAT_NULL_YIELDS_NULL OFF
CURSOR_CLOSE_ON_COMMIT OFF

以下省略一万字……太多选项了,没有一一列举出来,毕竟作者就算写出来了也记不住,哈哈哈。若有感兴趣的在这里- >master数据库可以看到每个数据库选项。

二、model数据库

model数据库用作在SQL Server实例上创建的所有数据库的模板。
因为每次启动时都会创建tempdb SQL Server ,所以model数据库必须始终存在于SQL Server系统中。 model数据库的全部内容(包括数据库选项)都会被复制到新的数据库。 启动期间,也可使用model数据库的某些设置创建新的tempdb,因此model数据库必须始终存在于SQL Server系统中。

  • 关于model数据库的说明有:
  1. model数据库是一个模板数据库,在create database时,将通过复制model数据库中的内容来创建数据库的第一部分,然后用空页填充新数据库的剩余部分;
  2. model数据库必须存在,model数据库的全部内容都会被复制到新数据库中,例如设置的权限、数据库选项、表、函数、存储过程等等;
  3. model数据库的数据和日志文件默认初始大小为8MB;
  4. 每次系统重启创建的tempdb数据库的模板都来自于model;
  • 关于model数据库的限制有十个不能(每一点前面都省略了一个不能):
  1. 添加文件或文件组;
  2. 更改排序规则。默认排序规则为服务器排序规则;
  3. 更改数据库所有者,model的所有者是sa;
  4. 删除model数据库;
  5. 从model数据库中删除guest用户;
  6. 启用变更数据捕获;
  7. 参与数据库镜像;
  8. 删除主文件夹、主数据文件或日志文件,重命名数据库或主文件组;
  9. 将数据库设置为OFFLINE(脱机),将主文件组设置为READ_ONLY(只读);
  10. 使用 WITH ENCRYPTION 选项创建过程、视图或触发器。 加密密钥与在其中创建对象的数据库绑定在一起。 在 model 数据库中创建的加密对象只能用于 model中。

model的物理属性

下表列出了 model 数据和日志文件的初始配置值。

文件 逻辑名称 物理名称 文件增长
主数据 modeldev model.mdf 以64MB的速度自动增长到磁盘充满为止
日志 modellog modellog.ldf 以64MB的速度自动增长到最大2TB

关于model数据库的选项的默认值及该选项是否可以修改,感兴趣的可以戳这- >model数据库

三、msdb数据库

msdb数据库是代理服务数据库,为其报警、任务调度和记录操作员的操作提供存储空间。SQL Server Management Studio(是一个用于访问、配置、管理和开发SQL sever的所有组件的一个集成环境)、Service Broker和数据库邮件等其他功能也使用该数据库。
例如,SQL Server在msdb中的表中自动保留一份完整的联机备份和还原历史记录。 这些信息包括执行备份一方的名称、备份时间和用来存储备份的设备或文件。
SQL Server Management Studio使用这些信息来提出计划,还原数据库和应用任何事务日志备份。 将会记录有关所有数据库的备份事件,即使它们是由自定义应用程序或第三方工具创建的。
默认情况下msdb使用简单模式。

  • 关于msdb的限制有七个不能(每一点前面都省略了不能):
  1. 更改排序规则。 默认排序规则为服务器排序规则;
  2. 删除数据库;
  3. 从数据库中删除 guest 用户;
  4. 启用变更数据捕获;
  5. 参与数据库镜像;
  6. 删除主文件组、主数据文件或日志文件,重命名数据库或主文件组;
  7. 将数据库设置为OFFLINE,将主文件组设置为READ_ONLY。

msdb的物理属性

下表列出了 msdb 数据和日志文件的初始配置值。 对于不同版本的 SQL Server 数据库引擎,这些文件的大小可能略有不同。

文件 逻辑名称 物理名称 文件增长
主数据 MSDBDATA MADBDATA.mdf 以10%的速度自动增长到磁盘充满为止
日志 MSDBLOG MSDBLOG.ldf 以10%的速度自动增长到最大2TB

同样,关于msdb数据库的选项的默认值及该选项是否可以修改,感兴趣的可以看看- >msdb数据库

四、tempdb数据库

这个概念在作者前面的文章- >三级数据库知识点学习(一)提到过。它是一个临时数据库,是一个全局资源,可供连接到SQL sever实例或SQL数据库的所有用户使用。

tempdb用于保留:

  • 显式创建的临时用户对象,例如:全局或局部临时表及索引、临时存储过程、表变量、表值函数返回的表或游标。
  • 由数据库引擎创建的内部对象。其中包括:
    • 用于储存假脱机、游标、排序和临时大型对象 (LOB) 存储的中间结果的工作表。
    • 用于哈希联接或哈希聚合操作的工作文件。
    • 用于创建或重新生成索引等操作(如果指定了SORT_IN_TEMPDB)的中间排序结果,或者某些GROUP BY、ORDER BY或UNION查询的中间排序结果。
  • 版本存储区。是数据页的集合,它包含支持使用行版本控制的功能所需的数据行。 共有两个版本存储区:公用版本存储区和联机索引生成版本存储区。 版本存储区包含:
    • 由使用已提交读(使用行版本控制隔离或快照隔离事务)的数据库中数据修改事务生成的行版本。
    • 由数据修改事务为实现联机索引操作、多个活动的结果集 (MARS) 以及AFTER触发器等功能而生成的行版本。

关于tempdb的限制:
不能对 TempDB 数据库执行以下操作:

  1. 添加文件组;
  2. 备份或还原数据库;
  3. 更改排序规则。 默认排序规则为服务器排序规则;
  4. 更改数据库所有者。 TempDB 的所有者是 sa;
  5. 创建数据库快照;
  6. 删除数据库;
  7. 从数据库中删除 guest 用户;
  8. 启用变更数据捕获,参与数据库镜像;
  9. 删除主文件组、主数据文件或日志文件,重命名数据库或主文件组;
  10. 运行 DBCC CHECKALLOC,运行 DBCC CHECKCATALOG
  11. 将数据库设置为 OFFLINE,将数据库或主文件组设置为 READ_ONLY。

tempdb的物理属性

下表列出了 SQL Server 中 TempDB 数据和日志文件的初始配置值(基于模型数据库的默认设置)。 对于不同版本的 SQL Server,这些文件的大小可能略有不同。

文件 逻辑名称 物理名称 初始大小 文件增长
主数据 tempdev tempdb.mdf 8MB 以64MB的速度自动增长知道磁盘已满
次要数据文件* temp# tempdb_mssql_#.ndf 8MB 以64MB的速度自动增长知道磁盘已满
日志 templog templog.ldf 8MB 以 64 MB 的速度自动增长直到达到上限 2 TB

五、resource数据库

resource数据库是一个只读数据库,它包含了SQL Server中的所有系统对象,默认是隐藏的,在SSMS里看不到这个数据库。SQL Server系统对象(如 sys.objects)在物理上保留在Resource数据库中,但在逻辑上却显示在每个数据库的 sys 架构中。Resource数据库不包含用户数据或用户元数据。

  • resource的物理属性
    Resource 数据库的物理文件名为mssqlsystemresource.mdf和mssqlsystemresource.ldf。
  • 备份和还原resource数据库
    SQL Server 不能备份 Resource 数据库。 通过将mssqlsystemresource.mdf文件作为二进制文件而不是作为数据库文件,可以执行您自己的基于文件的备份或基于磁盘的备份,但是不能使用SQL Server还原所做的备份。 只能手动还原mssqlsystemresource.mdf的备份副本,并且必须谨慎,不要使用过时版本或可能不安全的版本覆盖当前的Resource数据库。
  • 访问resource数据库
    Resource 数据库仅应由 Microsoft 客户支持服务部门 (CSS) 的专家修改或在其指导下进行修改。 Resource 数据库的 ID 始终为 32767。 与 Resource 数据库相关联的其他重要值是版本号和数据库的上次更新时间。

若要确定resource数据库的版本号,命令为

SELECT SERVERPROPERTY(‘ResourceVersion’);

若要确定resource数据库的上次升级时间,命令为

SELECT SERVERPROPERTY(‘ResourceLastUpdateDateTime’);

若要访问系统对象的SQL定义,命令为

SELECT OBJECT_DEFINITION(OBJECT_ID(‘sys.objects’));

(PS:创作不易,四千多字,我在学校写一篇论文都没这么多。不过也不算创作吧,就是把自己所知道的,所查找到的资料进行一个整理,希望对大家有所帮助~)

学了这么久数据库,你知道五大系统数据库是什么吗?相关推荐

  1. java计算机毕业设计线上远程教学及自主学平台的设计与实现源码+系统+数据库+lw文档

    java计算机毕业设计线上远程教学及自主学平台的设计与实现源码+系统+数据库+lw文档 java计算机毕业设计线上远程教学及自主学平台的设计与实现源码+系统+数据库+lw文档 本源码技术栈: 项目架构 ...

  2. 数据库设计-博客系统数据库的设计

    数据库设计-博客系统数据库的设计 数据库整体设计 问题: 一个博客系统会有哪些功能呢,肯定会有的是博客列表,博客详情,评论,登陆注册等等这些功能,那应该建多少张表呢?应该给这些表添加哪些字段呢?字段的 ...

  3. pacs系统数据库服务器,医用PACS系统数据库云计算的设计

    摘要: PACS系统中数据库是整个PACS系统的主要组成部分.数据库文件结构的建立是编制程序的基础,也是维护工作的依据.随着患者对医疗技术水平的要求增高,众多医院存在设备购置时间过长,软.硬件设备陈旧 ...

  4. scada如何用oracle数据库,怎样设计SCADA系统数据库存储功能及其应用

    怎样设计SCADA系统数据库存储功能及其应用 2018年10月10日 10:24:05来源:力控科技作者:力控科技-产品部关键词:SCADA系统 1. 概述 SCADA体系首要用于运转设备的监督和操控 ...

  5. 门禁系统数据库服务器配置,门禁系统数据库服务器如何配置

    门禁系统数据库服务器如何配置 内容精选 换一换 华为云最佳实践,从创建镜像.部署环境.搭建站点和代码实现方式等多方面提供开发实践指导及使用指南,全方面解决用户在使用华为云产品中遇到的常见问题. 使用华 ...

  6. java合并获得数据库_[原]考试系统——数据库之合并动态生成表

    合并动态生成的表思路:首先先动态生成一张表,循环遍历数据库中具有相同考试名称题型的答题记录表,再一一把查询出来的每一张表的答题记录合并到一张新生成的表中. 首先我们这是合并具有相同表结构的数据,所以比 ...

  7. 破解修改服务器数据库,关于网站充值系统数据库的修改求助

    [PHP] 纯文本查看 复制代码<?php include_once 'mysql.class.php'; //数据库 [color=#ff0000]$db=new cls_mysql(arra ...

  8. 用mysql创建 学生选课 数据库_学生选课系统数据库SQL语句考试题

    --1. 查询Student表中的所有记录的Sname.Ssex和Class列. SELECT sname,Ssex,class from Student --2. 查询教师所有的单位即不重复的Dep ...

  9. SQL Server系统数据库介绍

    文章目录 一.基本介绍 1.1 数据库组成 1.2 数据文件 1.数据文件 2.日志文件 1.3 五大系统数据库 二.master数据库 2.1 基本信息 2.2 限制 2.3 使用建议 三.msdb ...

最新文章

  1. YARN集群维护部分问题汇总
  2. 使用wordpress创建自己的博客
  3. 为什么单击用户账户没有反应_为什么您的网站没有流量?是因为用户搜不到你!...
  4. 网站报错时,自动跳转到指定报错页(error.html)的办法
  5. Linux磁盘分区详解(parted)
  6. c语言创造线性表储存复数,《c语言数结构》第02章 线性表.ppt
  7. [转载] arrayproxy转numpy_Python numpy.ptp() 使用实例
  8. 实时数据库中的二级压缩技术
  9. pandas数据处理、绘图
  10. 【Ubuntu18.04安装搜狗中文输入法】
  11. 单工,半双工,全双工区别以及TDD和FDD区别
  12. katacontainers启动分析
  13. mysql学习记录_秦路天善智能Mysql学习笔记
  14. 请更换备份电池 pos机_电签POS机实力碾压MPOS,请更换手中的蓝牙机!
  15. 系统资源的观察(摘自鸟哥的私房菜)
  16. 图像识别流程学习总结
  17. pip问题:Traceback (most recent call last):File “/home/coin/anaconda3/lib/python3.7/site-packages/pip/_
  18. pandas 处理缺失值[dropna、drop、fillna]
  19. 2022大厂前端面试题手册
  20. 市场营销学【最精典】案例分析

热门文章

  1. 从 Go log 库到 Zap,怎么打造出好用又实用的 Logger
  2. c语言打印数组中的汉字
  3. 学习笔记:MAC协议 5GNR
  4. 如何做默认样式重置?RESETTING 和 NORMALIZING 之间有什么区别?
  5. 整理一篇很全面的iOS面试题
  6. php 实现保留两位小数
  7. 一个软件工程师必须是一个好的雕刻师
  8. Hive查询分析计算:股票分析
  9. Linux系统磁盘空间不足解决办法
  10. Android模仿QQ的左右滑动切换界面和下拉更新的效果