闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复。这篇文章主要介绍了Oracle 闪回 找回数据的实现方法,需要的朋友可以参考下
闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成)。需要注意的是,闪回技术旨在快速恢复逻辑错误,对于物理损坏或是介质丢失的错误,闪回技术就回天乏术了,还是得借助于Oracle一些高级的备份恢复工具如RAMN去完成(这才是Oracle强大备份恢复机制的精髓所在啊)。
使用闪回技术,实现基于磁盘上闪回恢复区的自动备份与还原。
据的实现方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
一、恢复表对象
1.创建CUSTOM表
 CREATE TABLE "TEAMB0"."CUSTOM" 
   (	"FACT_NO" CHAR(4) NOT NULL ENABLE, 
	"CUSTOM_NO" VARCHAR2(15) NOT NULL ENABLE, 
	"HKCUSTOM_NO" CHAR(6), 
	"AREA_CODE" VARCHAR2(5), 
	"CUSTOM_NAME" VARCHAR2(32) NOT NULL ENABLE, 
	"TRAN_COUNTRY" VARCHAR2(30), 
	"DIST_COUNTRY" VARCHAR2(30), 
	"SIZEMARK_DESC" VARCHAR2(10), 
	"CHINA_RM" CHAR(1), 
	"SHIP_TO_ADDR" VARCHAR2(270), 
	"MARK_NO" CHAR(3), 
	"BRAND_NO" CHAR(2), 
	"SPEC_PACKAGE" CHAR(1), 
	"SIZEMARK1_DESC" VARCHAR2(20), 
	"AGENT_NAME" VARCHAR2(22), 
	"APACK_MK" CHAR(1), 
	"CUNT_CODE" CHAR(3), 
	"PRINT_MK" CHAR(1) NOT NULL ENABLE, 
	"CUSTOM_CODE" CHAR(12), 
	"MODIFY_USER" VARCHAR2(60), 
	"MODIFY_DT" CHAR(14), 
	"CONSIGNEE" VARCHAR2(400), 
	"NOTIFY" VARCHAR2(200), 
	"DIV_CODE" CHAR(4), 
	"ISGROUP_RMK" CHAR(1) NOT NULL ENABLE, 
	"GROUP_FACT_NO" CHAR(4), 
	"SHIPPER" VARCHAR2(300)
   );
 2.添加记录
