[20190423]oradebug peek测试脚本.txt
--//工作测试需要写一个oradebug peek测试脚本,不断看某个区域内存地址的值。
1.环境:
SCOTT@book> @ ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
2.建立测试例子:
create table t as select rownum id,'test' name from dual ;
create unique index pk_t on t(id);
alter table t modify id not null ;
--//分析表和索引略.
SCOTT@book> select rowid,t.* from t;
ROWID ID NAME
------------------ ---------- ----------------------------------------
AAAknXAAEAAAAILAAA 1 test
SCOTT@book> @ rowid AAAknXAAEAAAAILAAA
OBJECT FILE BLOCK ROW ROWID_DBA DBA TEXT
---------- ---------- ---------- ---------- -------------------- -------------------- ----------------------------------------
149975 4 523 0 0x100020B 4,523 alter system dump datafile 4 block 523 ;
SCOTT@book> select header_file,header_block from dba_segments where owner=user and segment_name='PK_T';
HEADER_FILE HEADER_BLOCK
----------- ------------
4 554
--//从以上信息可以知道dba=4,523数据块,dba=4,522表T段头.dba=4,555(554+1)是索引的root块(因为索引很小也是叶子和分支块)
SYS@book> @ bh 4 522
HLADDR DBARFIL DBABLK CLASS CLASS_TYPE STATE TCH CR_SCN_BAS CR_SCN_WRP CR_UBA_FIL CR_UBA_BLK CR_UBA_SEQ BA OBJECT_NAME
---------------- ---------- ---------- ---------- ------------------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------------- --------------------
0000000084DA2730 4 522 &