您好,登錄后才能下訂單哦!
在對(duì)Oracle做一些比較內(nèi)核的研究時(shí),會(huì)用需要用到dump命令把數(shù)據(jù)庫中的信息轉(zhuǎn)儲(chǔ)到trace文件中。本文簡單介紹使用dump命令把數(shù)據(jù)塊中的信息轉(zhuǎn)儲(chǔ)到trace文件中。
實(shí)驗(yàn)環(huán)境:rhel7.2+11.2.0.4
語法:
alter system dump datafile {File no} block {Block no};
alter system dump datafile 4 block 129;
alter system dump datafile {File no} block min {Block min} block max {Block max};
alter system dump datafile 4 block min 129 block max 133;
alter system dump datafile '{name}' block {Block no};
alter system dump datafile '{name}' block min {Block min} block max {Block max};
1、創(chuàng)建測試表
zx@ORA11G>drop table t; Table dropped. zx@ORA11G>create table t as select * from dual; Table created. zx@ORA11G>select * from t; D - X X X 3 rows selected.
2、查詢數(shù)據(jù)表所在的數(shù)據(jù)塊號(hào)
zx@ORA11G>select dbms_rowid.ROWID_RELATIVE_FNO(rowid),dbms_rowid.ROWID_BLOCK_NUMBER(rowid) from t; DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID) DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) ------------------------------------ ------------------------------------ 4 37771 4 37771 4 37771 3 rows selected.
從上面的查詢中可以看到三條數(shù)據(jù)都存儲(chǔ)在4號(hào)文件的37771塊上。
3、使用dump命令轉(zhuǎn)儲(chǔ)塊信息到trace文件中,并找到相應(yīng)的trace文件
zx@ORA11G>alter system dump datafile 4 block 37771; System altered. zx@ORA11G>select value from v$diag_info where name='Default Trace File'; VALUE ------------------------------------------------------------------------- /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_5332.trc
4、查看trace文件中的內(nèi)容
上面截取了一些信息:包含表的object_id <objn 90835>,表上的事務(wù)槽信息、表中的三行數(shù)據(jù)的詳細(xì)信息等。
轉(zhuǎn)儲(chǔ)出來的trace文件包含大量的信息,如果能看懂并分析這樣的trace文件,說明向大師又邁近了一步。
不同版本對(duì)數(shù)據(jù)庫dump出來的trace文件,出處有所不同,可能是從磁盤也可能是從buffer cache中,有興趣的同學(xué)可以自行測試。
參考:《Oracle Core Essential Internals for DBAs and Developers》
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。