您的位置:首页 > 数据库 > 数据库管理

Sql Server系统数据库的作用

更多 2014/11/28 来源:数据库管理学习浏览量:1669
学习标签: Sql Server
本文导读:Sql Server自带的系统数据库分为:master、model、msdb和tempdb,这四个数据库在SQL Server中各司其职,作为研发人员或者数据库管理员(DBA),有必要了解这几个数据库的作用。

一、master数据库

1、master作为数据库的主要数据库,记录着SQL Server系统的所有系统级信息,例如登录用户、系统配置设置、端点和凭证以及访问其他数据服务器所需要的信息;master数据库还记录着启动服务器实例所需要的初始化信息,每个其它数据库的主文件位置。

2、master数据库是SQL Server启动的时候打开的第一个数据库,SQL Server是从这个数据库里找到其它数据的信息的,如果master数据库有问题,整个SQL Server都将无法启动。

3、master数据库本身不大,做一次备份很快,建议要经常做master的完整数据库备份,以充分保护您的数据,如果master数据库已损坏,可以通过还原master数据库的最近完整数据库备份,轻松修复已损坏的数据库。

4、如果由于master数据库损坏严重大无法启动服务器实例,有没有备份,这时候只能重建了。重建master数据将使的所有的系统数据库恢复到其原始状态,例如,重建master数据库会删除并重新创建msdb数据库,这将导致丢失所有的计划信息以及备份和还原历史记录,所以重建master数据库后,SQL Server就像被重装过一样,所有的用户记录都会丢失,用户数据库需要再次附加,SQL Server任务记录都要重建,这是一个很折腾的过程。重建master数据库是个万不得已的选择。

5、在执行任何语句或系统过程中来更改master数据库中的信息以后(例如,更改服务器范围的配置选项以后),应备份master数据库。如果在更改master数据库后没有进行备份,则自上次备份以来的更改都将在还原备份时丢失。

6、恢复master数据库使用还是RESTORE指令。可是还原master数据库后,SQL Server实例将自动停止。master里面记录了其他所有数据库主文件的地址,SQL Server通过这个地址来寻找这些数据库,如果我们将master数据库恢复到一台新的服务器上,难免文件地址会有所变化,这时SQL Sever将找不到其它数据库。

下面行为会更改master中元数据:

(1)、创建或删除用户数据库,这里不包括用户数据库自动增长以容纳新数据。

(2)、添加或删除文件和文件组

(3)、添加登录或其它与登录安全相关的操作,这里不包括对数据库层面的操作,比如添加用户

(4)、更改服务器范围的配置选项或数据库配置选项

(5)、创建或删除逻辑备份设备

(6)、配置用于分布式查询和远程过程调用(RPC)的服务器,如添加链接服务器或远程登录。

 

二、model 数据库

1、Model是一个用来在实体上创建新用户数据库的模版数据库。你可以把任何存储过程、视图、用户等放在模型数据库里,这样在创建新数据库的时候,新数据库就会包含你放在模型数据库里的所有对象了。因此新建的数据库最小应该有model数据库那么大。我们在创建数据库的时候会指定数据库的大小,通常会大于model数据库的大小,这是因为里面填充了空的page。

2、虽然这个数据库的内容一般不发生变化,但是在SQL Server启动的时候,要使用model数据库的某些设置创建新的tempdb。如果没有tempdb,SQL Server将无法启动。因此model数据库必须始终存在于SQL Server系统中。所以这个数据库也要备份。

 

三、msdb数据库

1、Msdb数据库用来保存数据库备份、SQL Agent信息、DTS程序包、SQLSERVER任务等信息,以及诸如日志转移这样的复制信息。 

2、默认情况下,msdb数据库使用简单恢复模式。建议对msdb数据库使用完整恢复模式,并建议考虑将msdb数据库事务日志放置在容错存储设备中。

 

四、tempdb临时库

1、tempdb存有临时对象,例如全局和本地临时表格和存储过程,可供连接到SQL Server实例的所有用户使用。

2、每次启动SQL Server时都会重建tempdb数据库,从而在系统启动时总保持一个干净的数据库副本,连接断了以后,SQL Server会自动删除临时表和存储过程,因此tempdb数据库中不会有什么内容需要在服务关闭的时候保存下来,只要有干净的model数据库就可以。Temdp数据本身倒不用备份,SQL Server同样也没有提供对tempdb数据库的备份和还原操作,保护好model数据库,就能保证在下次启动时,得到一个好的tempdb数据库,所以对tempdb数据库保护,转为了对model数据库的保护。

 

五、资源数据库(Resource Databse)

1、Resource数据时一个只读数据库,它包含了SQL Server中所有的系统对象。Resource数据库不包含任何用户或用户元数据,对于同一个版本的SQL Server,他们的Resource数据库应该都是一样的。

2、默认在实例下是看不到资源库的,但是Resource数据库是物理存在的,物理文件名为mssqlsystemresource.mdf和mssqlsystemresource.ldf。默认情况下,这些文件存储于目录:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL

3、在群集中,Resource数据库位于共享磁盘中的Data文件夹中,其实Resource数据库依赖于master数据库位置,如果管理员移动了master数据库,则必须也将Resource数据库移动到相同的位置。

4、因为Resource数据库从来不做修改,所以SQL Server理论上不用备份的,但是管理员不但要考虑SQL Server层面的问题,还要考虑整个系统层面的问题,难免物理磁盘损坏会发生,使得文件出现损坏,所以要通过将mssqlsystemresource.mdf文件作为二进制文件,做基于文件的备份或基于磁盘的备份,恢复时要将SQL 服务停止,手动还原mssqlsystemresource.mdf的文件备份副本,并且必须谨慎,不同版本的Resource数据库会不一样,不要使用过期版本或可能不安全的版本覆盖当前Resource数据库。

 

收藏
379
很赞
427