闪回技术详解
概述:
闪回技术是 强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时
候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完
成)。需要注意的是,闪回技术旨在快速恢复逻辑错误,对于物理损坏或是介质丢失的错
误,闪回技术就回天乏术了 , 还是得借助于 一些高级的备份恢复工具如 去
完成(这才是 强大备份恢复机制的精髓所在啊)
撤销段(UNDO SEGMENT)
在讲闪回技术前,需要先了解 中一个逻辑结构撤销段。因为大部分闪回技术
都需要依赖撤销段中的撤销数据。撤销数据是反转 语句结果所需的信息,只要某个
事务修改了数据,那么更新前的原有数据就会被写入一个撤销段。(事务回滚也会用到撤
销段中的数据)。事务启动时,会为其分配一个撤销段,事务和撤销段存在多对
一的关系,即一个事务只能对应一个撤销段,多个事务可以共享一个撤销段(不过在数据
库正常运行时一般不会发生这种情况)。
闪回技术
提供了四种可供使用的闪回技术(闪回查询,闪回删除,闪回归档,闪回数据
库),每种都有不同的底层体系结构支撑,但其实这四种不同的闪回技术部分功能是有重
叠的,使用时也需要根据实际场景合理选择最合适的闪回功能。
闪回查询(FlashbackQuery)
基本闪回查询
功能描述:可以查询过去某个时间段的数据库状态。
工作原理:会提取所需要的撤销数据(前提是撤销是可用的,即撤销数
据还没被覆盖)进行回滚,但这种回滚是临时的,仅针对当前 可见。
!"#!$"!
""%!!%!!&''''(( )%%*+
,闪回表
功能描述:可将某个表回退到过去某个时间点
工作原理:同样, 会先去查询撤销段,提取过去某个时间点之后的所有变
更,构造反转这些变更的 语句进行回退&闪回操作是一个单独的事务,所以若由于撤
销数据过期之类的原因导致无法闪回,整个操作会回滚,不会存在不一致的状态。
步骤:
"启用表闪回首先要在表上支持行移动(在数据字典中设置标识来标识该操作可
能会改变行 -,即同一条数据闪回成功后主键都一样,但行 - 其实已经发生变化了)