Oracle 进行表数据恢复(转)
来源:互联网 发布:android 网络请求原理 编辑:程序博客网 时间:2024/05/10 04:49
本文转载自:
http://www.cnblogs.com/Automation_software/archive/2011/03/11/1981370.html
1、建表-- Create tablecreate table DARCY(ID NUMBER,INFO NVARCHAR2(32))tablespace DATA_SGPMpctfree 10initrans 1maxtrans 255storage( initial 64K minextents 1 maxextents unlimited);
2、插入数据
insert into "SGPM"."DARCY"("ID","INFO") values ('1','aaa');insert into "SGPM"."DARCY"("ID","INFO") values ('2','bbb');insert into "SGPM"."DARCY"("ID","INFO") values ('3','ccc');
3、删除数据
SQL> select * from darcy; ID INFO---------- -------------------------------------------------------------------------------- 1 aaa 2 bbb 3 cccSQL> delete from darcy where id = 1;1 row deletedSQL> commit;Commit completeSQL> select * from darcy; ID INFO---------- -------------------------------------------------------------------------------- 2 bbb 3 ccc
4、恢复数据
方法1:
查询最新的系统变更number
SQL> select dbms_flashback.get_system_change_number from dual;GET_SYSTEM_CHANGE_NUMBER ------------------------ 18144344
查看此次变更后的表记录
SQL> select * from darcy as of scn 18144344; ID INFO---------- -------------------------------------------------------------------------------- 2 bbb 3 ccc
说明这是删除数据后的表记录,我们只要找到某个scn,即删除表记录前的scn,
恢复到这个scn时的记录。
SQL> SELECT * FROM DARCY as of scn 18144252; ID INFO---------- -------------------------------------------------------------------------------- 1 aaa 2 bbb 3 ccc
然后直接执行insert语句
方法2:
SQL> select * from flashback_transaction_query where table_name='DARCY';XID START_SCN START_TIMESTAMP COMMIT_SCN COMMIT_TIMESTAMP LOGON_USER UNDO_CHANGE# OPERATION TABLE_NAME TABLE_OWNER ROW_ID UNDO_SQL---------------- ---------- --------------- ---------- ---------------- ------------------------------ ------------ -------------------------------- -------------------------------------------------------------------------------- -------------------------------- ------------------- --------------------------------------------------------------------------------07001500AB280000 18144149 2010-9-9 10:14: 18144281 2010-9-9 10:17:1 SGPM 1 DELETE DARCY SGPM AAAYQwAAcAAAKk2AAA insert into "SGPM"."DARCY"("ID","INFO") values ('1','aaa');080018005F370000 18144244 2010-9-9 10:16: 18144252 2010-9-9 10:16:3 SGPM 1 INSERT DARCY SGPM AAAYQwAAcAAAKk2AAC delete from "SGPM"."DARCY" where ROWID = 'AAAYQwAAcAAAKk2AAC';080018005F370000 18144244 2010-9-9 10:16: 18144252 2010-9-9 10:16:3 SGPM 2 INSERT DARCY SGPM AAAYQwAAcAAAKk2AAB delete from "SGPM"."DARCY" where ROWID = 'AAAYQwAAcAAAKk2AAB';080018005F370000 18144244 2010-9-9 10:16: 18144252 2010-9-9 10:16:3 SGPM 3 INSERT DARCY SGPM AAAYQwAAcAAAKk2AAA delete from "SGPM"."DARCY" where ROWID = 'AAAYQwAAcAAAKk2AAA';
执行UNDO_SQL,即: insert into "SGPM"."DARCY"("ID","INFO") values ('1','aaa');
即可恢复数据。
或者直接运行:
SQL> flashback table DARCY to timestamp to_timestamp('2010-9-9 10:16:3','yyyy-mm-dd hh24:mi:ss');flashback table DARCY to timestamp to_timestamp('2010-9-9 10:16:3','yyyy-mm-dd hh24:mi:ss')ORA-08189: 因为未启用行移动功能, 不能闪回表SQL> alter table DARCY enable row movement;Table alteredSQL> flashback table DARCY to timestamp to_timestamp(2010-9-9 10:17:1,'yyyy-mm-dd hh24:mi:ss');DoneSQL> SELECT * FROM DARCY; ID INFO---------- -------------------------------------------------------------------------------- 1 aaa 2 bbb 3 ccc
5、drop表后的恢复
SQL> drop table darcy;Table droppedSQL> select * from darcy;select * from darcyORA-00942: 表或视图不存在SQL> select * from recyclebin;OBJECT_NAME ORIGINAL_NAME OPERATION TYPE TS_NAME CREATETIME DROPTIME DROPSCN PARTITION_NAME CAN_UNDROP CAN_PURGE RELATED BASE_OBJECT PURGE_OBJECT SPACE------------------------------ -------------------------------- --------- ------------------------- ------------------------------ ------------------- ------------------- ---------- -------------------------------- ---------- --------- ---------- ----------- ------------ ----------BIN$CrbfFp0nRTWzETrAMvbD+A==$0 DARCY DROP TABLE DATA_SGPMSQL> SELECT * FROM USER_RECYCLEBIN;OBJECT_NAME ORIGINAL_NAME OPERATION TYPE TS_NAME CREATETIME DROPTIME DROPSCN PARTITION_NAME CAN_UNDROP CAN_PURGE RELATED BASE_OBJECT PURGE_OBJECT SPACE------------------------------ -------------------------------- --------- ------------------------- ------------------------------ ------------------- ------------------- ---------- -------------------------------- ---------- --------- ---------- ----------- ------------ ----------BIN$CrbfFp0nRTWzETrAMvbD+A==$0 DARCY DROP TABLE DATA_SGPM 2010-09-09:10:15:50 2010-09-09:11:12:04 18154031 YES YES 99376 99376 99376 8SQL> flashback table darcy to before drop;DoneSQL> select * from darcy; ID INFO---------- -------------------------------------------------------------------------------- 1 aaa 2 bbb 3 ccc
0 0
- Oracle 进行表数据恢复(转)
- oracle归档日志进行数据实例恢复
- ORACLE表数据恢复
- oracle表数据恢复
- oracle 表数据恢复
- oracle 恢复表数据
- Oracle表数据恢复
- Oracle 数据恢复(数据)
- oracle表数据恢复1
- oracle表数据恢复2
- 误删Oracle表数据恢复
- 【oracle】oralce 恢复表数据
- Oracle数据恢复(闪回)
- oracle数据恢复(flashback)
- Oracle中利用undo进行数据的恢复操作
- 利用PLSQL Developer对oracle中的数据进行备份恢复
- 利用跨表更新进行数据恢复
- oracle 表数据 误删时 数据恢复
- 【bzoj1433】【zjoi2009】【假期的宿舍】【匈牙利算法】
- 第九周-项目2 - 压缩存储的对称矩阵的运算
- 58同城沈剑:好的架构源于不停地衍变,而非设计
- java.io.IOException: read failed, socket might closed or timeout, read ret: -1
- iPhone - 百科
- Oracle 进行表数据恢复(转)
- ehCache+spring的简单实用
- android 简单推送socket长链接
- 第九周项目2-对称矩阵压缩存储的实现和应用
- Android 仿微信右侧字母滑动联系人
- android.mk 调用第三方so库的两种方法
- 图像转置
- Android控件拖动效果
- 前端工程师培训