1)master。master由系统表组成,用来跟踪整个服务安装器和被用户创建的其他数据库。虽然每个数据库都包含有系统目录,用来维持数据库包含的对象信息,但是master包含的系统目录还维持了磁盘空间、文件分配、系统配置、登陆账号、当前实体包含的数据库等等。
你应该习惯经常备份master数据库。因为很多操作,例如创建数据库、改变配置、修改登录账号等都会写入到master中,所以当你执行这些操作后要经常备份。
2)model。model是一个简单的模板数据库。当用户创建一个数据库,sql server拷贝一份model到新数据库的基础表中。例如,你想新建一个数据库默认包含某些对象或者权限,你可以把这些对象或者权限放到model中,新建的表会继承model。
3)tempdb。tempdb被作为一个工作区。在sql server 数据库中它也是唯一的,如果重启了数据库它会重新创建。它被用户用来创建临时表,在执行查询和排序时作为工作表保存中间结果,维持行版本信息,实现静态游标和keyset游标的主键。因为tempdb数据库每次启动会重新创建,所以你在它里边创建的任何对象以及权限都会丢失。如果你像把某些对象保存在tempdb中,你可以编写存储过程创建对象,每次启动数据库时执行该存储过程。
4)mssqlsystemresource(资源数据库)。mssqlsystemresource是一个隐藏的数据库,存储可执行系统对象,像存储过程、函数。为什么该数据库是不可见的?微软创建它是用来快速并且安全的做数据库更新。因为没有人能获取它,没有人能改变它。通过任何预览数据库的方法去查看该数据都是无效的,例如从sys.databases 或者 executing
sp_helpdb。也不会显示在SQL Server M Studio的树结构上。但是,它始终还是需要存储在磁盘上。
你可以在目录C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\
MSSQL\Binn上查看到该数据库文件,包含两个文件: mssqlsystemresource.mdf(60MB)、mssqlsystemresource.ldf(0.5MB)。你可以通过两种方式查看它的内容。最简单的是停止数据库,拷贝两个文件,重启数据库,通过附加文件的方式创建一个新的数据库。或者你可以用CREATE DATABASE FOR ATTACH语法创建一个拷贝数据库。
CREATE DATABASE resource_COPY
ON (NAME = data, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\binn
\mssqlsystemresource_COPY.mdf'),
(NAME = log, FILENAME =
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\binn\mssqlsystemresource_COPY.ldf')
FOR ATTACH;
5)msdb。msdb被用作sql server代理服务,形成计划活动(例如备份、复制任务)、服务中间者(为sql server
提供可靠的信息)。为了备份 ,msdb支持jobs、alerts、log shipping、poliecies、数据库邮件以及损坏页的恢复等。但我们一般是不会操作该数据库的。
数据库文件
一个数据库文件不外乎就是一个操作系统文件。针对于数据库文件,sql server有备份策略,逻辑策略是映射成操作系统文件、物理策略例如磁盘驱动器。一个数据库至少分割成两个文件也可以多个。一个是数据文件(例如索引和分配的页),一个是事务日志文件。
数据库文件包含三种类型:
1)关键数据文件。必须有有一个关键数据文件用来存储数据,扩展名为.mdf。
2)第二数据文件。可以有零个或者多个,扩展名为.ndf。
3)日志文件。至少一个日志文件,包含必要的信息用来恢复数据库中的所有事物。扩展名为.ldf。
每个数据库文件包含五个属性 :逻辑文件名、物理文件名、初始大小、最大尺寸、增长值。我们可以通过元数据视图sys.database_files查看这些熟悉,每个文件包含一行数据