一.概述

  在前面讲过"sql server 备份与恢复系列"都是集中在用户数据库上。sql server还维护着一组系统数据库,这些系统数据库对于服务器实例的运行至关重要。在每次进行系统更新后必须备份多个系统数据库。必须备份的系统数据库包括:msdb,master,model。如果使用了复制,还要备份distribution库。备份以防止系统故障时,用于还原恢复。

  1.master数据库介绍

    master数据库记录着所有系统级信息,如登录账户,系统配置,端点和凭据,以及访问其他数据库服务器需要的信息。还有记录实例启动时需要的初始化信息,其它数据库主文件位置,master是sql server启动时第一个打开的数据库,如果master库有问题,整个sql server无法正常启动。
    master数据库不大,建议经常做完整数据库备份。如果因为master库损坏无法启动服务器实例,又没有备份,则必须重建。 重建后会删除并重新创建msdb库,导致丢失所有计划信息以及备份和还原历史记录。sql server也被重装过一样。用户记录丢失,数据库要再次附加,任务计划要重建。是一件很折腾的过程。
    恢复master数据库使用的还是restore指令。还原master数据库后,sql server实例将自动停止。因为master记录了所有数据库主文件地址,通过这些地址寻找这些数据库。如果将master数据库恢复到一台新的服务器上,难免文件地址会发生变化,这时找不到地址,就需要使用单用户模式启动sql server,将master数据库里的信息修改成新的地址。
    如果要启动单用户模式,首先停止所有sql server服务(服务器实例本身除外),并停止所有sql server实用工具。否则单用户启动后它们占用了这个用户连接,管理员反而连接不进去了。

  2.model数据库

    当创建用户数据库时,model数据库是sql server使用的模板。不推荐对该库对任务修改。虽然该库内容一般不发生变化,但sql server在启动时候,需要使用model库的某些设置创建新的tempdb。如果没有tempdb ,实例无法启动。
  3. msdb数据库
    msdb存储了计划信息,备份和还原历史记录信息等。默认情况下,msdb数据库使用简单恢复模式。如果在恢复用户数据库时使用msdb数据库中的备份与还原历史记录信息,建议对msdb数据库使用完整恢复模式,并建议将msdb数据库事务日志放置在容错存储设备中。
  4. tempdb数据库和资源数据库
    sql server还有二个系统数据库比较特别,是tempdb和资源数据库Resource Database。缺了这两个数据库, sqlserver无法启动,但它们又不能做数据库备份。tempdb系统数据库是一个全局资源,可供连接到sqlserver实例的所有用户使用。每次启动sqlserver,会重建tempdb库,保持一个干净的副本。会话连接断开后,会自动删除该会话的临时表。因此tempdb不会有什么内容需要在服务器关闭的时候保存下来。tempdb不用备份和还原操作,保护好model数据库就能保证在下次启动时,得到一个好的tempdb数据库。
    Resource 数据库是一个只读数据库,它包含了sql server中的所有系统对象。例如sys.objects。Resource 数据库从来不做修改,所以sql server理论上不用备份Resource 数据库。考虑到物理磁损坏,可以做基于文件的备份或基于磁盘的备份。

二. 系统数据库备份策略

-- 查看系统数据库默认的恢复模式
SELECT name, recovery_model_desc FROM sys.databases

    

系统数据库 说明 是否支持备份 恢复模式 注释
 master  记录sqlserver系统的所有系统级
信息的数据库
 支持  简单  必须经常备份,定期备份计划,大量更新后补充备份。
 model 为所有数据库创建的模板  支持  用户可配置  根据需要创建完整数据库备份,由于数据库较小且
很少改动,因此不必备份日志。
 msdb  sqlserver代理用来安排警报和作业
以及记录操作员信息的数据库。msdb
数据库还包含历史记录表,例如备份和
还原历史记录表
 支持  简单
(默认值)
 更新时备份msdb数据库。
 Resource 所有系统对象副本的只读数据库   不支持    不能备份Resource数据库。
 tempdb 用于保存临时或中间集的工作空间,
启动实例时会重新创建此库,关闭服务
时永久删除tempdb数据库中所有数据
 不支持  简单  无法备份tempdb数据库。
 distribution

复制分发服务器时才存在此数据库。
存储元数据,各种复制的历史记录数据
以及用于事务复制的事务

 支持  简单  根据具体的复制配置决定。

