第七章 数据库恢复技术
7.1 事务的基本概念
一、事务
1,事务和程序的概念
2,在 SQL语言中,定义事务的语句
BEGIN TRANSACTION
COM M I T
ROLLBACK
二、事务的特性
1、原子性 (Atomicity)
2、一致性 (Consistency)
3、隔离性 (Islation)
4、持续性 (Durability)
7.2 数据库恢复概述
7.3 故障的种类
一、事务内部的故障
例如:银行转帐事务,这个事务把一笔金额从一个帐户甲转给
另一帐户乙。
BEGIN TRANSACTION
读帐户甲的余额 BALANCE;
BALANCE=BALANCE- AMOUNT; (AMOUNT为转帐金额 )
I F (BALANCE<0) THEN
{打印‘金额不足,不能转帐’ ;
ROLLBACK; (撤销刚才的修改,恢复事务 ) }
ELSE
{读帐户乙的余额 BALANCE1;
BALANCE1=BALANCE1+AMOUNT;
写回 BALANCE1;
COMMIT; }
二、系统故障
三、介质故障
四、计算机病毒
7.4 恢复的实现技术
7.4.1 数据转储
.
转 储 运行事务 故障发生点
Ta T b T f
重装后备副本 重新运行事务
正常运行
恢 复
图 7.1 转储和恢复
7.4.2 登记日志文件 (Logging)
一, 日志文件的格式和内容
二, 日志文件的作用
三, 登记日志文件
7.5 恢复策略
7.5.1 事务故障的恢复
7.5.2 系统故障的恢复
7.5.3 介质故障的恢复
7.6 具有检查点的恢复技术
一、检查点记录的内容
1、建立检查点时刻所有正在执行的事务清单。
2、这些事务最近一个日志记录的地址。
二、动态维护日志文件的功能
1、建立检查点
2、保存数据库状态
具体步骤:
① 将当前日志缓冲中的所有日志记录写入磁盘的日志文件上;
② 在日志文件中写入一个检查点记录;
③ 将当前数据缓冲的所有数据记录写入磁盘的数据库中;
④ 把检查点记录在日志文件的地址写入一个重新开始文件。