bbed直接修改block的内容

–先定位到表所在的dba(database block address)地址

select rowid,dbms_rowid.rowid_relative_fno(rowid) fno,
dbms_rowid.rowid_block_number(rowid) block_num,
dbms_rowid.rowid_row_number(rowid) row_num,
dbms_rowid.rowid_object(rowid) objno
from emp;
SQL> SQL>   2    3    4    5
ROWID             FNO  BLOCK_NUM    ROW_NUM  OBJNO
------------------ ---------- ---------- ---------- ----------
AAAVREAAEAAAACXAAA      4        151      0  87108
AAAVREAAEAAAACXAAB      4        151      1  87108
AAAVREAAEAAAACXAAC      4        151      2  87108
AAAVREAAEAAAACXAAD      4        151      3  87108
AAAVREAAEAAAACXAAE      4        151      4  87108
AAAVREAAEAAAACXAAF      4        151      5  87108
AAAVREAAEAAAACXAAG      4        151      6  87108
AAAVREAAEAAAACXAAH      4        151      7  87108
AAAVREAAEAAAACXAAI      4        151      8  87108
AAAVREAAEAAAACXAAJ      4        151      9  87108
AAAVREAAEAAAACXAAK      4        151     10  87108

ROWID             FNO  BLOCK_NUM    ROW_NUM  OBJNO
------------------ ---------- ---------- ---------- ----------
AAAVREAAEAAAACXAAL      4        151     11  87108
AAAVREAAEAAAACXAAM      4        151     12  87108
AAAVREAAEAAAACXAAN      4        151     13  87108

登录到bbed

[oracle@oracle ~]$ bbed parfile=bbed.par

BBED: Release 2.0.0.0.0 - Limited Production on Sat Feb 10 13:00:56 2018

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

************* !!! For Oracle Internal Use only !!! ***************




BBED> set file
    FILE#           1

BBED> set dba 4,151
    DBA             0x01000097 (16777367 4,151)


BBED> show
    FILE#           4
    BLOCK#          151
    OFFSET          0
    DBA             0x01000097 (16777367 4,151)
    FILENAME        /u01/app/oracle/oradata/orcl/users01.dbf
    BIFILE          bifile.bbd
    LISTFILE        /home/oracle/file.txt
    BLOCKSIZE       8192
    MODE            Edit
    EDIT            Unrecoverable
    IBASE           Dec
    OBASE           Dec
    WIDTH           80
    COUNT           512
    LOGFILE         log.bbd
    SPOOL           No

BBED> find /c king
BBED-00212: search string not found

– king大写

–寻找king所在offset

BBED> find /c KING
 File: /u01/app/oracle/oradata/orcl/users01.dbf (4)
 Block: 151              Offsets: 7826 to 8191           Dba:0x01000097
------------------------------------------------------------------------
 4b494e47 09505245 53494445 4e54ff07 77b50b11 01010102 c233ff02 c10b3c02
 0803c24e 59055343 4f545464 704e414c 59535403 c24c4307 77bb0413 01010102
 c21fff02 c1152c00 0803c24e 5305434c 41524b07 4d414e41 47455203 c24f2807
 77b50609 01010103 c21933ff 02c10b2c 000803c2 4d630542 4c414b45 074d414e
 41474552 03c24f28 0777b505 01010101 03c21d33 ff02c11f 2c010803 c24d3706
 4d415254 494e0853 414c4553 4d414e03 c24d6307 77b5091c 01010103 c20d3302
 c20f02c1 1f2c0108 03c24c43 054a4f4e 4553074d 414e4147 455203c2 4f280777
 b5040201 010103c2 1e4cff02 c1152c00 0803c24c 16045741 52440853 414c4553
 4d414e03 c24d6307 77b50216 01010103 c20d3302 c20602c1 1f2c0008 03c24b64
 05414c4c 454e0853 414c4553 4d414e03 c24d6307 77b50214 01010102 c21102c2
 0402c11f 2c000803 c24a4605 534d4954 4805434c 45524b03 c2500307 77b40c11
 01010102 c209ff02 c1150206 9da3

 <32 bytes per line>

– 从这个偏移量直接修改

BBED> modify /c hdpp offset 7826;
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
 File: /u01/app/oracle/oradata/orcl/users01.dbf (4)
 Block: 151              Offsets: 7826 to 8191           Dba:0x01000097
