oracle中恢复数据 oracle用的flashback和“回收站”可恢复数据,mysql可用binlog来恢复数据(binlog日志是一个二进制文件,可以用binlog2sql工具来打开。binlog日志除了用来恢复数据还可以用来做主从复制等操作)。
oracle 10g 11g默认没有开启回闪功能且我们项目也没有开启回闪功能,所以这里暂时讲以回收站回复数据的方式恢复数据。
假如需要开启回闪功能,有时候直接开启回闪(alter database flashback on;)需要报错,此时可能需要先打开开启数据库归档(alter database archive;详细可参考https://blog.youkuaiyun.com/congjiumi6955/article/details/100447489)。
恢复误删除的表
先创建一个表,插入两条数据,然后删除的操作语句。
create table t_oms_temp_lisx3 ( CMSID VARCHAR2(32), CONTENT_ID VARCHAR2(32), CONTENT_NAME VARCHAR2(32) ); insert into t_oms_temp_lisx3 (cmsid,content_name) values(2,'lisx2'); drop table t_oms_temp_lisx3;
在回收站中查询到删除的表的object_name
select object_name,original_name,type,droptime from user_recyclebin;
根据查询出来的OBJECT_NAME使用回闪功能将表及表里的数据恢复,可以并可以重新将表命名。
flashback table "BIN$vP3RT2fIt+/gUwEA