1.事务的概念
事务是用户定义的一个数据库序列,这些操作要么全做、要不不做,是一个不可分割的工作单位。
2.事务的特性(ACID)
A:原子性,一个事务要么全做,要么不做;
C:一致性,事务执行的结果必须让数据库从一个一致性状态到另一个一致性状态;
I:隔离性,一个事务的执行不能被其他事务干扰,并发执行的各个事务之间互不干扰;
D:持续性,一个事务一旦提交,它对数据库中数据的改变就会被写入磁盘,就是永久性的了。
3.故障的种类
事务内部的故障:这里指非预期的故障(运算溢出、并发事务发生死锁撤销这个事务、违反了完整性限制而被终止);
系统故障:造成系统停止运转的任何事件,使得系统需要重新启动(CPU故障、操作系统故障、DBMS代码错误、系统断电)
介质故障:系统故障被称为软故障,介质故障被称为硬故障。比如磁盘损坏....
计算机病毒:一些恶作剧者研究的计算机程序,会对计算机系统造成危险。
4.恢复的实现技术(本质就是‘冗余’)
数据转储:静态转储、动态转储、海量转储、增量转储
登记日志文件:登记的次序严格按并发事务执行的时间次序;必须先写日志文件,后写数据库
5.恢复策略
事务故障的恢复:反向扫描日志文件,对该事务的更新操作执行逆操作,一直处理下去,直到该事务的开始标志。
系统故障的恢复:正向扫描日志文件,找出故障前commit的事务装入重做队列,找出故障发生时未完成的事务装入撤销队列,
重做队列(正向扫描日志文件)做redo,撤销队列(反向扫描日志文件做逆操作)做undo。
介质故障的恢复:重新安装数据库,然后重做已经完成的事务。
6.具有检查点的恢复技术
检查点记录内容:(1)建立检查点时刻所有正在执行事务的清单;(2)这些事务最近一个日志记录的地址。
检查点之前commit或者显式rollback的不用任何操作;
故障之前commit的redo,显式rollback的undo;
故障之后全部undo。
7.数据库映像(mirror)
恢复子系统的作用:
因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失, 因此必须要有恢复子系统。
恢复子系统的功能是:把数据库从错误状态恢复到某一已知的正确状态 。