学习笔记——DB恢复技术

一、事务

1.简述

事务(Transaction)是一系列数据库操作,这些操作要么全做,要么全不做,是一个不可分割的工作单位。如:一条SQL语句等。

事务处理技术,包括数据库恢复技术和并发控制技术。事务是恢复和并发控制的基本单位。

事务和程序是两个概念。一般地讲, 一个程序中包含多个事务。

2.事务的ACID特性
原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation) 和持续性(Durability)。

(1)原子性:事务是数据库的逻辑工作单位, 事务中包括的诸操作要么都做, 要么都不做。

(2)一致性:即收敛的性质,与原子性相关。事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。

                       一致状态:当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。

                       不一致状态:数据库运行中发生故障,有些事务尚未完成被迫中断;未完事务的部分操作写入数据库

(3)隔离性:一个事务的执行不能被其他事务干扰。 即一个事务的内部操作及使用的数据对其他并发事务是隔离的, 并发执行                         的各个事务之间不能互相干扰。如:A先读T1,B后读T1;分别在初始T1的基础上进行修改。

(4)持续性(永久性):一个事务一旦提交, 它对数据库中数据的改变就应该是永久性的。 接下来的其他操作或故障不应该对其执行结果有任何影响。

3.事务ACID特性可能遭到破坏的因素
(1) 多个事务并行运行时, 不同事务的操作交叉执行。要保证事务的隔离性。
(2) 事务在运行过程中被强行停止。DBMS必须保证被强行终止的事务对数据库和其他事务没有任何影响。

二、数据库恢复必要性

       计算机系统中硬件的故障、 软件的错误、 操作员的失误以及恶意的破坏仍是不可避免的, 这些故障轻则造成运行事务非正常中断, 影响数据库中数据的正确性, 重则破坏数据库, 使数据库中全部或部分数据丢失。 因此DBMS必须具有把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态) 的功能,这就是数据库的恢复。

       恢复的基本原理就是利用存储在后备副本、日志文件和数据库镜像中的冗余数据来重建数据库。

三、故障

1.事务内部的故障

       事务故障意味着事务没有达到预期的终点,因此,数据库可能处于不正确状态。恢复程序要在不影响其他事务运行的情况下,强行回滚该事务,即撤销该事务已经作出的任何对数据库的修改,使得该事务好像根本没有启动一样。 这类恢复操作称为事务撤销(UNDO)。事务故障是不能预期的,不能由应用程序发现。

2.系统故障

       系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。如CPU故障、OS故障、系统断电等。

       主存内容,尤其是数据库缓冲区(在内存)中的内容都被丢失, 所有运行事务都非正常终止。 发生系统故障时, 一些尚未完成的事务的结果可能已送入物理数据库, 使数据库可能处于不正确的状态。恢复子系统必须在系统重新启动时让所有非正常终止的事务回滚, 强行撤销所有未完成事务。有些已完成的事务可能有一部分甚至全部留在缓冲区,尚未写回到磁盘上的物理数据库中,使数据库处于不一致的状态。恢复子系统需要重做(REDO)所有已提交的事务, 以将数据库真正恢复到一致状态。

3.介质故障

       硬故障指外存故障,如磁盘损坏、磁头碰撞,瞬时强磁场干扰等。这类故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务。只能通过重装数据库或备份文件来恢复。

4.计算机病毒

      人为故障。

      各类故障,可能对数据库的两种影响:一是数据库本身被破坏;二是数据库没有被破坏,但数据不正确,是由于事务的运行被非正常终止造成的。

      恢复操作的基本原理是冗余,利用存储在其他地方的冗余数据来重建数据库。但恢复的实现技术很复杂。

四、恢复的实现技术

恢复机制涉及的两个关键问题是:

        如何建立冗余数据;

        如何利用这些冗余数据实施数据库恢复。

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

(1)数据转储

        数据库管理员定期地将整个数据库复制到磁带、 磁盘或其他存储介质上保存起来的过程。 这些备用的数据称为后备副本(backup)或后援副本。当数据库遭到破坏后可以将后备副本重新装入, 但重装后备副本只能将数据库恢复到转储时的状态, 要想恢复到故障发生时的状态, 必须重新运行自转储以后的所有更新事务。

(2)日志文件

        用来记录事务对数据库的更新操作的文件。具体作用是:
               1)事务故障恢复和系统故障恢复必须用日志文件;
               2)在动态转储方式中必须建立日志文件, 后备副本和日志文件结合起来才能有效地恢复数据库;
               3)在静态转储方式中也可以建立日志文件, 当数据库毁坏后可重新装入后援副本,把数据库恢复到转储结束时刻的

                  正确状态, 然后利用日志文件把已完成的事务进行重做处理, 对故障发生时尚未完成的事务进行撤销处理。

       为保证数据库是可恢复的,登记日志文件时必须遵循两条原则:

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

五、恢复策略

1.事务故障

步骤:

2.系统故障

步骤:

3.介质故障

重装数据库;重做已完成的事务。需要数据管理员介入。

六、数据库镜像

       为避免磁盘介质岀现故障影响数据库的可用性, 许多DBMS提供了数据库镜像(mirror)功能用于数据库恢复。 即根据数据库管理员的要求, 自动把整个数据库或其中的关键数据复制到另一个磁盘上, 每当主数据库更新时, DBMS自动把更新后的数据复制过去, 由DBMS自动保证镜像数据与主数据库的一致性。一旦出现介质故障,可由镜像磁盘继续提供使用, 同时DBMS自动利用镜像磁盘数据进行数据库的恢复, 不需要关闭系统和重装数据库副本。在没有出现故障时, 数据库镜像还可以用于并发操作, 即当一个用户对数据加排他锁修改数据时, 其他用户可以读镜像数据库上的数据, 而不必等待该用户释放锁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值