首页 > 数据库 > 数据库开发技术 > 数据库三种故障及其恢复手段
解决办法:可预期的用户会在写应用程序的时候用 if 语句避免,不可预期的系统自动根据日志文件对事务进行撤销和重做。
基本解决方法:
(1)正向扫描日志文件找到
已提交的事务和
未提交的事务
(2)已提交的加入redo队列,未提交的加入undo队列。
(3)反向扫描日志文件对undo队列里所有事务执行逆操作,正向扫描日志文件对redo队列里的所有事务重做。
检查点法:
(注:建立检查点时会强制把此时缓冲区的数据写入磁盘)
(1)在日志文件里找发生故障前的最后的一个检查点。
(2)把这个检查点记录里的所有正在运行的事务加入undo队列。
(3)从检查点开始正向扫描日志文件遇到一个事务的开始就把这个事务加入undo队列,遇到一个事务的结束就把这个事务从undo队列加到redo队列。
(4)对undo队列里事务执行撤销,对redo队列里的事务实行重做。
解决办法:重装副本,再根据日志文件把已完成的事务redo。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69966433/viewspace-2745545/ ,如需转载,请注明出处,否则将追究法律责任。