加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flashback Table 注意事项

发布时间:2020-12-15 18:38:04 所属栏目:百科 来源:网络整理
导读:一、基于undo的表恢复 1、被恢复的表必须启用row movement ?????? 用于控制是否允许修改列值所造成的记录移动 ??????? enable/disable SQL selectrow_movement from dba_tables where table_name='FLASH_TBL'; ? ROW_MOVE -------- ENABLED ? 2、注意DDL的影

一、基于undo的表恢复

1、被恢复的表必须启用row movement

?????? 用于控制是否允许修改列值所造成的记录移动

??????? enable/disable

SQL> selectrow_movement from dba_tables where table_name='FLASH_TBL';

?

ROW_MOVE

--------

ENABLED

?

2、注意DDL的影响。

修改并提交过数据后,对表做了DDL操作,如:

Drop/modify 列。

move表

drop分区

Truncatetable/partition

这些操作会令undo表空间的撤销数据失效,对于执行过这些操作的表应用flashback query会触发ORA-01466错误,另外一些表结构修改语句,虽然可能不会影响到undo表空间的撤销记录,但有可能出现因表结构修改,导致UNDO中重做记录无法应用的情况。

如:对操作的表增加了新的约束,而flashback query查询出来的undo 记录已经不符合新建的约束条件,这个时候直接恢复显然不可能成功,最好先disable约束或逻辑修改数据,然后执行恢复。

?

3、flashback table实际上也是dml操作(从该操作在被操作的表上加dml锁可以确定),因此需要注意triggers对其的影响。默认执行时会disable与其表相关的triggers,如果希望期间可用,需要flashback table时附加enable triggers

?

4、索引会自动维护,但是统计信息不回恢复到指定的时间点。

?

5、不支持:聚簇表、物化视图、高级队列表,系统表,远程表,对象表,嵌套表,表分区或子分区。

?

二、基于recycle bin的表恢复

1、flashback drop 不能恢复参照完整性。主外键约束等需要手工处理。

?

2、操作的表必须是存在本地管理的表空间中。不能恢复数据字典管理的表空间中删除的表。

?

3、索引、约束等关联对象名称不回自动恢复成删除前的名称,而是系统自动生成的名称。需要手工改名。位图索引不能被恢复,因为删除表时位图索引不会放入recycle bin中。

?

4、删除表时,依赖它的物化视图会同时删除,但是物化视图不放入recycle bin中,因此执行

Flashback table to before drop时,也不能恢复依赖其的物化视图,需要dba手工创建。

?

5、数据文件空间不足时,oracle会首先清理被删除表的索引,所以flashback table to

Before drop后发现恢复出来的数据缺少索引可能是正常的,说明显然错过了最佳的回复时机。

?

6、flashback drop支持多个表,用逗号隔开,但是记住单个flashback table 是在同一个事务中,因此这些表恢复时要么都成功,要么都失败。

?

7、flashback drop只能恢复drop删除的表,如果通过truncate命令清空表中的数据,不过是flashback table还是 flashback query都无能为力。唯一恢复truncate的flashback特性是flashbackdatabase。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读