Oracle 闪回 找回数据的实现方法
Posted scwdqq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 闪回 找回数据的实现方法相关的知识,希望对你有一定的参考价值。
Oracle 闪回 找回数据的实现方法
闪回技术是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;
以上是关于Oracle 闪回 找回数据的实现方法的主要内容,如果未能解决你的问题,请参考以下文章