? 項目案例:客戶刪除delete了重要數據,無備份,客戶聯系我,要求恢復相應數據。本次通過實驗方式重現客戶現場。備份高于一切,首先備份,再操作
創建表格:
-
create table king(age number,name varchar2(20));
-
insert into king values(20,'rick');
-
insert into king values(30,'wuzy');
-
commit;
?
-
select dbms_rowid.rowid_relative_fno(rowid) rel_fno,dbms_rowid.rowid_block_number(rowid) blockno from king
?4???? 303
-
delete from king where age=30;
?
-
commit
?
結果:
?
bbed恢復(建議關閉數據庫):
set?file 4,303
find /c wuzy
?File: /u01/app/oracle/oradata/orcl/users01.dbf (4)
?Block: 303????????????? Offsets: 8173 to 8191?????????? Dba:0x0100012f
------------------------------------------------------------------------
?77757a79 2c000202 c1150472 69636b01 064a2f?
p kdbr
BBED> p kdbr
sb2 kdbr[0]???????????????????????????????? @118????? 8077
sb2 kdbr[1]???????????????????????????????? @120????? 8066
BBED> p *kdbr[0]
rowdata[11]
-----------
ub1 rowdata[11]???????????????????????????? @8177???? 0x2c
BBED> p *kdbr[1]
rowdata[0]
----------
ub1 rowdata[0]????????????????????????????? @8166???? 0x2c
BBED> set dba 4,303 offset 8173
?DBA??????????? ?0x0100012f (16777519 4,303)
?OFFSET???????? ?8173
BBED> d /v dba 4,303 offset 8173
?File: /u01/app/oracle/oradata/orcl/users01.dbf (4)
?Block: 303???? Offsets: 8173 to 8191? Dba:0x0100012f
-------------------------------------------------------
?77757a79 2c000202 c1150472 69636b01 l wuzy,....rick.
?06c42f????????????????????????????? l .
?<16 bytes per line>
BBED> d /v offset 8166
?File: /u01/app/oracle/oradata/orcl/users01.dbf (4)
?Block: 303???? Offsets: 8166 to 8191? Dba:0x0100012f
-------------------------------------------------------
?3c020202 c11f0477 757a792c 000202c1 l <....wuzy,...
?15047269 636b0106 c42f????????????? l ..rick..
?<16 bytes per line>
BBED> modify /x 2c
?File: /u01/app/oracle/oradata/orcl/users01.dbf (4)
?Block: 303????????????? Offsets: 8166 to 8191?????????? Dba:0x0100012f
------------------------------------------------------------------------
?2c020202 c11f0477 757a792c 000202c1 15047269 636b0106 c42f
?<32 bytes per line>
BBED> sum apply
Check value for File 4, Block 303:
current = 0x6436, required = 0x6436
結果:
刪減數據已經恢復。
?注意:3C是已經刪除的數據? 2C是沒有刪除數據
本文轉自東方之子736651CTO博客,原文鏈接:http://blog.51cto.com/ecloud/1788966?,如需轉載請自行聯系原作者