WD1X.COM - 问答一下,轻松解决,电脑应用解决专家
主板显卡CPU内存显示器
硬盘维修显卡维修显示器维修
注册表系统命令DOS命令Win8
存储光存储鼠标键盘
内存维修打印机维修
WinXPWin7Win11Linux
硬件综合机箱电源散热器手机数码
主板维修CPU维修键盘鼠标维修
Word教程Excel教程PowerPointWPS
网络工具系统工具图像工具
数据库javascript服务器
PHP教程CSS教程XML教程

oracle用bbed恢复误删记录的方法

更新时间:2012-06-25 13:44 作者:佚名点击:
 oracle实验:用bbed恢复误删记录的全过程
   
    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
   
    <32 bytes per line>
   
    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 ORKH:
   
    <16 bytes per line>
   
    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
   
    <16 bytes per line>
   
    以上是完好的行,accounting所在行显示为2c,那么,到sqlplus,将其删除。
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
你可能感兴趣的内容