- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle数据块深入分析总结
Oracle数据块深入分析总结
最近在研究块的内部结构,把文档简单整理了一下,和大家分享一下。该篇文章借助dump和BBED对数据库内部结构进行了分析,最后附加了一个用BBED解决ORA-1200错误的小例子。在总结的过程中参考了《Disassembling the Oracle Data Block》以及网上的翻译版本。 dump说明 创建表空间和测试表: create tablespace testblock datafile /opt/oracle/oradata/oradb/testblock01.dbf size 100M; create table testblock( id number, name varchar(4) ) tablespace testblock; 插入3条数据然后提交: SQL insert into testblock values(1,a); SQL insert into testblock values(2,b); SQL insert into testblock values(3,c); SQL commit; SQL select * from testblock; ??????? ID NAME ---------- -------- ???????? 1 a ???????? 2 b ???????? 3 c SQL select rowid,dbms_rowid.rowid_relative_fno(rowid) rel_fno,dbms_rowid.rowid_block_number(rowid) blockno from testblock; ROWID???????????????? REL_FNO??? BLOCKNO ------------------???????? ----------??????? ---------- AAANK4AAFAAAAAQAAA????????? 5???????? 16 AAANK4AAFAAAAAQAAB????????? 5???????? 16 AAANK4AAFAAAAAQAAC????????? 5???????? 16 我们看到这3行数据都在5号数据文件的第16个块 执行数据块dump: SQL alter system dump datafile 5 block 16; 以下是该数据块的完整dump结果: Start dump data blocks tsn: 7 file#: 5 minblk 16 maxblk 16 buffer tsn: 7 rdba: 0(5/16) scn: 0x0000.001732d3 seq: 0x01 flg: 0x04 tail: 0x32d30601 frmt: 0x02 chkval: 0x84cb type: 0x06=trans data Hex dump of block: st=0, typ_found=1 Dump of memory from 0x0CEB6400 to 0x0CEB8400 CEB6400 0000A206001732D3 [......@..2......] CEB6410 000084CB0000D2B8 001732D3? [.............2..] CEB64200032000200200006? [......2...@... .] CEB64300080020500008000? [q.......W.......] CEB6440 001732C400000279 [.2......y...Q...] CEB64500000000100000000? [x...............] CEB646000030100 0018FFFF 1F651F5E? [............^.e.] CEB6470 00001F65 1F5E0003 1F801F66 [e.....^.f.......] CEB64800000000000000000? [................] ??????? Repeat 499 times CEB83C0 022C0000 02C10202 002C6101 03C
文档评论(0)