版权所有 ©2006,Oracle。保留所有权利。
使用 Oracle 闪回技术
Oracle Database 10g
:数据库备份和恢复
5-2
版权所有 ©2006,Oracle。保留所有权利。
课程目标
学完本课后,应能完成以下工作:
• 使用闪回删除功能恢复删除的表
• 使用闪回查询功能查看截止到任一时间点的数据库内容
• 使用闪回版本查询功能查看行版本随时间的变化
• 使用闪回事务处理查询功能查看行的事务处理历史记录
• 使用闪回表功能将表内容还原到过去的某个特定时间点
• 配置闪回数据库
• 将数据库闪回到某个时间点
Oracle Database 10g
:数据库备份和恢复
5-3
版权所有 ©2006,Oracle。保留所有权利。
使用 Oracle 闪回技术
FALSE
还原数据事务处理查看数据的一些历史状态
Tx
FALSE
还原数据版本比较行版本
FALSE
还原数据查询将当前数据与过去数据进
行比较
还原数据
回收站
闪回日志
使用
表
数据库
对象级别
TRUE
数据库截断表;发生了意外多表
更改事件
TRUE
表
使用了错误的
WHERE
子句
进行了更新
删除
闪回技术
TRUE
删除表
影响数据方案示例
使用 Oracle 闪回技术
当 Oracle 数据库发生逻辑损坏,而又需要简单快捷地恢复数据时,就可以使用闪回技术。
通常很难标识出受错误事务处理影响的对象和行。使用闪回技术,可诊断数据库中产生的
错误并修复损坏的数据。您可以查看导致特定行修改的事务处理,查看某一时间段内给定
行的所有版本集,或者只查看过去特定时间显示的数据。
幻灯片表中显示了闪回技术的典型用法。
闪回数据库使用闪回日志执行闪回。闪回删除使用回收站。其它所有技术都使用还原数据。
并不是所有闪回功能都会修改数据库。有些功能只是一些用来查询数据其它版本的方法。
闪回查询结果可帮助您:
• 确定执行哪种类型的数据库修改闪回操作来更正问题
• 将这些查询结果集用于
INSERT
、
UPDATE
或
DELETE
语句中以便于修复错误数据。
Oracle Database 10g
:数据库备份和恢复
5-4
版权所有 ©2006,Oracle。保留所有权利。
闪回删除和回收站
删除表 发现出错
RECYCLEBIN = ON
DROP TABLE
employees;
FLASHBACK TABLE
employees
TO BEFORE DROP;
闪回删除和回收站
在以前版本的 Oracle 数据库中,如果误删除了某个表,就必须将数据库恢复到以前的某
个时间才能恢复删除的表。此过程通常非常耗时,并且会导致丢失其它事务处理的工作。
Oracle 数据库提供了闪回删除功能,使用这个功能可撤销
DROP TABLE
语句产生的影响,
而不需要使用时间点恢复。
注:使用
RECYCLEBIN
初始化参数可控制是否启用闪回删除功能。如果此参数设置为
OFF
,则删除的表不能放入回收站。如果此参数设置为
ON
,则删除的表会放入回收站且
可进行恢复。默认情况下,
RECYCLEBIN
设置为
ON
。
Oracle Database 10g
:数据库备份和恢复
5-5
版权所有 ©2006,Oracle。保留所有权利。
了解回收站
DROP TABLE employees;
BIN$zbjra9wy==$0 EMPLOYEES_PK
EMPLOYEES
回收站
BIN$zbjrBdpw==$0
USER_OBJECTS
BIN$zbjrBdpw==$0 EMPLOYEES
BIN$zbjra9wy==$0 EMPLOYEES_PK
对象包括:
–
已重命名的
–
未移动的
DBA_FREE_SPACE
了解回收站
如果未启用回收站,当删除某一表时,可立即回收与该表及其相关对象关联的空间(即,
可用于其它对象)。
如果启用了回收站,当删除某一表时,不能立即回收与该表及其相关对象关联的空间,即
使该空间出现在
DBA_FREE_SPACE
中。删除的对象而是临时放入回收站中并且仍属于其
所有者。除非磁盘空间不足,否则决不会自动回收回收站对象使用的空间。这样您就能够
恢复回收站中可能存在的最长时间的对象。
当删除的表移到回收站时,会使用系统生成的名称重命名该表及其关联对象和约束条件。
这非常有必要,因为以后创建具有相同名称的新对象时可避免名称冲突。
回收站本身是一个数据字典表,它用来维护删除对象的原始名称与其系统生成名称之间的
关系。使用
DBA_RECYCLEBIN
视图可查询回收站的内容。