如何对指数的块进行dump-oracle
1,新建一个表测试
SYS@127.0.0.1:1521/oracle12cpdb>创建表测试从dba_objects选择object_id;表创建
。
2,新建一个表以后,在这个表的列上新建一个索引
SYS@127.0.0.1:1521/oracle12cpdb>创建指数ind_test测试(object_id);
索引创建。
把buffer_cache刷新回磁盘上
SYS@127.0.0.1:1521/oracle12cpdb>改变系统冲洗buffer_cache;
系统改变。
3,通过查询dba_objects表,得到指数的object_id
SYS@127.0.0.1:1521/oracle12cpdb>选择从dba_objects object_id OBJECT_NAME=癐ND_TEST”和OBJECT_TYPE=爸甘?
object_id
<代码> 73204 代码>
4,对索引树进行转储,
SYS@127.0.0.1:1521/oracle12cpdb>改变系统设置事件的即时跟踪名称treedump 73204级;
系统改变。
5。查询进程的跟踪文件,得到如下信息;
- - - - - -树开始转储分支:0 x407a51 4225617 (0: nrow: 161,水平:1)
叶:0 x407a52 4225618(1:行:485.485 avs: 823)
叶:0 x407a53 4225619(0:行:479.479 avs: 816)
叶:0 x407a54 4225620(1:行:479.479 avs: 816)
叶:0 x407a55 4225621(2:行:479.479 avs: 816)
叶:0 x407a56 4225622(3:行:479.479 avs: 816)
叶:0 x407a57 4225623(4:行:478.478 avs: 830)
……
结束- - - - - -树转储
6,使用dbms_utility找出索引的文件和块号码;
SYS@127.0.0.1:1521/oracle12cpdb>选择dbms_utility.data_block_address_file (4225617), dbms_utility.data_block_address_block从双(4225617),
dbms_utility.data_block_address_file (4225617)
DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK (4225617)
<代码> 1 31313年代码>
7,由以上的查询得知,指数的在文件1中,块为31313年,对这个块进行转储;
SYS@127.0.0.1:1521/oracle12cpdb>改变系统转储功能1块31313;
系统改变。
生成转储文件,通过这个文件就可以知道了索引键和rowid在块上是如何存放了。