数据库的恢复算法
目录:数据库
1.定义spa
2.存储器结构日志
3.恢复的基本原则和实现方法队列
4.故障类型和恢复方法事件
5.检查点技术事务
1.定义内存
系统能把数据库从被破坏、不正确的状态恢复到最近一个正确的状态,DBMS的这种能力称为数据库的可恢复性(Recovery)。input
2.存储器结构it
1.存储器的类型
①易失性存储器:指内存。cashe存储器。系统发生故障时,存储的信息当即丢失,可是访问速度很是快。
②非易失性存储器:指磁盘和磁带。系统发生故障时,存储的信息不会丢失。如发生存储器自己的故障,会致使信息的丢失。它的访问速度要比易失性存储器慢几个数量级。
③稳定存储器:理论上的概念。存储器在稳定存储器中的信息是毫不会丢失的。这能够经过对非意识形态存储器进行技术处理,达到稳定存储器的目标。
2.稳定存储器如何实现?
能够经过数据备份和数据银行方法,实现稳定存储器的目标。
3.数据访问
数据在磁盘上以称为“块”的定长存储单位形式组织。块是内、外存数据交换的基本单位。磁盘中的块称为“物理块”,内存中临时存放物理块内容的块称为“缓冲块”,全部缓冲块组成了“粗盘缓冲区”。
输入(input)操做:数据从物理块到缓冲块。
输出(output)操做:数据从缓冲块到物理块。
还有read和write操做,须要注意这两个操做通常只须要数据块从磁盘到内存的传递。
那何时才会实现从内存到磁盘的传送呢?
①缓冲区管理系统须要内存空间,及内存空间不足。
②DBS但愿改变磁盘中的值。
以上两种状况下,才会执行output操做。
4.恢复与原子性的联系
系统发生故障,内存内容丢失时,为了达到事务的原子性这个目标,必须首先把描述修改的信息输出到稳定存储器中,但此时不修改磁盘中的数据。这个过程知道事务的COMMIT操做为止。“日志”技术可实现这个过程。
3.恢复的基本原则和实现方法
数据库的恢复,意味着要把数据库恢复到最近一次故障前的一致性状态。
要使数据库具备可恢复性,基本原则很简单,就是“冗余”,即数据库重复存储。
数据库恢复的具体实现方法以下:
1.平时作好两件事:转储和创建日志
2.一旦发生数据库故障,分两种状况处理:
①若是数据库遇到灾难性故障,例如,磁盘脱落,磁盘损坏等,这时数据库已不能用了,就必须装入最近一次的数据库备份到新的硬盘,而后利用日志库“重作”(REDO)已提交的事务,把数据库恢复到故障前的状态。
②若是数据库未遭到物理性破坏,但破坏了数据库的一致性(某些数据不正确),此时没必要去复制存档的数据库,只要利用日志库“撤销”(UNDO)全部不可靠的修改,再利用日志库的“重作”(REDO)已提交的、但对数据库的更新可能还留在内存缓冲区的事务,就能够把数据库恢复到正确的状态。
4.故障类型和恢复方法
在DBS引入事务的概念之后,数据库的故障具体体现为事务执行的成功与失败,常见故障可分为三类:
1.事务故障
①能够预期的事务故障:如存款余额透支,执行UNDO。
②非预期的事务故障:如内存溢出,执行UNDO。
2.系统故障
引发系统中止运转随之要求从新启动的事件称为系统故障。例如,硬件故障,软件错误,掉电等。
形成主存丢失,但不破坏数据库。
从新启动后,具体处理分两种状况考虑:
①对未完成事务做UNDO处理。
②对已提交事务但更新还留在缓冲区的事务进行REDO处理。
3.介质故障
在发生介质故障和遭受病毒破坏时,磁盘上的物理数据库遭到毁灭性破坏。恢复过程以下:
①重装最近转储的后备副本到新的硬盘。
②在日志中找出最近转储之后全部已提交的事务。
③对这些已提交的事务进行REDO处理。
事务故障和系统故障的恢复由系统自动进行,而介质故障的恢复须要DBA(Administrator)配合执行。在实际中,系统故障一般称为软故障,介质故障一般称为硬故障。
5.检查点技术
1.检查点方法
在DBS运行时,DBMS定时设置检查点。在检查点时刻才真正作到把对DB的修改写到磁盘,并在日志文件写入一条检查点记录(以便恢复时使用)。当DB须要恢复时,只有那些在检查点后面的事务须要恢复。
①事务T1没必要恢复。
②事务T2和T4必须作(REDO),由于他们commit的信息存在内存缓冲区中,还未写到磁盘。
③事务T3和T5必须撤销(UNDO),由于它们还未作完,必须撤销事务已对DB作的修改。
2.检查点方法的恢复算法
采用检查点方法的基本恢复方法分红两步。
1.根据日志文件创建事务重作队列和事务撤销队列。
2.对重作队列中的事务进行REDO处理,对撤销队列中的事务进行UNDOchu8loi。