oracle数据库误改数据之后的恢复办法.

时间:2021-07-17 07:21:46

有时候一不小心就将ORACLE表中某些数据删除 或则误该,如想恢复可通过oracle时间点方式进行
查询 数据库记录的 闪回 scn 时间点 , 来确定 到 具体的 那个时间点的数据是存在且正确的。
---1、执行下列语句可查询出相关时间点
--- select * from sys.smon_scn_time order by time_dp desc;

---2、执行下列语句查询具体的某张表的在某个SCN 时间点下的数据
--- select * from 表名 as of scn 需要恢复的时间点的scn编号 ;
--- for example : select * from reag_info_mx as of scn 10133879710691;

---3、在确定具体的时间点之后进行恢复;
---3.1 如果是误删 操作语句
insert into 表名select * from 表名as of scn 需要恢复的时间点
---3.2 如果是误该
新建一张相同的表 ,然后执行
insert into 表名select * from 表名as of scn 需要恢复的时间点
然后把新表的名字 重命名会原来的表名


恢复oracle中误删除drop掉的表

查看回收站中表

select object_name,original_name,partition_name,type,ts_name,createtime,droptime from recyclebin;

恢复表

SQL>flashback table T_CHANNEL to before drop;或
SQL>flashback table "BIN$Kohkckm+p/7gUAB/AQBE3Q==$0" to before drop;

注:必须9i或10g以上版本支持,flashback无法恢复全文索引