sql server 备份与恢复系列八 系统数据库备份与恢复分析
一.概述
在前面讲过"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 备份与恢复系列八 系统数据库备份与恢复分析的更多相关文章
- 对Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析
对Oracle .SQL Server.MySQL.PostgreSQL数据库优缺点分析 Oracle Database Oracle Database,又名Oracle RDBMS,或简称Oracl ...
- SQL Server 中4个系统数据库,Master、Model、Msdb、Tempdb。
(1)Master数据库是SQL Server系统最重要的数据库,它记录了SQL Server系统的所有系统信息.这些系统信息包括所有的登录信息.系统设置信息.SQL Server的初始化信息和其他系 ...
- 如何隐藏掉SQL Server中自带系统数据库,数据表,存储过程等显示文件,只显示用户的数据库,数据表等文件
企业管理器了,----> 编辑该数据库的注册属性--->“常规”属性页下面-->“显示系统数据库和系统对象”的选项去掉
- 【SQL Server 学习系列】-- 收缩数据库文件大小
USE WebExam; GO ALTER DATABASE WebExam SET RECOVERY SIMPLE; GO -- 收缩文件到 1 MB. ); GO ALTER DATABASE W ...
- Sql Server来龙去脉系列之四 数据库和文件
在讨论数据库之前我们先要明白一个问题:什么是数据库? 数据库是若干对象的集合,这些对象用来控制和维护数据.一个经典的数据库实例仅仅包含少量的数据库,但用户一般也不会在一个实例上创建太多 ...
- Expert for SQL Server 诊断系列
Expert for SQL Server 诊断系列 Expert 诊断优化系列------------------锁是个大角色 前面几篇已经陆续从服务器的几个大块讲述了SQL SERVER数据库 ...
- Sql Server来龙去脉系列 必须知道的权限控制核心篇
最近写了<Sql Server来龙去脉系列 必须知道的权限控制基础篇>,感觉反响比较大.这可能也说明了很多程序猿对数据库权限控制方面比较感兴趣,或者某些技术点了解的没有很透彻. 有些人看 ...
- Sql Server来龙去脉系列 必须知道的权限控制基础篇
题外话:最近看到各种吐槽.NET怎么落寞..NET怎么不行了..NET工资低的帖子.我也吐槽一句:一个程序猿的自身价值不是由他选择了哪一门技术来决定,而是由他自身能创造出什么价值来决定. 在进入本篇内 ...
- Sql Server来龙去脉系列之三 查询过程跟踪
我们在读写数据库文件时,当文件被读.写或者出现错误时,这些过程活动都会触发一些运行时事件.从一个用户角度来看,有些时候会关注这些事件,特别是我们调试.审核.服务维护.例如,当数据库错误出现.列数据被更 ...
随机推荐
- MAC book 无法删除普通用户的解决办法
1来自苹果官网 macOS Sierra: 删除用户或群组 如果您是管理员,当您不想再让某些用户访问 Mac 时,可以删除他们.您也可以删除不想要的群组. 删除用户时,您可以存储该用户的个人文件夹(包 ...
- Django的rest_framework的权限组件和频率组件源码分析
前言: Django的rest_framework一共有三大组件,分别为认证组件:perform_authentication,权限组件:check_permissions,频率组件:check_th ...
- Django的rest_framework的视图之基于ModelViewSet视图源码解析
前言 今天一直在整理Django的rest_framework的序列化组件,前面一共写了2篇博客,前面的博客给的方案都是一个中间的状态的博客,其中有很多的冗余的代码,如果有朋友不清楚,可以先看下我前面 ...
- [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. ...
- Java16-java语法基础——异常
Java16-java语法基础——异常 一.异常概念 1.异常:应用程序在运行过程中出现的错误或非正常的意外情况,即虚拟机的通常操作中可能遇到的异常,是一种常见的运行错误. 2.原因:数组越界.空指针 ...
- 定义java中的变量
四种类型 1.整数 2.小数 3.字符 4.布尔值 八种 整数(byte 字节1 范围-128~127 ) (short 字节 2) (int 字节4) (lon ...
- Struts2学习第三天——保存登陆信息及数据校验
在JSP中服务器端保存数据的作用域通常有request.session.application,它们对应的Servlet API分别是HttpServletRquerst.HttpSession.Se ...
- ASP.NET对大文件上传的解决方案
在ASP.NET 开发的过程中,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的做到多线程的操控和上传进度的显示.笔者在此给大家推荐一款简单易用的上传组件,从而快速便捷得解决了 ...
- Paper | 块分割信息 + 压缩视频质量增强
目录 1. 亮点 2. 网络 3. Mask 及其融合 4. 结论 论文:Enhancing HEVC Compressed Videos with a Partition-Masked Convol ...
- Jetbrain Pycharm Theme
https://github.com/ChrisRM/material-theme-jetbrains