设为首页 加入收藏

TOP

Oracle闪回flashback
2015-07-24 10:29:46 来源: 作者: 【 】 浏览:1
Tags: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专题之安装 下一篇Oracle后台进程介绍

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·求navicat for mysql (2025-12-26 13:21:33)
·有哪位大哥推荐一下m (2025-12-26 13:21:30)
·MySQL下载与安装教程 (2025-12-26 13:21:26)
·Linux_百度百科 (2025-12-26 12:51:52)
·Shell 流程控制 | 菜 (2025-12-26 12:51:49)