Sql Server的系统数据库分为:master、model、msdb,resouce和tempdb,这五个数据库在SQL Server中各司其职,作为研发人员,很有必要了解这几个数据库的职责,下面我们来看看这几个数据库的作用。
master
master 数据库记录 SQL Server 系统的所有系统级信息。如果 master 数据库不可用,则 SQL Server 无法启动。
用于保存下列各项
- 端点、链接服务器和系统配置设置
- 登录帐户
- 记录所有其他数据库的存在、数据库文件的位置以及 SQL Server 的初始化信息
tempdb
tempdb 系统数据库是一个全局资源,可供连接到 SQL Server 实例的所有用户使用,并可用:
- 显式创建的临时用户对象,例如:全局或局部临时表、临时存储过程、表变量或游标。
- SQL Server 数据库引擎创建的内部对象和中间结果
- 由使用已提交读(使用行版本控制隔离或快照隔离事务)的数据库中数据修改事务生成的行版本。
- 由数据修改事务为实现某些功能而生成的行版本,这些功能包括:联机索引操作、多个活动的结果集 (MARS) 以及 AFTER 触发器。
- SQL Server 重起时,数据会消失
- SQL Server启动时会重建tempdb
msdb
- SQL Server Agent的后台数据库
- 存储作业,警报和操作信息
- 存储作业调度信息
- 备份与还原历史记录
- 数据库邮件信息
model
model 数据库用作在 SQL Server 实例上创建的所有数据库的模板。数据库的全部内容(包括数据库选项比如数据库大小,排序规则,恢复模式等)都会被复制到新的数据库。因为每次启动 SQL Server 时都会创建 tempdb,所以 model 数据库必须始终存在于 SQL Server 系统中。启动期间,也可使用 model 数据库的某些设置创建新的 tempdb。
resource
这个数据库不能通过SSMS的object explore 查看,它是一个只读数据库,主要包含SQL Server包括的系统对象。系统对象在物理上保留在resource数据库中,但在逻辑上显示在每个数据库的SYS架构中。