sql server 备份与恢复系列八 系统数据库备份与恢复分析的更多相关文章

  1. 对Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析

    对Oracle .SQL Server.MySQL.PostgreSQL数据库优缺点分析 Oracle Database Oracle Database,又名Oracle RDBMS,或简称Oracl ...

  2. SQL Server 中4个系统数据库,Master、Model、Msdb、Tempdb。

    (1)Master数据库是SQL Server系统最重要的数据库,它记录了SQL Server系统的所有系统信息.这些系统信息包括所有的登录信息.系统设置信息.SQL Server的初始化信息和其他系 ...

  3. 如何隐藏掉SQL Server中自带系统数据库,数据表,存储过程等显示文件,只显示用户的数据库,数据表等文件

    企业管理器了,---->   编辑该数据库的注册属性--->“常规”属性页下面-->“显示系统数据库和系统对象”的选项去掉

  4. 【SQL Server 学习系列】-- 收缩数据库文件大小

    USE WebExam; GO ALTER DATABASE WebExam SET RECOVERY SIMPLE; GO -- 收缩文件到 1 MB. ); GO ALTER DATABASE W ...

  5. Sql Server来龙去脉系列之四 数据库和文件

        在讨论数据库之前我们先要明白一个问题:什么是数据库?     数据库是若干对象的集合,这些对象用来控制和维护数据.一个经典的数据库实例仅仅包含少量的数据库,但用户一般也不会在一个实例上创建太多 ...

  6. Expert for SQL Server 诊断系列

    Expert for SQL Server 诊断系列 Expert 诊断优化系列------------------锁是个大角色   前面几篇已经陆续从服务器的几个大块讲述了SQL SERVER数据库 ...

  7. Sql Server来龙去脉系列 必须知道的权限控制核心篇

    最近写了<Sql Server来龙去脉系列  必须知道的权限控制基础篇>,感觉反响比较大.这可能也说明了很多程序猿对数据库权限控制方面比较感兴趣,或者某些技术点了解的没有很透彻. 有些人看 ...

  8. Sql Server来龙去脉系列 必须知道的权限控制基础篇

    题外话:最近看到各种吐槽.NET怎么落寞..NET怎么不行了..NET工资低的帖子.我也吐槽一句:一个程序猿的自身价值不是由他选择了哪一门技术来决定,而是由他自身能创造出什么价值来决定. 在进入本篇内 ...

  9. Sql Server来龙去脉系列之三 查询过程跟踪

    我们在读写数据库文件时,当文件被读.写或者出现错误时,这些过程活动都会触发一些运行时事件.从一个用户角度来看,有些时候会关注这些事件,特别是我们调试.审核.服务维护.例如,当数据库错误出现.列数据被更 ...

随机推荐

  1. MAC book 无法删除普通用户的解决办法

    1来自苹果官网 macOS Sierra: 删除用户或群组 如果您是管理员,当您不想再让某些用户访问 Mac 时,可以删除他们.您也可以删除不想要的群组. 删除用户时,您可以存储该用户的个人文件夹(包 ...

  2. Django的rest_framework的权限组件和频率组件源码分析

    前言: Django的rest_framework一共有三大组件,分别为认证组件:perform_authentication,权限组件:check_permissions,频率组件:check_th ...

  3. Django的rest_framework的视图之基于ModelViewSet视图源码解析

    前言 今天一直在整理Django的rest_framework的序列化组件,前面一共写了2篇博客,前面的博客给的方案都是一个中间的状态的博客,其中有很多的冗余的代码,如果有朋友不清楚,可以先看下我前面 ...

  4. [leetcode]364. Nested List Weight Sum II嵌套列表加权和II

    Given a nested list of integers, return the sum of all integers in the list weighted by their depth. ...

  5. Java16-java语法基础——异常

    Java16-java语法基础——异常 一.异常概念 1.异常:应用程序在运行过程中出现的错误或非正常的意外情况,即虚拟机的通常操作中可能遇到的异常,是一种常见的运行错误. 2.原因:数组越界.空指针 ...

  6. 定义java中的变量

    四种类型 1.整数 2.小数 3.字符 4.布尔值 八种 整数(byte   字节1   范围-128~127 )    (short   字节 2)    (int    字节4)     (lon ...

  7. Struts2学习第三天——保存登陆信息及数据校验

    在JSP中服务器端保存数据的作用域通常有request.session.application,它们对应的Servlet API分别是HttpServletRquerst.HttpSession.Se ...

  8. ASP.NET对大文件上传的解决方案

    在ASP.NET 开发的过程中,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的做到多线程的操控和上传进度的显示.笔者在此给大家推荐一款简单易用的上传组件,从而快速便捷得解决了 ...

  9. Paper | 块分割信息 + 压缩视频质量增强

    目录 1. 亮点 2. 网络 3. Mask 及其融合 4. 结论 论文:Enhancing HEVC Compressed Videos with a Partition-Masked Convol ...

  10. Jetbrain Pycharm Theme

    https://github.com/ChrisRM/material-theme-jetbrains