学了这么久数据库,你知道五大系统数据库是什么吗?
文章目录
- 一、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数据库的限制有:
- master数据库不可用,则SQLServer实例就无法启动;
- 不能给master数据库添加文件或文件组,不能更改master数据库的排序规则,默认是实例的排序规则;
- 不能删除master数据库,不能删除guest用户;
- 不能在master数据库创建触发器,不能启动CDC(数据变更捕获),不能参与数据库镜像,不能设置为READ_ONLY(只读),不能设置为OFFLINE(脱机);
- 不能更改数据库所有者,master的所有者是sa;
- 不能创建全文目录或全文索引;
- 不能删除主文件组、主数据文件或日志文件;
- 不能重命名数据库或主文件组;
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数据库的说明有:
- model数据库是一个模板数据库,在create database时,将通过复制model数据库中的内容来创建数据库的第一部分,然后用空页填充新数据库的剩余部分;
- model数据库必须存在,model数据库的全部内容都会被复制到新数据库中,例如设置的权限、数据库选项、表、函数、存储过程等等;
- model数据库的数据和日志文件默认初始大小为8MB;
- 每次系统重启创建的tempdb数据库的模板都来自于model;
- 关于model数据库的限制有十个不能(每一点前面都省略了一个不能):
- 添加文件或文件组;
- 更改排序规则。默认排序规则为服务器排序规则;
- 更改数据库所有者,model的所有者是sa;
- 删除model数据库;
- 从model数据库中删除guest用户;
- 启用变更数据捕获;
- 参与数据库镜像;
- 删除主文件夹、主数据文件或日志文件,重命名数据库或主文件组;
- 将数据库设置为OFFLINE(脱机),将主文件组设置为READ_ONLY(只读);
- 使用 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的限制有七个不能(每一点前面都省略了不能):
- 更改排序规则。 默认排序规则为服务器排序规则;
- 删除数据库;
- 从数据库中删除 guest 用户;
- 启用变更数据捕获;
- 参与数据库镜像;
- 删除主文件组、主数据文件或日志文件,重命名数据库或主文件组;
- 将数据库设置为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 数据库执行以下操作:
- 添加文件组;
- 备份或还原数据库;
- 更改排序规则。 默认排序规则为服务器排序规则;
- 更改数据库所有者。 TempDB 的所有者是 sa;
- 创建数据库快照;
- 删除数据库;
- 从数据库中删除 guest 用户;
- 启用变更数据捕获,参与数据库镜像;
- 删除主文件组、主数据文件或日志文件,重命名数据库或主文件组;
- 运行 DBCC CHECKALLOC,运行 DBCC CHECKCATALOG
- 将数据库设置为 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:创作不易,四千多字,我在学校写一篇论文都没这么多。不过也不算创作吧,就是把自己所知道的,所查找到的资料进行一个整理,希望对大家有所帮助~)
学了这么久数据库,你知道五大系统数据库是什么吗?相关推荐
- java计算机毕业设计线上远程教学及自主学平台的设计与实现源码+系统+数据库+lw文档
java计算机毕业设计线上远程教学及自主学平台的设计与实现源码+系统+数据库+lw文档 java计算机毕业设计线上远程教学及自主学平台的设计与实现源码+系统+数据库+lw文档 本源码技术栈: 项目架构 ...
- 数据库设计-博客系统数据库的设计
数据库设计-博客系统数据库的设计 数据库整体设计 问题: 一个博客系统会有哪些功能呢,肯定会有的是博客列表,博客详情,评论,登陆注册等等这些功能,那应该建多少张表呢?应该给这些表添加哪些字段呢?字段的 ...
- pacs系统数据库服务器,医用PACS系统数据库云计算的设计
摘要: PACS系统中数据库是整个PACS系统的主要组成部分.数据库文件结构的建立是编制程序的基础,也是维护工作的依据.随着患者对医疗技术水平的要求增高,众多医院存在设备购置时间过长,软.硬件设备陈旧 ...
- scada如何用oracle数据库,怎样设计SCADA系统数据库存储功能及其应用
怎样设计SCADA系统数据库存储功能及其应用 2018年10月10日 10:24:05来源:力控科技作者:力控科技-产品部关键词:SCADA系统 1. 概述 SCADA体系首要用于运转设备的监督和操控 ...
- 门禁系统数据库服务器配置,门禁系统数据库服务器如何配置
门禁系统数据库服务器如何配置 内容精选 换一换 华为云最佳实践,从创建镜像.部署环境.搭建站点和代码实现方式等多方面提供开发实践指导及使用指南,全方面解决用户在使用华为云产品中遇到的常见问题. 使用华 ...
- java合并获得数据库_[原]考试系统——数据库之合并动态生成表
合并动态生成的表思路:首先先动态生成一张表,循环遍历数据库中具有相同考试名称题型的答题记录表,再一一把查询出来的每一张表的答题记录合并到一张新生成的表中. 首先我们这是合并具有相同表结构的数据,所以比 ...
- 破解修改服务器数据库,关于网站充值系统数据库的修改求助
[PHP] 纯文本查看 复制代码<?php include_once 'mysql.class.php'; //数据库 [color=#ff0000]$db=new cls_mysql(arra ...
- 用mysql创建 学生选课 数据库_学生选课系统数据库SQL语句考试题
--1. 查询Student表中的所有记录的Sname.Ssex和Class列. SELECT sname,Ssex,class from Student --2. 查询教师所有的单位即不重复的Dep ...
- SQL Server系统数据库介绍
文章目录 一.基本介绍 1.1 数据库组成 1.2 数据文件 1.数据文件 2.日志文件 1.3 五大系统数据库 二.master数据库 2.1 基本信息 2.2 限制 2.3 使用建议 三.msdb ...
最新文章
- YARN集群维护部分问题汇总
- 使用wordpress创建自己的博客
- 为什么单击用户账户没有反应_为什么您的网站没有流量?是因为用户搜不到你!...
- 网站报错时,自动跳转到指定报错页(error.html)的办法
- Linux磁盘分区详解(parted)
- c语言创造线性表储存复数,《c语言数结构》第02章 线性表.ppt
- [转载] arrayproxy转numpy_Python numpy.ptp() 使用实例
- 实时数据库中的二级压缩技术
- pandas数据处理、绘图
- 【Ubuntu18.04安装搜狗中文输入法】
- 单工,半双工,全双工区别以及TDD和FDD区别
- katacontainers启动分析
- mysql学习记录_秦路天善智能Mysql学习笔记
- 请更换备份电池 pos机_电签POS机实力碾压MPOS,请更换手中的蓝牙机!
- 系统资源的观察(摘自鸟哥的私房菜)
- 图像识别流程学习总结
- pip问题:Traceback (most recent call last):File “/home/coin/anaconda3/lib/python3.7/site-packages/pip/_
- pandas 处理缺失值[dropna、drop、fillna]
- 2022大厂前端面试题手册
- 市场营销学【最精典】案例分析