首页 > 代码库 > sqlserver 标准系统数据库

sqlserver 标准系统数据库

SQL server系统数据库很重要,大部分时候都不应该修改他们。唯一例外的是model数据库和tempdb数据库。model数据库允许部署更改到任何新创建的数据库(如存储过程),而更改tempdb数据库则是为了帮助扩展数据库以承担更多的负载。

1、Resource数据库

Resource数据库从SQL server 2005引进。它包含了SQL server运行所需的所有的只读的关键系统表、元数据以及存储过程。它不包含任何用户实例或数据库的任何信息,它只在安装新服务补丁时被写入。Resource数据库包含其他数据库逻辑引用的所有物理表和存储过程。默认安装位置为C:\Procgram Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Binn,每个实例只有一个Resource。

注:其中C:是标准设置,MSSQL14是版本,.MSSQLSERVER是实例名。

 自2012版本以来,升级到新服务补丁或者和快速修正时候,将使用Resource数据库的副本覆盖旧数据库,这样可使用户快速升级SQL server 目录,并且可以回滚到前一个版本。

通常,DBA在连接到任意一个数据库的同时都可以对Resource数据库进行简单的查询,而不必直接连接Resource数据库。

例如:

技术分享

  注:不要将Resource数据库放在加密或者压缩的驱动器上,因为这样可能会导致升级问题或者性能问题。

 

二、master数据库

  master数据库包含有关数据的元数据(数据库配置文件和文件位置)、登陆以及有关实例的配置信息。

  运行如下代码,可以查看部分元数据:

  技术分享

 

  resource数据库和master数据库主要的区别在于:master数据库保存用户实例特定的数据,而resource数据库只保存用户实例所需的架构和存储过程,不包含任何实例特定的数据。

尽量不要在master数据库中创建对象,如果创建了,那么可能需要更频繁的进行备份。

 

三、tempdb数据库

  tempdb用于存储用户创建的临时对象、数据库引擎需要的临时对象和行版本信息,类似于操作系统的分页文件。tempdb数据库在每次重启sqlserver时创建,大小恢复为默认大小,我们无需考虑去备份他。

  对tempdb中的对象数据更改可以减少登陆;

  为tempdb数据库分配足够的空间非常重要;

  通常,应将tempdb数据库设置为在需要空间时自动扩展;

  考虑到15%~20%的扩展开销下留出足够的空间,如果没有足够的空间。

 

四、model数据库

  model数据库是sqlserver创建新数据库时充当模板的系统数据库。也就是说,创建每个数据库时,SQL server 将model数据库复制为新数据库;唯一的例外发生在还原和重新连接其他服务器上的数据库时。所以,如果在model数据库中添加你自己的对象,那么应该把model数据库包括在你的备份中,或者维护包含更改的脚本。

 

五、msdb数据库

  msdb包含SQL server代理、日志传送、SSIS以及关系数据库引擎的备份和还原系统使用的信息。该存储过程存储了有关作业、操作、警策略以及作业历史的全部信息。这些都是重要的系统级数据,所以应该定期对该数据库备份。

  

 

sqlserver 标准系统数据库