文档介绍:数据库系统概论
数据库恢复技术
内容提要
通过本章的学习,应重点掌握:
事务的基本概念
事务的特性
故障的类型及恢复方法
恢复的策略
事务的基本概念(1)
事务:是用户定义的一个有限的数据库操作序列,是一个不可分割的工作单位。
一个程序中包含多个事务。
SQL语言中事务的定义语句:
BEGIN TRANSACTION:开始
COMMIT:提交,将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束
ROLLBACK :在事务的运行过程中发生了某种故障,系统将事务中对数据库的所有已完成的操作全部撤销,滚回到事务开始时的状态。
事务的基本概念(2)
BEGIN TRANSACTION
读账户甲的余额 BALANCE;
BALANCE= BALANCE-AMOUNT;
IF (BALANCE<0) THEN
{打印输出“金额不足,不能转账”;ROLLBACK; }
ELSE
写回 BALANCE;
{读账户乙的余额 BALANCE1;
BALANCE1= BALANCE1+AMOUNT;
写回 BALANCE1;
COMMIT;}
事务的特性(ACID特性)
原子性(Atomicity):事务是数据库的逻辑工作单位,诸操作要么都做,要么都不做
一致性(Consistency):事务执行的结果必须是使数据库从一个一致状态变成另一个一致状态
隔离性(Isolation):一个事物的执行不能被其他事务干扰,即并发执行的各个事务之间不能互相干扰。
持续性(Durability):一个事务一旦提交,对数据库中的数据的改变使永久性的。
事务
保证事务ACID特性是事务处理的重要任务,该特性可能遭到破坏的因素有:
多个事务并发运行时,不同事务的操作交叉执行
事务在运行过程中被强制停止
保证事务在故障时满足ACID特性的技术称为恢复。
保证事务在并发执行时满足ACID特性的技术称为并发控制。
恢复和并发控制是保证事务正确执行的两项基本技术,合称事务管理。
故障的种类(1)
事务故障:可以通过事务程序发现的,有的是非预期的。
运算溢出
事务因无法执行而自行夭折,如无数据、输入的数据类型不对等
操作原因操作错误或改变主意而要求撤销事务
系统调度上的原因而终止某些事务的执行,如系统发生死锁等
恢复程序要撤销该事务已经做出的任何对数据库的修改,这种恢复操作称事务撤销(UNDO)
故障的种类(2)
系统故障:指造成系统停止运转的任何事件,使得系统要重新启动。
突然停电
除数据库存储介质故障以外的硬、软件故障(CPU故障、操作系统故障、DBMS代码错误等)
系统故障影响正运行的事务,但不破坏数据库。
恢复措施:
重新启动操作系统和DBMS后,恢复子系统除需撤消所有未完成的事务
还要重做所有已提交的事务,恢复数据库至一致状态
故障的种类(3)
介质故障:指外存故障
磁盘损坏、磁头碰撞、瞬时强磁场干扰等
介质故障破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务。
计算机病毒:人为故障或破坏。
总结:各类故障对数据库的影响:
数据库本身被破坏
数据库没有破坏,但数据可能不准确
数据库恢复技术
数据库对付故障的措施:
一是尽可能提高系统的可靠性
二是在系统发生故障后将数据库恢复至一致状态。
恢复的原理简单:冗余。即数据库中任何一部分被破坏的或不正确的数据可以根据存储在系统别处的冗余数据来重建。
恢复机制涉及的两个关键问题:
如何建立冗余数据
如何利用这些冗余数据恢复数据库