Insert into CUSTOM (FACT_NO,CUSTOM_NO,HKCUSTOM_NO,AREA_CODE,CUSTOM_NAME,TRAN_COUNTRY,DIST_COUNTRY,SIZEMARK_DESC,CHINA_RM,SHIP_TO_ADDR,MARK_NO,BRAND_NO,SPEC_PACKAGE,SIZEMARK1_DESC,AGENT_NAME,APACK_MK,CUNT_CODE,PRINT_MK,CUSTOM_CODE,MODIFY_USER,MODIFY_DT,CONSIGNEE,NOTIFY,DIV_CODE,ISGROUP_RMK,GROUP_FACT_NO,SHIPPER) values (‘216M‘,‘516286‘,‘01 ‘,null,‘Decimas ‘,null,null,‘UK‘,‘N‘,null,‘001‘,‘01‘,‘N‘,null,null,‘N‘,null,‘Y‘,null,null,null,null,null,null,‘N‘,null,null);
Insert into CUSTOM (FACT_NO,CUSTOM_NO,HKCUSTOM_NO,AREA_CODE,CUSTOM_NAME,TRAN_COUNTRY,DIST_COUNTRY,SIZEMARK_DESC,CHINA_RM,SHIP_TO_ADDR,MARK_NO,BRAND_NO,SPEC_PACKAGE,SIZEMARK1_DESC,AGENT_NAME,APACK_MK,CUNT_CODE,PRINT_MK,CUSTOM_CODE,MODIFY_USER,MODIFY_DT,CONSIGNEE,NOTIFY,DIV_CODE,ISGROUP_RMK,GROUP_FACT_NO,SHIPPER) values (‘216M‘,‘516287‘,‘01    ‘,null,‘Fime Sport Shoe     ‘,null,null,‘UK‘,‘N‘,null,‘001‘,‘01‘,‘N‘,null,null,‘N‘,null,‘Y‘,null,null,null,null,null,null,‘N‘,null,null);
Insert into CUSTOM (FACT_NO,CUSTOM_NO,HKCUSTOM_NO,AREA_CODE,CUSTOM_NAME,TRAN_COUNTRY,DIST_COUNTRY,SIZEMARK_DESC,CHINA_RM,SHIP_TO_ADDR,MARK_NO,BRAND_NO,SPEC_PACKAGE,SIZEMARK1_DESC,AGENT_NAME,APACK_MK,CUNT_CODE,PRINT_MK,CUSTOM_CODE,MODIFY_USER,MODIFY_DT,CONSIGNEE,NOTIFY,DIV_CODE,ISGROUP_RMK,GROUP_FACT_NO,SHIPPER) values (‘216M‘,‘PYV172‘,‘01    ‘,‘633‘,‘Viet Nam            ‘,null,‘VIETNAM‘,‘UK‘,‘N‘,null,‘001‘,‘01‘,‘N‘,null,null,‘N‘,null,‘Y‘,null,null,null,null,null,null,‘N‘,null,null);
Insert into CUSTOM (FACT_NO,CUSTOM_NO,HKCUSTOM_NO,AREA_CODE,CUSTOM_NAME,TRAN_COUNTRY,DIST_COUNTRY,SIZEMARK_DESC,CHINA_RM,SHIP_TO_ADDR,MARK_NO,BRAND_NO,SPEC_PACKAGE,SIZEMARK1_DESC,AGENT_NAME,APACK_MK,CUNT_CODE,PRINT_MK,CUSTOM_CODE,MODIFY_USER,MODIFY_DT,CONSIGNEE,NOTIFY,DIV_CODE,ISGROUP_RMK,GROUP_FACT_NO,SHIPPER) values (‘216M‘,‘930038‘,null,‘411‘,‘SAV SA              ‘,null,‘ARGENTINA‘,‘US‘,‘N‘,null,‘79 ‘,‘11‘,‘N‘,null,null,‘N‘,null,‘Y‘,null,null,null,null,null,null,‘N‘,null,null);
insert into CUSTOM (FACT_NO,CUSTOM_NO,HKCUSTOM_NO,AREA_CODE,CUSTOM_NAME,TRAN_COUNTRY,DIST_COUNTRY,SIZEMARK_DESC,CHINA_RM,SHIP_TO_ADDR,MARK_NO,BRAND_NO,SPEC_PACKAGE,SIZEMARK1_DESC,AGENT_NAME,APACK_MK,CUNT_CODE,PRINT_MK,CUSTOM_CODE,MODIFY_USER,MODIFY_DT,CONSIGNEE,NOTIFY,DIV_CODE,ISGROUP_RMK,GROUP_FACT_NO,SHIPPER) values (‘216M‘,‘608021‘,‘01    ‘,‘111‘,‘ADI AMERICA         ‘,‘USA‘,‘USA‘,‘US‘,‘N‘,null,‘001‘,‘01‘,‘N‘,null,null,‘Y‘,null,‘Y‘,null,null,null,null,null,null,‘N‘,null,null);
 3.删除表
drop table CUSTOM;
4.数据库回收站多一条新的记录
select * from user_recyclebin where ORIGINAL_NAME = ‘CUSTOM‘;//系统表
select * from "BIN$d9zV2sEZHibgUBGsAwsfmg==$0";//CUSTOM在回收站的别名
flashback table CUSTOM to before drop;// 恢复表 
二、找回表数据
1.按某条件删除表记录,例如
  delete from CUSTOM where CUSTOM_NO = ‘608021‘;
  commit;
2.如果是删了或修改里面的数据,可以先建立一个快表将删除修改之前状态的数据找回到这个表中
create table CUSTOM_TABLE as
select * from CUSTOM as of timestamp TO_TIMESTAMP( ‘20181010175020‘ , ‘yyyymmddhh24miss‘)
where CUSTOM_NO = ‘608021‘;
3.CUSTOM_TABLE数据恢復資料
insert into CUSTOM
select * from  CUSTOM_TABLE
commit;
原文:https://www.cnblogs.com/scwbky/p/9767560.html