温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何对Oracle的index 的block进行dump

发布时间:2020-07-29 09:17:52 来源:网络 阅读:310 作者:whdba 栏目:关系型数据库

如何对index 的block进行dump-oracle
1,新建一个表test
SYS@127.0.0.1:1521/oracle12cpdb> create table test as select object_id from dba_objects;
Table created.
2,新建一个表以后,在这个表的列上新建一个索引
SYS@127.0.0.1:1521/oracle12cpdb> create index ind_test on test(object_id);
Index created.
把buffer_cache刷新回磁盘上
SYS@127.0.0.1:1521/oracle12cpdb> alter system flush buffer_cache;
System altered.
3,通过查询dba_objects表,得到index的object_id
SYS@127.0.0.1:1521/oracle12cpdb> select object_id from dba_objects where OBJECT_NAME='IND_TEST' and OBJECT_TYPE='INDEX';
OBJECT_ID

 73204

4,对index tree进行dump,
SYS@127.0.0.1:1521/oracle12cpdb> alter system set events 'immediate trace name treedump level 73204';
System altered.
5.查询进程的跟踪文件,得到如下信息;
----- begin tree dump
branch: 0x407a51 4225617 (0: nrow: 161, level: 1)
leaf: 0x407a52 4225618 (-1: row:485.485 avs:823)
leaf: 0x407a53 4225619 (0: row:479.479 avs:816)
leaf: 0x407a54 4225620 (1: row:479.479 avs:816)
leaf: 0x407a55 4225621 (2: row:479.479 avs:816)
leaf: 0x407a56 4225622 (3: row:479.479 avs:816)
leaf: 0x407a57 4225623 (4: row:478.478 avs:830)
......
----- end tree dump

6,使用dbms_utility找出index的file和block numer;
SYS@127.0.0.1:1521/oracle12cpdb> select dbms_utility.data_block_address_file(4225617),dbms_utility.data_block_address_block(4225617) from dual;
DBMS_UTILITY.DATA_BLOCK_ADDRESS_FILE(4225617)

DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK(4225617)

                                        1
                                     31313

7,由以上的查询得知,index的在文件1中,block为31313,对这个block进行dump;
SYS@127.0.0.1:1521/oracle12cpdb> alter system dump datafile 1 block 31313;
System altered.
生成dump文件,通过这个文件就可以知道了index key和rowid在block上是如何存放了。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI