亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

bbed小結(jié)1--修改數(shù)據(jù)

系統(tǒng) 1778 0
1. 安裝
10g:
[oracle@styrac1 ~]$ cd $ORACLE_HOME/rdbms/lib/
[oracle@styrac1 lib]$ make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed
11g:
拷貝10g的文件

[oracle@styrac2 lib]$ mkdir /tmp/libtmp
[oracle@styrac2 lib]$ mkdir /tmp/msgtmp
[oracle@styrac2 lib]$ cp $ORACLE_HOME/rdbms/lib/ssbbded.o /tmp/libtmp
[oracle@styrac2 lib]$ cp $ORACLE_HOME/rdbms/lib/sbbdpt.o /tmp/libtmp
[oracle@styrac2 lib]$ ls /tmp/libtmp
sbbdpt.o ssbbded.o
[oracle@styrac2 lib]$ cp $ORACLE_HOME/rdbms/mesg/bbed* /tmp/msgtmp
[oracle@styrac2 lib]$ ls /tmp/msgtmp
bbedus.msb bbedus.msg
上傳到11g服務(wù)器上面
cp libtmp/* $ORACLE_HOME/rdbms/lib/
cp msgtmp/* $ORACLE_HOME/rdbms/mesg/
執(zhí)行make
[oracle@james-test ~]$ cd $ORACLE_HOME/rdbms/lib
[oracle@james-test lib]$ make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed
2. 創(chuàng)建flist文件
    sys@FAKE> select file#||' '||name||' '||bytes as flist from v$datafile ;
FLIST
----------------------------------------------------------------------
1 /u01/apps/oracle/oradata/fake/system01.dbf 744488960
2 /u01/apps/oracle/oradata/fake/sysaux01.dbf 703922176
3 /u01/apps/oracle/oradata/fake/undotbs01.dbf 325058560
4 /u01/apps/oracle/oradata/fake/users01.dbf 16777216
5 /u01/apps/oracle/oradata/fake/example01.dbf 104857600

  



[oracle@oel bbed]$ cat flist.txt
1 /u01/apps/oracle/oradata/fake/system01.dbf 744488960
2 /u01/apps/oracle/oradata/fake/sysaux01.dbf 703922176
3 /u01/apps/oracle/oradata/fake/undotbs01.dbf 325058560
4 /u01/apps/oracle/oradata/fake/users01.dbf 16777216
5 /u01/apps/oracle/oradata/fake/example01.dbf 104857600


3. 創(chuàng)建parfile
    sys@FAKE> show parameter db_block_size


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_block_size                        integer     8192
  




[oracle@oel bbed]$ cat dex.par
blocksize=8192
listfile=/home/oracle/bbed/flist.txt

mode=broswer

password=blockedit



方便一下放進(jìn)環(huán)境變量里面
alias bbed='rlwrap bbed parfile=/home/oracle/bbed/dex.par'


4. 下面我們來(lái)修改數(shù)據(jù)

本例子基于11g


先聲明,筆者做實(shí)驗(yàn)之前已經(jīng)有了全集備份,也希望大家在做實(shí)驗(yàn)的時(shí)候做好備份。

首先補(bǔ)充一下基本知識(shí),假設(shè)塊大小為

8kb=8192byte

1byte=8bit

dump文件使用16進(jìn)制編碼

所以可以使用2個(gè)16進(jìn)制編碼代表1byte

因此一個(gè)塊中總共有8192*2=16384個(gè)0到F的代碼構(gòu)成,每2位代表一個(gè)字節(jié)。



    sys@FAKE> select t.*,
  2         dbms_rowid.rowid_relative_fno(t.rowid) as "FNO#",
  3         dbms_rowid.rowid_block_number(t.rowid) as "BLK#",
  4         dbms_rowid.rowid_row_number(t.rowid) as "ROW#"
  5    from scott.emp t
  6   where t.empno = 7839;


     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO       FNO#       BLK#       ROW#
---------- ---------- --------- ---------- --------- ---------- ---------- ---------- ---------- ---------- ----------
      7839 KING       PRESIDENT            17-NOV-81       5000                    10          4         29          8
  




就來(lái)修改一下emp 表中 的 7839 這條記錄把 修改sal為4000


先來(lái)看一下5000的十六制碼是多少

    sys@FAKE>  select dump(5000,1016) from dual;


DUMP(5000,1016)
------------------
Typ=2 Len=2: c2,33
  




使用十六進(jìn)制碼查找一下



BBED> find /x c233
File: /u01/apps/oracle/oradata/fake/users01.dbf (4)
Block: 29 Offsets: 7850 to 8191 Dba:0x0100001d
------------------------------------------------------------------------
c233ff02 c10b2c01 0803c24e 59055343 4f545407 414e414c 59535403 c24c4307
77bb0413 01010102 c21fff02 c1152c01 0803c24e 5305434c 41524b07 4d414e41
47455203 c24f2807 77b50609 01010103 c21933ff 02c10b2c 010803c2 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 c1152c01 0803c24c 16045741
52440853 414c4553 4d414e03 c24d6307 77b50216 01010103 c20d3302 c20602c1
1f2c0108 03c24b64 05414c4c 454e0853 414c4553 4d414e03 c24d6307 77b50214
01010102 c21102c2 0402c11f 2c010803 c24a4605 534d4954 4805434c 45524b03
c2500307 77b40c11 01010102 c209ff02 c1151006 eece


<32 bytes per line>


offset=7850




查看一下4000的十六進(jìn)制碼
    sys@FAKE>  select dump(4000.00,1016) from dual;


DUMP(4000.00,1016)
------------------
Typ=2 Len=2: c2,29

sys@FAKE>  select dump(4000.00,1016) from dual;


DUMP(4000.00,1016)
------------------
Typ=2 Len=2: c2,29

  





BBED> set offset 7850
OFFSET 7850
BBED> m /x c229
BBED-00215: editing not allowed in BROWSE mode




BBED> set mode edit
MODE Edit


BBED> m /x c229
File: /u01/apps/oracle/oradata/fake/users01.dbf (4)
Block: 29 Offsets: 7850 to 7977 Dba:0x0100001d
-----------------------------------------------------------------------
c229ff02 c10b2c01 0803c24e 59055343 4f545407 414e414c 59535403 c24c4307
77bb0413 01010102 c21fff02 c1152c01 0803c24e 5305434c 41524b07 4d414e41
47455203 c24f2807 77b50609 01010103 c21933ff 02c10b2c 010803c2 4d630542
4c414b45 074d414e 41474552 03c24f28 0777b505 01010101 03c21d33 ff02c11f


<32 bytes per line>


生效
BBED> sum
Check value for File 4, Block 29:
current = 0xc587, required = 0xdf87


BBED> sum apply
Check value for File 4, Block 29:
current = 0xdf87, required = 0xdf87


BBED> verify
DBVERIFY - Verification starting
FILE = /u01/apps/oracle/oradata/fake/users01.dbf
BLOCK = 29




DBVERIFY - Verification complete


Total Blocks Examined : 1
Total Blocks Processed (Data) : 1
Total Blocks Failing (Data) : 0
Total Blocks Processed (Index): 0
Total Blocks Failing (Index): 0
Total Blocks Empty : 0
Total Blocks Marked Corrupt : 0
Total Blocks Influx : 0
Message 531 not found; product=RDBMS; facility=BBED


查詢(xún)沒(méi)有變?
    sys@FAKE>  alter system flush buffer_cache;


System altered.

  



再次查詢(xún)


    sys@FAKE> select t.*,
  2         dbms_rowid.rowid_relative_fno(t.rowid) as "FNO#",
  3         dbms_rowid.rowid_block_number(t.rowid) as "BLK#",
  4         dbms_rowid.rowid_row_number(t.rowid) as "ROW#"
  5    from scott.emp t
  6   where t.empno = 7839;


     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO       FNO#       BLK#       ROW#
---------- ---------- --------- ---------- --------- ---------- ---------- ---------- ---------- ---------- ----------
      7839 KING       PRESIDENT            17-NOV-81       4000                    10          4         29          8
  




注意:這里修改的字節(jié)數(shù)必須和原來(lái)相同。
比如5000十六進(jìn)制為c233
你不能直接修改為c21f33,這樣會(huì)覆蓋已有數(shù)據(jù)毀壞,出現(xiàn)類(lèi)似下面的情況

         EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO       FNO#       BLK#       ROW#
---------- ---------- --------- ---------- --------- ---------- ---------- ---------- ---------- ---------- ----------
      7839 KING       PRESIDENT            17-NOV-81       3000 -k.91E+120 -3.619E-27          4         29          8
  


補(bǔ)充下其他的知識(shí):

BBED> set dba 4,531
DBA 0x01000213 (16777747 4,531)


BBED> p *kdbr[0]
rowdata[2962]
-------------
ub1 rowdata[2962] @8173 0x3c


BBED> set offset 8173
OFFSET 8173


BBED> dump /v
File: /u01/apps/oracle/oradata/david/users01.dbf (4)
Block: 531 Offsets: 8173 to 8191 Dba:0x01000213
-------------------------------------------------------
3c020302 c1020353 59530444 55414c01 l <...á..SYS.DUAL.
06fbd4 l .??


<16 bytes per line>




_sys@DAVID> select dump(1,1016) from dual ;


DUMP(1,1016)
-----------------
Typ=2 Len=2: c1,2


_sys@DAVID> select dump('SYS',1016) from dual ;


DUMP('SYS',1016)
--------------------------------------------
Typ=96 Len=3 CharacterSet=ZHS16GBK: 53,59,53


每一行的組成:
1個(gè)字節(jié)的flag
1個(gè)字節(jié)的lb(itl slot)
1個(gè)字節(jié)的column count

如例中
3c=flag=00111100=--HDFL--=header+delete+first+last
02=lb itl slot 0x02
03=column count


列值信息包括:
列的長(zhǎng)度,列的value
例如02c102
表示占用2個(gè)byte
c102 表示的是具體的值

那么本例中


其他:
null值,如果后面還有列,那么會(huì)記為ff
null值,如果是行中的最后一列,那么什么都不會(huì)記錄。
直接記錄下一行的數(shù)據(jù)




今天就先到這吧。


bbed小結(jié)1--修改數(shù)據(jù)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 亚洲人成毛片线播放 | 国产免费一区二区在线看 | 全部无卡免费的毛片在线看 | 天天碰夜夜 | 综合久| 黑人一级毛片 | 久久高清一区二区三区 | 奇米色视频 | 3d动漫精品成人一区二区三 | 久热国产在线视频 | 日日摸日日碰夜夜97 | 欧美综合精品一区二区三区 | 久久久国产99久久国产一 | 欧美一级xxxxⅹ毛片 | 在线国产日韩 | 国产精品免费在线播放 | 国产亚洲精品国产 | 五月天婷婷在线免费观看 | 国产成人精品久久 | 国产精品婷婷久久爽一下 | 亚洲日本香蕉视频 | 正在播放一区二区 | 亚洲综合色婷婷中文字幕 | 婷婷丁香在线视频 | 天天色天天干天天 | 波多野结衣一区二区三区在线观看 | 久久婷婷激情综合中文字幕 | 久久99热精品免费观看 | 一级淫片免费看 | 国产毛片一级 | 免费国产精品视频 | 爱操在线| 久久www免费人成_看片美女图 | 国产aⅴ精品一区二区三区久久 | 四虎. com 官网 | 免费看曰批女人爽的视频网址 | 日本不卡免免费观看 | 全黄大全大色全免费大片 | 日韩一中文字幕 | 天天干天天玩天天操 | 成人在线a|