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

来源:互联网 发布:pc6软件下载指南 编辑:程序博客网 时间:2024/04/30 06:55

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

 

 

master 数据库

 

记录 SQLServer 系统的所有系统级信息这包括实例范围的元数据(例如登录帐户)

 

端点链接服务器和系统配置设置此外master数据库还记录了所有其他数据库的

 

存在数据库文件的位置以及SQL Server 的初始化信息因此如果master 数据库

 

不可用SQL Server 无法启动 SQLServer 系统对象不再存储在master

 

数据库中而是存储在mssqlsystemresource 数据库中

 

 

master数据库对系统来说很关键因此总是要保存它的当前副本创建另一个数据库

 

改变配置值修改登录账户这样的操作都会修改master数据库所以总是应该在完成

 

这些操作之后备份master数据库master数据库本身不大做一次备份很快建议经

 

常做master数据库的备份

 

由于master数据库还记录启动服务器实例所需要的初始化信息每个其他数据库的主文

 

件位置master数据库是SQLServer启动的时候打开的第一个数据库SQLServer是从

 

master数据库找到的其他数据库的信息如果master数据库存在问题整个SQLServer

 

都无法正常启动

 

如果说是master数据库严重损坏如果有备份直接还原master数据库即可如果没有备

 

则需要重建master数据库重建master数据库将使所有的系统数据库恢复到原始状

 

重建master数据库会删除并重建msdb数据库这将导致丢失所有计划信息以及备份

 

和还原历史记录重建master数据库之后SQLServer数据库就好比重新安装后一样

 

所有用户信息都会丢失用户数据库需要重新附加SQLServer任务和计划都要重建

 

因此重建master数据库是个万不得已的选择

 

在执行任何语句或系统过程来更改master数据库中的信息以后,应备份master数据库.

 

建议不要再master数据库中创建用户对象

 

导致master数据库更新并要求备份的操作类型包括:

 

1,创建或删除用户数据库

 

2,添加或删除文件和文件组

 

3,添加登陆或其他登陆安全相关操作

 

4,更改服务器范围的配置选项或者数据库配置选项

 

5,创建或删除逻辑备份文件

 

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

 

 

恢复master数据库使用的还是RESTORE指令.还原master数据库后SQLServer实例将自动停止.

 

关于如何恢复master数据库,在后面将单独写一篇博客.

 

 

 

model 数据库

 

用作在 SQLServer 实例上创建的所有数据库的模板因为每次启动SQL Server 时都

 

会创建 tempdb所以model 数据库必须始终存在于 SQL Server 系统中

 

创建数据库是model数据库是SQLSERVER使用的模板.model数据库里的全部内容都会被复

 

制到新的数据库.所以这个数据库不建议做任何修改.除非是有目的的要建立一些模板.

 

虽然这个数据库的内容一般不会发生改变,但是在SQLServer启动的时候要使用model

 

据库某些设置创建新的tempdb如果没有tempdbSQLServer无法启动因此model数据库

 

必须存在SQLServer系统中这个数据库也要有备份

 

还原model数据库与对用户数据库执行完整的数据库还原相同

 

 

tempdb 数据库

 

tempdb 系统数据库是一个全局资源可供连接到SQL Server 实例的所有用户使用

 

可用于保存下列各项

 

显式创建的临时用户对象例如全局或局部临时表临时存储过程表变量或游标

 

 

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

 

 

由使用已提交读使用行版本控制隔离或快照隔离事务的数据库中数据修改事务生成的行版本

 

 

由数据修改事务为实现联机索引操作多个活动的结果集(MARS)以及 AFTER 触发器等功能而生

 

成的行版本

 

tempdb 中的操作是最小日志记录操作这将使事务产生回滚每次启动SQL Server 时都会重新

 

创建 tempdb从而在系统启动时总是保持一个干净的数据库副本在断开联接时会自动删除临时

 

表和存储过程并且在系统关闭后没有活动连接因此tempdb 中不会有什么内容从一个SQL Server

 

会话保存到另一个会话不允许对tempdb 进行备份和还原操作

 

 

 

 

 

资源数据库(mssqlsystemresource)

 

 

资源数据库是一个隐藏数据库可执行系统对象(入系统存储过程和功能)都保存在这里创建这个数

 

据库是为了快速安全的升级如果没有人可以访问到这个数据库也就没有人可以改变它简单的用

 

新的资源数据库替换掉旧的资源数据库就可以升级到新的包括新系统对象服务包不能使用任何

 

正常方法查看该数据库但这个数据库任然需要磁盘空间

 

mssqlsystemresource数据库从来不做修改理论上不用备份

 

msdb 数据库

 

SQLServer 代理用于计划警报和作业,也可以由其他功能(Service Broker 和数据库邮件)使用

 

SQL Server将在msdb数据库中自动维护一份完整的在线备份与还原历史记录这些信息包括执行备份一

 

方的名称备份时间和用来存储备份的备份设备SQLServer ManagementStudio 利用这些信息提出

 

计划以还原数据库并应用事务日志备份

 

默认情况下msdb使用简单恢复模式如果在恢复用户数据库时使用msdb数据库中的备份与还原历史记录

 

信息建议对msdb数据库使用完整恢复模式并建议考虑将msdb数据库事务日志放置在容错存储设备中

 

还原msdb数据库与对用户数据库执行完整的数据库还原相同

 

 

 

原创粉丝点击