YashanDB 表的闪回
闪回恢复
若较短时间内发现由于操作不当等原因误删了表数据,可以使用闪回功能及时将数据恢复至指定时间点(无需还原备份),更多详情可查阅FLASHBACK。
闪回恢复需满足以下条件:
执行闪回恢复操作需使用具备 DBA 权限或 FLASHBACK 相关权限的用户。
在当前时间点至目标闪回时间点期间,表的结构未发生变化。
可闪回恢复的时间点由撤销保持期(UNDO_RETENTION)决定,建议将该参数设置为 86400 秒(24 小时)或更长。
需闪回恢复的表对象为 HEAP 表。
通过时间戳或 SCN 闪回恢复前需手动开启表的 ROW MOVEMENT,且闪回恢复后的数据可能会改变 rowid,请确保应用程序不依赖于 rowid 才能执行闪回恢复。
对于被 drop 的表,需确保历史数据仍然存放在回收站中才能将该表(包括表结构和数据)闪回恢复。drop 前已开启回收站。drop 表时,未指定 purge 语句。当前时间点至目标闪回时间点期间,未对回收站执行 purge。drop 表时,表空间未满。
对于被 truncate 的表,需确保历史数据仍然存放在回收站中才能将该表数据(包括 truncate 表或 truncate 分区)闪回恢复。若当前时间点与 truncate 时间点期间表格已插入新数据,执行闪回恢复后该类新数据将会被放入回收站中。truncate 前已开启回收站。当前时间点至目标闪回时间点期间,未对回收站执行 purge。truncate 表时,表空间未满。
delete 操作闪回
示例(HEAP 表)
drop 操作闪回
示例(HEAP 表)
truncate 操作闪回
示例(HEAP 表)
闪回查询
表数据被 UPDATE 或 DELETE 更改后,可以通过闪回查询功能追溯到近期的历史数据,更多详情可查阅 SELECT 的flashback_query_clause。
可闪回查询的时间点由撤销保持期(UNDO_RETENTION)决定,建议将该参数设置为 86400 秒(24 小时)或更长。
闪回查询不适用于分布式部署。
示例(单机、共享集群部署)
版权声明: 本文为 InfoQ 作者【YashanDB】的原创文章。
原文链接:【http://xie.infoq.cn/article/e066ae7e49935159b2ed868a2】。文章转载请联系作者。
评论