数据库恢复技术

数据库恢复技术


 

       事务


 事务是用户定义的一个数据库操作系列,这些操作要么全做,要么不做,是一个不可分割的工作单位

事务通常以BEGIN TRANSACTION 开始,以COMMIT或者ROLLBACK结束。

COMMIT表示提交,即提交事务的所有操作。就是将事务中所有对数据库更新操作写回到磁盘上的物理数据库中去,事务正常结束。

ROLLBACK表示回滚,即系统将事务中对数据库的所有已完成的操作全部撤销,回滚到事务开始的地方。

事务的四 个特点:

1、原子性

2、隔离性

3、一致性

4、持续性   

事务不仅是恢复的基本单位,还是并发控制的基本单位


 

       故障的种类和恢复策略


               1、事务内部故障——运算溢出、并发事务发生死锁而被选中撤销该事务、违反了某些完整性限制等

恢复步骤

      • 反向扫描文件日志(从后往前扫描),查找该事务的更新操作
      • 对该事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库
      • 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。
      • 如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。

2、系统故障——特定类型的硬件错误(如CPU故障)、操作系统故障、DBMS代码错误、系统断电

恢复步骤:

      • 正向扫描日志文件(1.将在故障发生前已经提交的事务加入重做(REDO)队列,这些事务既有begin transaction记录,也有commit记录;2.将在故障发生时未完成的事务加入撤销(Undo)队列,这些事务中只有begin transaction记录,无相应的commit记录)
      • 对撤销(Undo)队列事务进行撤销(Undo)处理(1.反向扫描日志文件,对每个undo事务的更新操作进行逆操作;2.将日志记录中“更新前的值”写入数据库)
      • 对重做(Redo)队列事务进行重做(Redo)处理(1.正向扫描日志文件,对每个REDO事务重新执行登记的操作;2.将日志记录中“更新后的值”写入数据库

3、介质故障——磁盘损坏、磁头碰撞、操作系统的某种潜在错误、瞬时强磁场干扰

  • 装入最新的数据库后备副本,是数据库恢复到最近一次转储时的一致性状态
  • 装入相应的日志文件副本,重做已完成的副本

4、计算机病毒

恢复的基本原理是冗余

建立冗余最常用的技术是数据转储和登记日志文件

1、数据转储

  • 静态转储——在系统中的无运行事务时运行的转储操作
  • 动态转储——转储期间允许对数据库进行存取和修改

2、登记日志文件

日志文件是用来记录事务对数据库的更新操作的文件

日志文件的作用:

  • 事务故障恢复和系统故障恢复必须用日志文件
  • 在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库

在静态转储的方式中也可以建立日志文件,当数据库毁坏后可重新装入后援副本把数据库恢复到转出结束时刻的正确状态,然后利用日志文件把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤销处理。

登记日志文件的规则:

  • 登记的次序严格按并发事务执行的时间次序
  • 必须先写日志文件,后写数据库

 

posted @   粉头老爷爷  阅读(340)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示