Oracle db 闪回功能

 
1、 以用户 sys as DBA 的角色登录到数据库中

2、检查是否启用了Flashback功能:
select flashback_on from v$database;
如果结果为:Yes,可继续恢复

3、通过如下语句查询可回滚的时间点(在下面用到的时间都是此SQL查询出的时间点):
select sequence#,
first_change#,
next_change#,
to_char(first_time, 'YYYY-MM-DD HH24:MI:SS')
FROM v$log_history
order by first_time desc
太久远的时间点,可能已经被冲了,无法在进行恢复。

4、Flashback delete,闪回表的某个时间点:
select * from fact_prod_delivery AS OF TIMESTAMP TO_TIMESTAMP('2011-11-25 02:05:27', 'YYYY-MM-DD HH24:MI:SS')

5、Flashback drop,闪回数据表被drop的操作:
a)、查找到删除的表:
select original_name,object_name from recyclebin;
b)、还原删除的表:
flashback table "BIN$vYuv+g9fTi2exYP9X2048Q==$0" to before drop;
或者:
flashback table a to before drop rename to B;
上面两种方法都会将表从recyclebin中清除。也可如下操作:
CREATE TABLE fact_prod_delivery_temp AS
select * from "BIN$sovAz7py4eLgQ6wTAR/h4g==$0";

6、Flash Query,恢复程序包等:
a)、 通过如下 SQL, 查询出程序包对应的 ID ,分别是 PACKAGE PACKAGE BODY 对应的 ID:
select AO.object_id,AO.object_type from all_objects ao
where 1=1
and ao.owner='TBDW'
and ao.object_name=upper('dw_load_delivery_etl')
b)、查询某个时间点是的代码:
SELECT source
FROM source$ AS OF TIMESTAMP TO_TIMESTAMP('2011-11-24 00:12:58', 'YYYY-MM-DD HH24:MI:SS')
where obj# = 4840653;
可以pl/sql的report query查询,便于代码拷贝。




















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值