------------------------------------------------------------------------
 68647070 09505245 53494445 4e54ff07 77b50b11 01010102 c233ff02 c10b3c02
 0803c24e 59055343 4f545464 704e414c 59535403 c24c4307 77bb0413 01010102
 c21fff02 c1152c00 0803c24e 5305434c 41524b07 4d414e41 47455203 c24f2807
 77b50609 01010103 c21933ff 02c10b2c 000803c2 4d630542 4c414b45 074d414e
 41474552 03c24f28 0777b505 01010101 03c21d33 ff02c11f 2c010803 c24d3706
 4d415254 494e0853 414c4553 4d414e03 c24d6307 77b5091c 01010103 c20d3302
 c20f02c1 1f2c0108 03c24c43 054a4f4e 4553074d 414e4147 455203c2 4f280777
 b5040201 010103c2 1e4cff02 c1152c00 0803c24c 16045741 52440853 414c4553
 4d414e03 c24d6307 77b50216 01010103 c20d3302 c20602c1 1f2c0008 03c24b64
 05414c4c 454e0853 414c4553 4d414e03 c24d6307 77b50214 01010102 c21102c2
 0402c11f 2c000803 c24a4605 534d4954 4805434c 45524b03 c2500307 77b40c11
 01010102 c209ff02 c1150206 9da3

 <32 bytes per line>

– 寻找刚才的内容

BBED> find /c hdpp
 File: /u01/app/oracle/oradata/orcl/users01.dbf (4)
 Block: 151              Offsets: 7826 to 8191           Dba:0x01000097
------------------------------------------------------------------------
 68647070 09505245 53494445 4e54ff07 77b50b11 01010102 c233ff02 c10b3c02
 0803c24e 59055343 4f545464 704e414c 59535403 c24c4307 77bb0413 01010102
 c21fff02 c1152c00 0803c24e 5305434c 41524b07 4d414e41 47455203 c24f2807
 77b50609 01010103 c21933ff 02c10b2c 000803c2 4d630542 4c414b45 074d414e
 41474552 03c24f28 0777b505 01010101 03c21d33 ff02c11f 2c010803 c24d3706
 4d415254 494e0853 414c4553 4d414e03 c24d6307 77b5091c 01010103 c20d3302
 c20f02c1 1f2c0108 03c24c43 054a4f4e 4553074d 414e4147 455203c2 4f280777
 b5040201 010103c2 1e4cff02 c1152c00 0803c24c 16045741 52440853 414c4553
 4d414e03 c24d6307 77b50216 01010103 c20d3302 c20602c1 1f2c0008 03c24b64
 05414c4c 454e0853 414c4553 4d414e03 c24d6307 77b50214 01010102 c21102c2
 0402c11f 2c000803 c24a4605 534d4954 4805434c 45524b03 c2500307 77b40c11
 01010102 c209ff02 c1150206 9da3

 <32 bytes per line>

– 保存修改

BBED> sum apply;
Check value for File 4, Block 151:
current = 0xe992, required = 0xe992

BBED> exit

–重启数据库生效

[oracle@oracle ~]$ sqlplus scott/123123

SQL*Plus: Release 11.2.0.4.0 Production on Sat Feb 10 13:06:15 2018

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> set linesize 255

–确认内容

SQL> select * from emp
  2  ;

     EMPNO ENAME      JOB          MGR HIREDATE          SAL       COMM DEPTNO
---------- ---------- --------- ---------- ------------------ ---------- ---------- ----------
      7369 SMITH      CLERK       7902 17-DEC-80             800            20
      7499 ALLEN      SALESMAN        7698 20-FEB-81            1600    300     30
      7521 WARD       SALESMAN        7698 22-FEB-81            1250    500     30
      7698 BLAKE      MANAGER         7839 01-MAY-81            2850            30
      7782 CLARK      MANAGER         7839 09-JUN-81            2450            10
      7839 hdpp       PRESIDENT        17-NOV-81            5000            10
      7844 TURNER     SALESMAN        7698 08-SEP-81            1500      0     30
      7876 ADAMS      CLERK       7788 23-MAY-87            1100            20
      7900 JAMES      CLERK       7698 03-DEC-81             950            30
      7902 FORD       ANALYST         7566 03-DEC-81            3000            20
      7934 MILLER     CLERK       7782 23-JAN-82            1300            10

11 rows selected.

SQL>

– 修改成功,这个实验主要是oracle底层知识,掌握之后,对oracle的理解会更深入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值