SQL Server系统数据库那些基础东西,简单说说让你快速了解
- 问答
- 2025-12-23 11:38:38
- 2
当我们安装好SQL Server之后,打开SQL Server Management Studio (SSMS),在“对象资源管理器”里展开数据库节点,你会立刻看到几个名字前面带着“master”、“model”、“msdb”、“tempdb”的数据库,这些就是SQL Server的系统数据库,它们是整个数据库引擎的基石,缺一不可,没有它们,你的SQL Server就启动不了,或者没法正常工作。
下面我就一个一个地简单说说它们是干嘛的。
第一个,也是最重要的:master数据库。
你可以把它想象成SQL Server的“总指挥部”或者“大脑”,它记录了所有关于SQL Server系统的核心信息,这些信息包括:
- 所有的登录账号(就是谁能连接这个服务器)。
- 所有的服务器配置设置(比如服务器用了多少内存、一些功能开关)。
- 所有其他数据库的存在位置和初始信息(比如你新建了一个叫“MyDatabase”的数据库,master数据库里就会记下一笔:“哦,有一个数据库叫MyDatabase,它的文件放在C盘某某文件夹下”)。
- 还有系统运行的一些关键信息。
正因为master数据库如此重要,所以一旦它损坏了,整个SQL Server实例很可能就无法启动,定期备份master数据库是一个非常重要的好习惯,微软官方文档也强调,不要在master数据库里创建用户自己的表或数据,就让它安安静静地做它的“总指挥部”就好。

第二个,model数据库。
这个名字起得很形象,它就是“模板”或“模型”的意思,你可以把它理解成一个空数据库的“模具”或者“蓝图纸”,当你使用CREATE DATABASE语句创建一个新数据库时(无论是在图形界面点鼠标还是写代码),SQL Server实际上做了一件什么事呢?它就是拿这个model数据库作为模板,复制一份,然后把新数据库的名字改成你起的那个名字。
model数据库里有什么,你新建的数据库默认就有什么,如果你希望在每一个新创建的数据库里都预先放一个叫“AuditLog”的表,用来记录操作日志,那么你就可以在model数据库里先创建好这个表,以后每次新建数据库,这个“AuditLog”表就会自动出现在新数据库里了,根据微软的说明,对model数据库的修改要小心,因为会影响到所有后续创建的数据库。
第三个,msdb数据库。

这个数据库是SQL Server代理服务的“大管家”,SQL Server代理是干嘛的?它就像是SQL Server的“自动任务调度器”,那些需要定期自动执行的任务,
- 每天凌晨1点自动备份数据库。
- 每周一早上清理一些历史数据。
- 当数据库出现某种错误时自动发邮件通知管理员。
这些任务的计划、历史记录、操作员(通知人)信息等等,全都存储在msdb数据库里,如果你要用到SQL Server的自动化功能,msdb数据库就至关重要,同样,也需要定期备份它。
第四个,tempdb数据库。
这是一个非常特殊的“临时工”数据库,它的生命周期很短,每次SQL Server服务重启时,tempdb都会被删除然后重新创建一个全新的、干干净净的tempdb,它就像一个公共的“草稿纸”或“临时工作区”。

哪些东西会用到这张“草稿纸”呢?非常多:
- 当你查询语句里用了ORDER BY、GROUP BY时,中间可能会产生一些临时结果,就放在这里。
- 当你创建临时表(名字以#或##开头的表)时,这些表就存放在tempdb里。
- 数据库引擎自己进行一些复杂操作时,也需要用这块空间来做中间计算。
因为所有用户和系统进程都可能用到它,所以tempdb的性能非常重要,如果tempdb变得很慢或者空间不足,可能会拖慢整个服务器的速度,管理和优化tempdb是数据库管理员的一项重要工作,根据SQL Server的架构,tempdb是全局唯一的,所有连接到这个实例的数据库都共享同一个tempdb。
还有一个值得提的:resource数据库。
这个数据库在SSMS的图形界面里是看不到的,因为它是一个只读的、隐藏的数据库,它里面存放了SQL Server所有的系统对象(比如sys.tables、sys.databases这些系统视图的定义),它的存在主要是为了方便升级和快速修复,当微软发布补丁或服务包时,只需要替换这个resource数据库的文件,就能更新所有系统对象的定义,而不需要去动每一个用户数据库,我们平常基本不会直接操作它,但知道它的存在有助于理解SQL Server的更新机制。
这五个系统数据库各司其职:
- master是大脑,记录核心信息。
- model是模板,决定新数据库的初始样子。
- msdb是管家,管理自动化作业。
- tempdb是草稿纸,提供临时存储空间。
- resource是隐藏的工具箱,存储系统代码。
理解了它们的基本作用,你就能明白为什么不能随意删除或修改它们,也知道了当数据库出现某些问题时,应该从哪个系统数据库去考虑和排查,这些都是SQL Server最基本、最核心的组成部分。 参考和整合自微软官方文档关于SQL Server系统数据库的普遍性描述和定义。)
本文由召安青于2025-12-23发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://waw.haoid.cn/wenda/66889.html
