Oracle 闪回 flashback

ゝ一世哀愁。 2022-08-07 03:41 377阅读 0赞

闪回:修复逻辑错误,从当前的点往回退
1.闪回有专门的闪回日志,存放在FIA中,但是只有闪回数据库会用到

2.如果做全数据库的闪回,相当于一次不完全恢复

基于时间点的闪回
SQL> flashback table t_wh_prodlib to timestamp to_timestamp(‘2015-03-03 12:10:07’, ‘yyyy-mm-dd hh24:mi:ss’);
将数据库闪回到20150303 12:10:07

如果基于时间点的闪回报错
ERROR at line 1:
ORA-08180: no snapshot found based on specified time

则使用基于时间段的闪回
SQL> flashback table t_wh_prodlib to timestamp systimestamp - interval ‘27’ minute;
将数据库闪回到27分钟之前

上面两个无论哪个报错ERROR at line 1:

ORA-08189: cannot flashback the table because row movement is not enabled

则输入以下指令
SQL> alter table t_wh_prodlib enable row movement;

然后在执行上面的闪回语句

====================

其他:
1、闪回删除 delete
在10g之后,除了超级用户删除的时候先放到回收站recyle-bin,同时还将名字改成bin$开头
删除一张表格之后再去查询表格,就会看到以BIN$开头的文件

show recyclebin;查看回收站里面的内容
flashback table dodo before drop;闪回那张表

<1如果回收站里面有两个相同的时候,会优先闪回后删除的

<2如果闪回之前已经有一个同名的,则需要进行重命名

<3如果删除的时候不想进入回收站,则可以加入参数truge

purge user_recyclebin; 删除回收站里用户

2、闪回查询 query
闪回查询是从undo里面扣出来的

select * from t as of timestap to_char(‘2015-03-03 12:10:07’,’yyyy-mm-dd hh24:mi:ss’);

3、闪回表 table
是从undo里面扣出来的,这个SYS用户无法使用
需要开启行移动,闪回表到之间某个时间点需要

alter table t enable row movement;
flashback table t to timestap to_char(‘2015-03-03 12:10:07’,’yyyy-mm-dd hh24:mi:ss’);

4、闪回数据库 DB
注意:需要开启这个功能,然后必须是在归档模式,还需要用到闪回日志
如果是第一次设置区域闪回设置,必须先设置大小,再设置时间,必须是在mount状态下去做

show parameter recovery 查看大小位置
show parameter target 查看闪回时间

select FLASHBACK_ON FROM v$database
这个时候在flash下面的SID下面有个 建议FRA里面就只留下这个
!!闪回的时候需要在mount下去操作
flashback database to timestap to_char(‘2015-03-03 12:10:07’,’yyyy-mm-dd hh24:mi:ss’);

发表评论

表情:
评论列表 (有 0 条评论,377人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Oracle flashback

    闪回:修复逻辑错误,从当前的点往回退 1.闪回有专门的闪回日志,存放在FIA中,但是只有闪回数据库会用到 2.如果做全数据库的闪回,相当于一次不完全恢复