出现介质故障 如何进行数据恢复?
回答
共1条回复-
事务故障的恢复: 事务故障的恢复是由 DBMS DBMs 执行恢复步骤是: 自动完成的,对用户是透明的。 ( 1 )反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作; ( 2 )对该事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库; ( 3 )继续反向扫描日志文件,做同样处理; ( 4 )如此处理下去,直至读到此事务的开始标记,该事务故障的恢复就完成了。 系统故障的恢复: 系统故障可能会造成数据库处于不一致状态:一是未完成事务对数据库的更新可能已写入数据库;二是已提交事务对数据库的更新可能还留在缓冲区,没来得及写入数据库。因此恢复操作就是要撤销( UNDO )故障发生时未完成的事务,重做( REDO )已完成的事务。 系统的恢复步骤是: ( 1 )正向扫描日志文件,找出在故障发生前已经提交的事务队列( REDO 队列)和未完成的事务队列( UNDO 队列)。 ( 2 )对撤销队列中的各个事务进行 UNDO 处理。 进行 UNDO 处理的方法是,反向扫描日志文件,对每个 UNDO 事务的更新操作执行逆操作,即将日志记录中“更新前的值” Before Image )写入数据库。 ( 3 )对重做队列中的各个事务进行 REDO 处理。 进行 REDO 处理的方法是:正向扫描日志文件,对每个 REDO 事务重新执行日志文件登记的操作。即将日志记录中“更新后的值” Afte , Image )写入数据库。 介质故障的恢复: 介质故障是最严重的一种故障。 恢复方法是重装数据库,然后重做已完成的事务。具体过程是: ( 1 ) DBA 装入最新的数据库后备副本(离故障发生时刻最近的转储副本) , 使数据库恢复到转储时的一致性状态; ( 2 ) DBA 装入转储结束时刻的日志文件副本; ( 3 ) DBA 启动系统恢复命令,由 DBMS 完成恢复功能,即重做已完成的事务。

