闪回恢复
若较短时间内发现由于操作不当等原因误删了表数据,可以使用闪回功能及时将数据恢复至指定时间点(无需还原备份),更多详情可查阅
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小时)或更长。
闪回查询不适用于分布式部署。
示例(单机、共享集群部署)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3077893/
,如需转载,请注明出处,否则将追究法律责任。