野蛮木木原创 转载请注明出处和链接

思考SQL Server三十问之二系统数据库

2. 系统DB有哪些,都有什么作用,需不需要做备份,为什么;损坏了如何做还原(主要是master库);

 

思考:

系统数据库的重要性不言而喻,了解系统数据库的作用,就是了解mssql是如何管理sql server工作的。

这里面比较重要的master是统管全局的数据库,tempdb在很多情况下是性能的瓶颈db,model可以做很多标准化的东西。

 

master: 系统数据库,该库主要是管理和存储server的配置项,用户,权限,端点,link server...

tempdb: 使用最频繁的库,提供全局的交换存储空间。包含(不限于)如下几种对象:

 1) 用户显性的创建的临时对象:表变量、临时表、游标、临时存储过程...

     有一些表明确的不会被缓存: 
   关联着显式DDL的临时表 
   关联着命名的约束的临时表 
   作为动态产生的SQL语句的一部分的临时表——例如,存储过程sp_executeSQL的环境中

 2) 数据库引擎创建的内部对象,例如,用于存储假脱机或排序的中间结果的工作表。

 3) 联机事务

msdb: 系统调度、作业、警报;是sql agent的主要存储库。

model: 模版库,主要作用是为了标准化初始化DB。

Resource: 系统资源库,不可见,是存储各类server对象,如sys.objects;

 

master: 需要备份,一天一次

tempdb: 不能备份,每次重启sql server都会重建

msdb: 需要备份,一天一次,为了保存job数据

model:可以不备份,但需要修改model后备份,为了避免一些初始化的东西丢失。

Resource:自己在过去的时间,没有对这个库进行过备份,专门看了下msdn,这个库的备份方式只能文件备份mssqlsystemresource.mdf 文件,然后还原覆盖。

 

如何还原master:

1. 在单用户模式下启动服务器实例。

2. cmd: C:\> sqlcmd

    RESTORE DATABASE master FROM disk='E:\MSSQL\armor\master.bak' WITH REPLACE;go;

3. 重启sql server.

posted on 2012-05-20 21:32  野蛮木木  阅读(310)  评论(0)    收藏  举报