oracle数据库数据恢复:表数据恢复
2015-1-20 11:34:33 点击:
郑州泰源数据恢复,内存卡数据恢复,三星手机卡数据恢复。
oracle数据库操作不小心把数据表内的数据删除了,这可是一件非常不幸的消息,于是杯具了,残酷的事实摆在面前,如何恢复数据变得十分严峻,下面是模拟oracle数据库删除表内数据进行恢复。
1、建表-
-- Create table
-
create table DARCY
-
(
-
ID NUMBER,
-
INFO NVARCHAR2(32)
-
)
-
tablespace DATA_SGPM
-
pctfree 10
-
initrans 1
-
maxtrans 255
-
storage
-
(
-
initial 64K
-
minextents 1
- maxextents unlimited
-
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 ccc
-
-
SQL> delete from darcy where id = 1;
-
-
1 row deleted
-
-
SQL> commit;
-
-
Commit complete
-
-
SQL> 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');即可恢复数据。
- 上一篇:CTB-Locker敲诈者病毒爆发,郑州泰源数据恢复提请大家 2015/1/21
- 下一篇:今年 16GB存储卡面临逐步淘汰! 2015/1/19