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表示之后还有备份文件需要恢复

相关推荐
小羽网安1 小时前
从零开始学习 sql 注入,常见的 sql 注入解析
数据库·sql·学习
2401_846339562 小时前
CSS如何优化大型项目样式_使用SASS预处理器提升开发效率
jvm·数据库·python
ss2738 小时前
食谱推荐系统功能测试如何写?
java·数据库·spring boot·功能测试
l1t8 小时前
DeepSeek总结的数据库外部表
数据库
m0_674294648 小时前
如何编写SQL存储过程性能对比_记录执行时间评估优化效果
jvm·数据库·python
014-code9 小时前
CompletableFuture 实战模板(超时、组合、异常链处理)
java·数据库
运气好好的9 小时前
怎样开启phpMyAdmin的操作审计日志_记录每条执行的SQL
jvm·数据库·python
それども9 小时前
DELETE 和 TRUNCATE TABLE区别
java·数据库·mysql
wenha9 小时前
数据库隔离级别
数据库·mysql·sqlserver·隔离级别
2401_8714928510 小时前
Layui如何修改Layui默认的UI主题颜色(换肤功能实现)
jvm·数据库·python