您好,欢迎访问一九零五行业门户网

Oracle实验:用BBED恢复误删记录的全过程

oracle实验:用bbed恢复误删记录的全过程,以上是完好的行,accounting所在行显示为2c,那么,到sqlplus,将其删除:
1 准备测试环境:
sql> create table c as select * from dept;
table created.
sql> select * from c;
    deptno dname          loc
---------- -------------- -------------
        10 accounting     new york
        20 research       dallas
        30 sales          chicago
        40 operations     boston
sql> select rowid,c.* from c;
rowid                  deptno dname          loc
------------------ ---------- -------------- -------------
aaam5/aaeaaaemeaaa         10 accounting     new york
aaam5/aaeaaaemeaab         20 research       dallas
aaam5/aaeaaaemeaac         30 sales          chicago
aaam5/aaeaaaemeaad         40 operations     boston
sql> select get_rowid('aaam5/aaeaaaemeaaa') row_id from dual;
row_id
--------------------------------------------------------------------------------
object# is      :52863
relative_fno is :4
block number is :18820
row number is   :0
ps:
get_rowid 这个函数是用来获得row_id的详信息,实现如下:
create or replace function get_rowid
(l_rowid in varchar2)
return varchar2
is
ls_my_rowid varchar2(200);
rowid_type number;
object_number number;
relative_fno number;
block_number number;
row_number number;
begin
 dbms_rowid.rowid_info(l_rowid,rowid_type,object_number,relative_fno,block_number,row_number);
 ls_my_rowid := 'object# is      :'||to_char(object_number)||chr(10)||
  'relative_fno is :'||to_char(relative_fno)||chr(10)||
  'block number is :'||to_char(block_number)||chr(10)||
  'row number is   :'||to_char(row_number);
 return ls_my_rowid;
end;
2
登入bbed
[oracle@localhost ~]$ bbed parfile=bbed.par
password:
bbed: release 2.0.0.0.0 - limited production on thu jun 14 13:09:44 2012
copyright (c) 1982, 2005, oracle.  all rights reserved.
************* !!! for oracle internal use only !!! ***************
bbed> set dba 4,18820
        dba             0x01004984 (16796036 4,18820)
bbed> find /c accounting top
 file: /u01/app/oracle/oradata/orcl/datafile/o1_mf_users_7wvsw7hg_.dbf (4)
 block: 18820            offsets: 8169 to 8191           dba:0x01004984
------------------------------------------------------------------------
 4143434f 554e5449 4e47084e 45572059 4f524b02 06483a
bbed> dump /v dba 4,18820 offset 8169 count 23
 file: /u01/app/oracle/oradata/orcl/datafile/o1_mf_users_7wvsw7hg_.dbf (4)
 block: 18820   offsets: 8169 to 8191  dba:0x01004984
-------------------------------------------------------
 4143434f 554e5449 4e47084e 45572059 l accounting.new y
 4f524b02 06483a                     l ork..h:
bbed> p *kdbr[0]  --*kdbr[n],其中n是row number
rowdata[66]
-----------
ub1 rowdata[66]                             @8162     0x2c
bbed> dump /v dba 4,18820 offset 8162 count 23
 file: /u01/app/oracle/oradata/orcl/datafile/o1_mf_users_7wvsw7hg_.dbf (4)
 block: 18820   offsets: 8162 to 8184  dba:0x01004984
-------------------------------------------------------
 2c000302 c10b0a41 43434f55 4e54494e l ,.....accountin
 47084e45 572059                     l g.new y
以上是完好的行,,accounting所在行显示为2c,那么,到sqlplus,将其删除:
其它类似信息

推荐信息