NCRE-三级数据库技术-第12章-备份与数据库恢复

文章适用于计算机等级考试NCRE三级数据库技术,内容来源于网络,文章内容侵删,如果文章和个人的理解有出入,请务必以自己的知识储备为准,仅做参考

12.1 备份与恢复的概念

12.1.1 备份数据库

  • 备份原因:防止数据库丢失,是数据转移的一种方式

12.1.2 恢复数据库

  • 恢复概念:指DBS故障时,利用备份恢复DB
  • 类型:介质故障恢复、非介质故障恢复

12.2 SQL SERVER的备份与恢复

12.2.1 恢复模式

  • 概念:是一个DB属性,用于控制DB备份和还原操作的基本行为
  • 作用:决定备份类型和还原方案
  • 分类:简单恢复、完整恢复、大容量日志恢复
1.简单恢复
  • 简略记录大部分事务,不备份事务日志,只能保证恢复DB的一致性
2.完整恢复
  • 完整记录了所有事务,并保留所有事务日志记录
3.大容量日志恢复
  • 简略记录大容量操作,完整记录其他事务,一般作为完整恢复的补充

12.2.2 备份内容和时间

  • 备份内容:用户DB和系统DB
  • 备份时间:用户DB(周期性备份),系统DB(修改之后备份)

立刻备份的情况

  • 创建数据库之后
  • 批量加载数据之后
  • 执行清理事务日志的操作之后
  • 执行大容量数据操作之后

12.2.3 备份机制

1.备份设备
  • 概念:SQL SERVER将备份数据库的场所称作备份设备,支持将DB备份到磁带或磁盘上
  • 类型
    • 永久备份设备:在备份前需要先建立
    • 临时备份设备:不需要预先建立,在备份时将DB直接备份到物理文件上
2.创建备份设备的语句
  • 语句sp_addumpdevice
  • 参数
    • [@devtype = ] 'device_type' --设备类型
    • [@logicalname = ] 'logical_name' --设备逻辑名
    • [@physicalname = ] 'physical_name' --设备物理名
3.备份类型
  • 数据库备份:完整数据库备份(完全转储)、差异数据库备份(差异转储)
  • 文件备份:文件备份、差异文件备份
  • 事务日志备份
备份类型 说明
完整数据库备份 是恢复DB的基线,需要备份: 1. 整个DB:数据文件、DB对象、数据信息 2. 备份处于备份过程时发生的活动 3. 备份未提交的事务到日志
差异数据库备份 需要上一次完整备份为基准点,比完备节约时间,恢复时先恢复对应的完备,需要备份: 1. 备份从上次完备之后数据的改动 2. 备份处于差异备份过程时发生的活动 3. 备份未提交的事务到日志
文件备份 针对物理文件进行备份和还原,可以只恢复已损坏的DB文件,更灵活,恢复速度更快
差异文件备份 备份从上一次文件备份之后数据的改动
事务日志备份 备份从上一次日志备份之后的日志记录,仅用于完整恢复或大容量日志恢复模式,分为以下三种类型: 1. 纯日志备份 2. 大容量操作日志备份 3. 结尾日志备份
4.常用备份策略
备份策略 适用场景及特点
完整备份 ● 适用于DB数据量较小,数据更改不频繁的情况 ● 一般几天或几周一次 ● 若对数据修改次数不频繁,且允许少量数据丢失,可以只用完备策略
完整备份+日志备份 ● 适用于只允许极少数据丢失,同时备份频率较低的情况 ● 在两次完全备份期间进行日志备份
完整备份+差异备份+日志备份 在两次完备之间插入若干差异备份,在若干差异备份之间插入若干日志备份
5.备份的实现
  • 完全备份BACKUP DATABASE 数据库名 TO 备份设备
  • 覆盖完全备份BACKUP DATABASE 数据库名 TO 备份设备 WITH INIT
  • 追加日志备份BACKUP LOG 日志文件 TO 备份设备

12.2.4 SQL SERVER恢复机制

  • 支持级别:SQL SERVER支持DB级的恢复和文件级的恢复
1.恢复的顺序
  1. 恢复最近的完全备份
  2. 恢复最近的差异备份(若有)
  3. 恢复差异备份之后的日志备份(若有)
  4. 恢复数据库
2.恢复的实现
  • 完全备份恢复RESOTRE DATABASE 数据库名 FROM 完全备份设备 WITH NORECOVERY
  • 差异备份恢复RESOTRE DATABASE 数据库名 FROM 差异备份设备 WITH NORECOVERY
  • 日志备份恢复RESOTRE LOG 数据库名 FROM 日志备份设备 WITH NORECOVERY

注:NORECOVERY表示之后还有备份文件需要恢复

相关推荐
Bat U4 小时前
MySQL数据库|表设计+新增+分组查询
数据库·mysql
麦聪聊数据4 小时前
企业数据流通与敏捷API交付实战(五):异构数据跨库联邦与零代码发布
数据库·sql·低代码·restful
Elastic 中国社区官方博客4 小时前
当 TSDS 遇到 ILM:设计不会拒绝延迟数据的时间序列数据流
大数据·运维·数据库·elasticsearch·搜索引擎·logstash
Omics Pro4 小时前
虚拟细胞:开启HIV/AIDS治疗新纪元的关键?
大数据·数据库·人工智能·深度学习·算法·机器学习·计算机视觉
J2虾虾5 小时前
MySQL的基本操作
数据库·mysql
arvin_xiaoting5 小时前
OpenClaw学习总结_III_自动化系统_3:CronJobs详解
数据库·学习·自动化
杨云龙UP5 小时前
Oracle 中 NOMOUNT、MOUNT、OPEN 怎么理解? 在不同场景下如何操作?_20260402
linux·运维·数据库·oracle
jzwugang5 小时前
postgresql链接详解
数据库·postgresql
2601_949815336 小时前
MySQL输入密码后闪退?
数据库·mysql·adb