1.查看表历史时刻数据
###select * from GL_CODE_COMBINATIONS AS OF TIMESTAMP to_timestamp('20210112 14:58:48','yyyymmdd hh24:mi:ss');
2、利用flashback table恢复表到过去某一时刻
###alter table GL_CODE_COMBINATIONS enable row movement;
###flashback table GL_CODE_COMBINATIONS to timestamp ('20210112 14:58:48','yyyymmdd hh24:mi:ss');
###alter table GL_CODE_COMBINATIONS disable row movement;
3、查看过去某一段时间内对表的操作,以确认需要恢复到的时间点
###select SQL_TEXT,LAST_ACTIVE_TIME from v$sqlarea where LAST_ACTIVE_TIME >to_date('20210112 14:58:48','yyyymmdd hh24:mi:ss') and SQL_TEXT like '%GL_CODE_COMBINATIONS%';
4、确认是否开启闪回
###select log_mode,flashback_on from v$database;
Oracle闪回技术分为以下7类:
一、闪回查询(Flashback Query)
二、闪回版本查询(Flashback Version Query)
三、闪回事务查询(Flashback Transaction Query)
四、闪回事务(Flashback Transaction)
五、闪回表(Flashback Table)
六、闪回删除(Flashback Drop)
七、闪回数据库(Flashback Database)
Oracle闪回技术主要由3类底层技术支撑,分别是基于undo的闪回,基于回收站的闪回和基于闪回日志的闪回。具体分类如下:
基于undo的闪回:利用undo表空间中存储的历史数据(还原数据)进行操作,主要用于恢复逻辑错误或查询历史数据。
闪回查询(Flashback Query):查询过去某个时间点的数据状态。
闪回版本查询(Flashback Version Query):查询行级数据随时间的变化版本。
闪回事务查询(Flashback Transaction Query):查看事务级变化并支持撤销已提交的事务。
闪回表(Flashback Table):将表恢复到特定时间点或SCN。
闪回归档(Flashback Data Archive):通过归档的undo数据长期保留历史信息以供查询。(注:部分来源提到它也依赖Archive Log,但核心机制基于undo数据管理。)
基于回收站的闪回:依赖回收站(Recycle Bin)机制恢复被删除对象。
闪回删除(Flashback Drop):恢复意外删除的表及其索引等对象。
基于闪回日志的闪回:使用闪回恢复区(Flash Recovery Area)中的专用闪回日志进行大规模恢复。
闪回数据库(Flashback Database):将整个数据库快速恢复到过去的时间点。
BCT(Block Change Tracking)是Oracle从10g开始有的特性。BCT的原理是记录数据文件里每个数据块的变化,并把这些变化信息保存在BCT的跟踪文件中。启动BCT后,RMAN或者XTTS进行增量备份时使用BCT跟踪文件里的信息,只读取改化的数据块,而不用再对全部数据文件进行扫描,从而提高了RMAN或者XTTS增量备份的性能。