数据库恢复技术 TRANCATION

数据库恢复技术

事务(Transaction)处理技术:事务事一系列的数据库操作,事数据库程序的基本逻辑单元。事务处理技术主要包括数据库恢复技术和并发控制技术。
事务的基本概念
一 事务
事务是用户定义的数据库操作系列,这个系列要么都做,要么都不做。
二 事务的特性
原子性:事务是数据库的逻辑工作单位,其中的操作要么执行要么不执行。
一致性:当事务执行过程被终断,并且事务中的一些操作已经写入了物理数据库,那么就说当前的数据库处于一种不一致的状态。
隔离性:一个事务的执行不被其他事务干扰。
持续性:事务一旦提交,他对数据库中的改变就是持续性的永久性的。
破坏了事务的一致性和隔离性导致的各种情况
这里写图片描述
1、 丢失修改
两个事务T1和事务T2读入同一个数据并修改,T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失。
2、 不可重复读
事务T1读取数据后,事务T2修改了数据并且提交,导致T1无法再现前一次读取的结果:
1)、事务T1读取数据后,事务T2修改了数据并且提交,导致T1读到数据与前一次数据不同。
2)、T1按照一定条件读取了一定量的数据后,T2删除了其中的部分或者全部数据并且提交,导致T1再次按照相同条件读取的数据时,数据神秘消失
3)T1按照一定条件读取了一定量的数据后,T2插入了一部分数据并且提交,导致T1再次按照相同条件读取的数据时,数据莫名增多。
后两种不可重复读有时会称为“幻影”现象。
3、 脏读
事务T1读取并修改了数据写回到磁盘,此时事务T2读取了同一数据,同时T1的修改因为某些原因撤销了,T2读到的数据就与磁盘中的数据不一致了,就是T2读取的数据时脏读。

数据库恢复概述
数据库子系统是数据库管理系统的重要组成部分,决定这系统的可靠性和运行效率。
故障的种类: 一 事务内部的故障
事务故障意味着事务没有达到预期的终点(commit 和rollback),因此数据库可能处于不正确的状态。回复程序要在不影响其他事务运行的情况下,强行回滚该事务,即撤销该事务已经做出的对数据库的任何修改。这类恢复操作就是事务撤销(UNDO)。
系统故障
当系统出现问题需要重新启动时,恢复子系统需要把所有系统重新启动时非正常结束的事务进行事务撤销(UNDO)操作。
另一方面,又可能有些已经完成的事务的一部分或者全部都在缓存区中,还没有写回到物理数据库,系统故障导致其部分或者全部丢失。这时就要将这些已经提交的事务重新执行,把结果写入物理数据库。
介质故障
磁盘损坏,磁头碰撞,瞬时强磁场干扰。
计算机病毒
计算机病毒导致数据库出现错误。
数据库的恢复技术:冗余。
数据库中的任何一部分数据被破坏或不正确的数据都可以通过存储在系统别处的冗余数据来重建。

恢复的实现技术
数据库冗余数据的建立最常用的技术时“数据转储”和“登陆日志文件”。

数据转储 DBA定期把真个数据库的数据复制到磁盘或者另一个磁带上。然后当数据库遭到破坏后,把数据按照转储后的数据进行恢复,并且把自转储后执行的所有事务再执行一遍。
静态转储:当所有事务停止时,把数据库中数据进行转储,此时不允许事务执行。
动态转储:事务执行和数据转储同时进行,建立日志文件把转储期间的事务执行记录下来。
海量转储:每次转储全部数据库。
增量转储:每次只转储上次转储后更新过的数据。

登记日志文件 用来记录事务对数据库进行更新操作的文件。
以记录为单位的日志文件

  • 各个事务的开始(begin transaction)

  • 各个事务的结束(commit rollBack)

  • 各个事务的所有更新操作

这里每个事务的开始结束和更新操作都作为日志文件的一个日志记录,内容包括:

  • 事务标识(表明是哪儿个事务);
  • 操作的类型(插入,删除,修改);
  • 操作对象(记录内部标识);
  • 更新前数据库的旧值(对于插入而言,null)
  • 更新后数据库的新值(删除,null)

以数据块为单位的日志文件
日志文件的作用
一:事务故障和系统故障的数据库的恢复必须用到日志文件。
二:动态转储必须用到日志记录。
三:静态转储也可以建立日志文件。
登记日志文件
登记的次序必须严格按照事务执行的时间次序
必须先写日志文件,再执行事务操作。

恢复策咯
一 事务故障的恢复
系统自动完成,对用户而言是透明的。

  1. 反向扫描日志文件,找到跟新操作
  2. 对该事务的更新操作进行反操作。
  3. 继续反向扫描,知道读到此事务的开始标记。

二 系统故障恢复
撤销故障发生时未完成的事务,重做已经完成的事务。

  1. 正向扫描日志文件,把有开始有结束的事务列入REDO序列,把故障发生时未执行完的事务列入UNDO序列。
  2. 执行UNDO操作。
  3. 执行REDO操作。

三 介质故障的恢复
重装数据库,重做已经完成的事务。

具有检查点的的恢复技术
为了避免恢复子系统每次恢复时都要检查整个日志文件,设立检查点。确认某些事务是故障发生后需要恢复的。减少了时间。

数据库镜像

根据DBA的要求自动把整个数据库或者其中比较关键的数据库复制到另一个磁盘上。


总结


保证数据一致性是对数据库的最基本的要求。事务时数据库的逻辑工作单位,只要DBMS能够保证系统中一切事务的原子性、一致性、隔离性、持续性,也就能保证数据库处于一致性状态。为了保证事务的原子性、一致性、与持续性,DBMS必须对事务故障、系统故障、介质故障进行恢复。数据库转储技术和登记日志技术时恢复中最常使用的技术。恢复的基本原理时利用存储再后备副本、日志文件和数据库镜像当中的冗余数据来重建数据库。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值