江西省住房建设厅统计网站,外贸网络推广方法,上海十大集团,上海市建设安全协会成绩查询的网站在数据库系统中#xff0c;恢复是指在发生某种故障导致数据库数据不再正确时#xff0c;将数据库恢复到已知正确的某一状态的过程。数据库故障可能由多种原因引起#xff0c;包括硬件故障、软件错误、操作员失误以及恶意破坏。为了确保数据库的安全性和完整性#xff0c;数…在数据库系统中恢复是指在发生某种故障导致数据库数据不再正确时将数据库恢复到已知正确的某一状态的过程。数据库故障可能由多种原因引起包括硬件故障、软件错误、操作员失误以及恶意破坏。为了确保数据库的安全性和完整性数据库管理系统DBMS必须具有有效的恢复机制。
一.故障的种类
在数据库系统中可能发生的故障主要包括事务故障、系统故障、介质故障和计算机病毒。每种故障类型都可能对数据库的正常运行产生影响因此需要相应的恢复机制来应对这些故障。
1. 事务故障
事务故障指事务未达到预期终点使得数据库可能处于不正确状态。这包括事务内部的非预期故障如运算溢出、并发事务死锁等。恢复程序通过事务撤销即回滚事务已做出的对数据库的修改将事务恢复到未启动的状态以保证数据一致性。
2. 系统故障
系统故障是指导致系统停止运转的各种事故例如硬件错误、操作系统故障、DBMS代码错误、突然停电等。这类故障影响正在运行的所有事务可能导致数据库非正常终止。在系统重新启动时恢复子系统需要回滚未完成的事务并重做已提交的事务以将数据库恢复到一致状态。
3. 介质故障
介质故障也称为硬故障指外存故障如磁盘损坏、磁头碰撞等。这类故障可能破坏整个数据库或部分数据库影响存取这部分数据库的所有事务。在发生介质故障后需要将后援副本装入数据库并重新执行已成功完成的事务将已提交的结果重新写入数据库。
4. 计算机病毒
计算机病毒是一种人为的故障或破坏它可以繁殖和传播对计算机系统包括数据库造成破坏。计算机病毒可能导致数据的损坏和系统的不稳定需要采取相应的安全防护措施来避免病毒的侵害。
二.故障恢复
数据库系统的恢复机制涉及建立备份数据和如何利用备份数据来修复数据库。备份数据的建立通常采用数据转储和日志文件技术。
1. 数据转储
数据转储是将数据库定期复制到转储设备如磁带或磁盘的过程。转储设备中的备用数据库文件称为后备副本。静态转储和动态转储是两种常见的方式。 静态转储和动态转储: 静态转储: 在系统中无运行事务时进行的转储操作转储时数据库处于一致性状态。静态转储简单但会降低数据库的可用性。动态转储: 允许在转储期间对数据库进行访问或修改可以并发执行。需要记录转储期间各事务对数据库的修改活动建立日志文件。动态转储克服了静态转储的缺点。 海量转储和增量转储: 海量转储: 每次转储全部数据库便于恢复。增量转储: 每次只转储上一次转储后更新过的数据适用于大型且频繁更新的数据库。
2. 日志文件
日志文件用于记录每一次对数据库的更新活动分为数据块为单位和记录为单位的两种格式。登记日志文件的目的是为了数据库的恢复包括事务故障恢复、系统故障恢复和介质故障恢复。
作用: 用于事务故障和系统故障恢复协助后备副本进行介质故障恢复。在动态转储方式中必须与后备副本一起使用。在静态转储方式中可用于重新装入后备副本和对已完成事务的重做处理。
3. 恢复事务
发生故障时首先根据前次转储的后备副本恢复数据库然后利用日志文件进行事务的恢复。 恢复步骤: 从头扫描日志文件找出已经结束和尚未结束的事务。对尚未结束的事务进行撤销UNDO处理和已经结束的事务进行重做REDO处理。 撤销和重做处理: 撤销处理: 反向扫描日志文件对每个事务的更新操作执行反操作恢复修改过的数据。重做处理: 正向扫描日志文件重新执行登记的事务的操作确保数据库恢复到正确状态。
三.恢复策略
恢复策略针对事务故障、系统故障和介质故障分别制定以确保数据库的一致性和可靠性。
1. 事务故障恢复
事务故障是指事务在运行至正常终止点前被终止恢复子系统通过利用日志文件撤销已对数据库进行的修改来进行事务故障恢复。
步骤: 反向扫描日志文件查找该事务的更新操作。对该事务的更新操作执行逆操作包括插入、删除和修改。继续反向扫描日志文件直到读到该事务的开始标记。
事务故障的恢复由系统自动完成对用户透明无需用户干预。
2. 系统故障恢复
系统故障分为两种情况未完成事务对数据库的更新可能已写入数据库已提交事务对数据库的更新可能还留在缓冲区没有写入数据库。因此系统故障的恢复操作包括撤销故障发生时未完成的事务和重做已完成的事务。
步骤: 正向扫描日志文件找出已提交和尚未完成的事务将其分别记录在重做队列和撤销队列中。对撤销队列中的事务进行撤销操作即反向扫描日志文件执行逆操作。对重做队列中的事务进行重做操作即正向扫描日志文件重新执行事务的操作。
系统故障的恢复由系统自动完成无需用户干预。
3. 介质故障恢复
介质故障包括磁盘上的物理数据和日志文件的破坏恢复操作涉及重装数据库并重做已完成的事务。
步骤: 装入最新的数据库副本将数据恢复到最近一次转储时的一致性状态。若为动态转储同时装入转储开始时刻的日志文件副本利用系统故障恢复方法REDOUNDO将数据库恢复到一致性状态。若为静态转储数据库即处于一致性状态。装入相应的日志文件副本重做已完成的事务。
介质故障的恢复需要DBA介入但只需重装最近转储的数据库副本和相关的日志文件副本然后执行系统提供的恢复命令。
综合这些恢复策略数据库系统能够有效地处理各类故障确保数据的完整性和系统的可靠性。