前言

    在SQL Server中,数据库可分为用户数据库和系统数据库。用户数据库是用户为实现特定用户需求而创建的数据库,主要用来存储用户的应用数据。系统数据库是在安装SQL Server时自动创建的,主要用来完成特定的数据库管理工作的数据库。
    SQL Server 2012的系统数据库主要有master、model、msdb、tempdb和resource这五个。

各系统数据库介绍
  1. master数据库
    master数据库是SQL Server中最重要的数据库,它记录了SQL Server系统中所有的系统信息,包括登录账户、系统配置和设置、服务器中数据库的名称、相关信息和这些数据库文件的位置,以及SQL Server初始化信息等。由于master数据库记录了如此多且重要的信息,一旦数据库文件损失或损毁,将对整个SQL Server系统的运行造成重大的影响,甚至是得整个系统瘫痪,因此,要经常对master数据库进行备份,以便在发生问题时,对数据库进行恢复。
    如果我们需要使用master数据库,则需要考虑以下措施
    (1)有一个当前数据库备份
    (2)创建、修改和和删除数据库;更改服务器或数据库配置信息;增添或修改登录账户后,尽快备份master数据库
    (3)尽量不在master中创建用户对象
    (4)不要将master数据库的TRUSTWORTHY设置为ON
    TRUSTWORTHY属性可用于减少附加数据库所带来的某些隐患,该数据库包含下列对象之一:
    带有 EXTERNAL_ACCESS 或 UNSAFE 权限设置的有害程序集。 有关详细信息,请参阅 CLR Integration Security。
    所定义的、作为高特权用户执行的有害模块。 有关详细信息,请参阅 EXECUTE AS 子句 (Transact-SQL)。

  2. model数据库
    model系统数据库是一个模板数据库,可以用作建立数据库的摸板。它包含了建立新数据库时所需的基本对象,如系统表、查看表、登录信息等。在系统执行建立新数据库操作时,它会复制这个模板数据库的内容到新的数据库上。由于所有新建立的数据库都是继承这个model数据库而来的,因此,如果更改model数据库中得内容,如增加对象,则稍后建立的数据库也都会包含该变动。
    model系统数据库是tempdb数据库的基础。由于每次启动提供SQL Server时,系统都会创建tempdb数据库,所以model数据库必须始终存在于SQL Server系统中。

  3. msdb数据库
    msdb系统数据库是提供提“SQL Server代理服务”调度警报、作业以及记录操作员时使用。如果不使用这些SQL Server代理服务,就不会使用到该系统数据库。
    SQL Server代理服务是SQL Server中的一个Windows服务,用于运行任何已创建的计划作业。作业是指SQL Server中定义的能自动运行的一系列操作。例如,如果希望在每个工作日下班后备份公司所有服务器,就可以通过配置SQL Server代理服务使数据库备份任务在周一到周五的22:00之后自动运行。

  4. tempdb数据库
    tempdb数据库是存在于SQL Server会话期间的一个临时性的数据库。tempdb系统数据库是一个全局资源,可供连接到SQL Server的所有用户使用。tempdb中的操作是最小日志记录操作,可以使事务产生回滚。一旦关闭SQL Server,tempdb数据库保存的内容将自动消失。重启动SQL Server时,系统将重新创建新的、空的tempdb数据库。因此,tempdb中的内容仅存于本次会话中。
    tempdb保存的内容主要包括:
    (1)显示创建的临时用户对象,如临时表,临时存储过程、表变量或游标。
    (2)所有版本的更新记录,如修改事务生成的行版本
    (3)SQL Server创建的内部工作表,如存储假脱机数据的工作表
    (4)创建或重新生成索引时,临时排序的结果。
    不允许对tempdb进行备份或还原。

  5. resource数据库
    resource数据库是只读数据库,包含了SQL Server中所有系统对象。SQL Server系统对象(如sys.object对象)在物理上持续存在于resource数据库中。resource数据库不包含用户数据或用户元数据。

更多推荐

SQL Server 2012数据库 系统数据库介绍