码迷,mamicode.com
首页 > 数据库 > 详细

Oracle 闪回 flashback

时间:2015-03-03 15:17:17      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:oracle   闪回   flashback   

闪回:修复逻辑错误,从当前的点往回退
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‘);


Oracle 闪回 flashback

标签:oracle   闪回   flashback   

原文地址:http://blog.csdn.net/doiido/article/details/44037077

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!