[20160528]bbed观察行目录变化.txt

[20160528]bbed观察行目录变化.txt

如果使用bbed观察kdbr,可以发现记录的是相对偏移量,这个偏移我一直认为从kdbh算起.而对于数据块前面有ITL槽信息,对于有2个ITL的块,
使用assm的表空间,一般我看到都是100.如果一个块上有多个事务,ITL槽会增加,kdbh的地址就会发生变化,这样记录在kdbr的行目录信息
就存在变化,通过例子来说明:

1.环境:
SCOTT@book> @ &r/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

create table t (id number,name varchar2(20));
insert into t select rownum ,'aaaa' from dual connect by level<=4;
commit ;

SCOTT@book> select ora_rowscn,rowid,t.* from t;
  ORA_ROWSCN ROWID                        ID NAME
------------ ------------------ ------------ --------------------
13237974561 AAAW8VAAEAAAAIkAAA            1 aaaa
13237974561 AAAW8VAAEAAAAIkAAB            2 aaaa
13237974561 AAAW8VAAEAAAAIkAAC            3 aaaa
13237974561 AAAW8VAAEAAAAIkAAD            4 aaaa

SCOTT@book> @ &r/rowid AAAW8VAAEAAAAIkAAA
      OBJECT         FILE        BLOCK          ROW DBA                  TEXT
------------ ------------ ------------ ------------ -------------------- ----------------------------------------
       93973            4          548            0 4,548                alter system dump datafile 4 block 548 ;

SCOTT@book> alter system checkpoint;
System altered.

2.通过bbed观察:
BBED> set dba 4,548
        DBA             0x01000224 (16777764 4,548)

BBED> p kdbr
sb2 kdbr[0]                                 @118      8044
sb2 kdbr[1]                                 @120      8055
sb2 kdbr[2]                                 @122      8066
sb2 kdbr[3]                                 @124      8077

BBED> p *kdbr[0]
rowdata[0]
----------
ub1 rowdata[0]                              @8144     0x2c

BBED> x /rnc
rowdata[0]                                  @8144
----------
flag@8144: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@8145: 0x01
cols@8146:    2

col    0[2] @8147: 1
col    1[4] @8150: aaaa

--注意看看kdbr[0]与实际的偏移相差100.
BBED> map
File: /mnt/ramdisk/book/users01.dbf (4)
Block: 548                                   Dba:0x01000224
------------------------------------------------------------
KTB Data Block (Table/Cluster)
struct kcbh, 20 bytes                      @0
struct ktbbh, 72 bytes                     @20
struct kdbh, 14 bytes                      @100
struct kdbt[1], 4 bytes                    @114
sb2 kdbr[4]                                @118
ub1 freespace[8018]                        @126
ub1 rowdata[44]                            @8144
ub4 tailchk                                @8188

--注意看kdbh的偏移是100.如果一个块有多个事务,itl槽会增加.看看情况.

--session 1:注意不要提交.我的update前后字段长度没有变化,也就是原地替换.
update t set name='1111' where id=1;

--session 2:
update t set name='2222' where id=2;

--session 3:
update t set name='3333' where id=3;

SCOTT@book> alter system checkpoint;
System altered.

3.再次观察数据块(注意bbed要退出在进入):
BBED> set dba 4,548
        DBA             0x01000224 (16777764 4,548)

BBED> p kdbr
sb2 kdbr[0]                                 @142      8020
sb2 kdbr[1]                                 @144      8031
sb2 kdbr[2]                                 @146      8042
sb2 kdbr[3]                                 @148      8053

--如果与前面对比可以发现记录的偏移量减少了24.正好是ITL槽的长度.不知道oracle为什么这样设计,如果记录的是绝对偏移量,不是减
--少许多计算吗?

BBED> map
File: /mnt/ramdisk/book/users01.dbf (4)
Block: 548                                   Dba:0x01000224
------------------------------------------------------------
KTB Data Block (Table/Cluster)
struct kcbh, 20 bytes                      @0
struct ktbbh, 96 bytes                     @20
struct kdbh, 14 bytes                      @124
struct kdbt[1], 4 bytes                    @138
sb2 kdbr[4]                                @142
ub1 freespace[7994]                        @150
ub1 rowdata[44]                            @8144
ub4 tailchk                                @8188

--可以发现kdbh现在的偏移是124,因为增加一个ITL槽.

BBED> p ktbbh
struct ktbbh, 96 bytes                      @20
   ub1 ktbbhtyp                             @20       0x01 (KDDBTDATA)
   union ktbbhsid, 4 bytes                  @24
      ub4 ktbbhsg1                          @24       0x00016f15
      ub4 ktbbhod1                          @24       0x00016f15
   struct ktbbhcsc, 8 bytes                 @28
      ub4 kscnbas                           @28       0x150b76aa
      ub2 kscnwrp                           @32       0x0003
   sb2 ktbbhict                             @36       3
   ub1 ktbbhflg                             @38       0x32 (NONE)
   ub1 ktbbhfsl                             @39       0x00
   ub4 ktbbhfnx                             @40       0x01000220
   struct ktbbhitl[0], 24 bytes             @44
      struct ktbitxid, 8 bytes              @44
         ub2 kxidusn                        @44       0x0009
         ub2 kxidslt                        @46       0x0014
         ub4 kxidsqn                        @48       0x0000327d
      struct ktbituba, 8 bytes              @52
         ub4 kubadba                        @52       0x00c00305
         ub2 kubaseq                        @56       0x06a9
         ub1 kubarec                        @58       0x10
      ub2 ktbitflg                          @60       0x0001 (NONE)
      union _ktbitun, 2 bytes               @62
         sb2 _ktbitfsc                      @62       0
         ub2 _ktbitwrp                      @62       0x0000
      ub4 ktbitbas                          @64       0x00000000
   struct ktbbhitl[1], 24 bytes             @68
      struct ktbitxid, 8 bytes              @68
         ub2 kxidusn                        @68       0x000a
         ub2 kxidslt                        @70       0x001b
         ub4 kxidsqn                        @72       0x00009dc4
      struct ktbituba, 8 bytes              @76
         ub4 kubadba                        @76       0x00c00e44
         ub2 kubaseq                        @80       0x1e7f
         ub1 kubarec                        @82       0x0c
      ub2 ktbitflg                          @84       0x0001 (NONE)
      union _ktbitun, 2 bytes               @86
         sb2 _ktbitfsc                      @86       0
         ub2 _ktbitwrp                      @86       0x0000
      ub4 ktbitbas                          @88       0x00000000
   struct ktbbhitl[2], 24 bytes             @92
      struct ktbitxid, 8 bytes              @92
         ub2 kxidusn                        @92       0x0008
         ub2 kxidslt                        @94       0x001b
         ub4 kxidsqn                        @96       0x0000236b
      struct ktbituba, 8 bytes              @100
         ub4 kubadba                        @100      0x00c000ca
         ub2 kubaseq                        @104      0x0761
         ub1 kubarec                        @106      0x02
      ub2 ktbitflg                          @108      0x0001 (NONE)
      union _ktbitun, 2 bytes               @110
         sb2 _ktbitfsc                      @110      0
         ub2 _ktbitwrp                      @110      0x0000
      ub4 ktbitbas                          @112      0x00000000

--现在是3个ITL槽.

BBED> p kdbh
struct kdbh, 14 bytes                       @124
   ub1 kdbhflag                             @124      0x00 (NONE)
   sb1 kdbhntab                             @125      1
   sb2 kdbhnrow                             @126      4
   sb2 kdbhfrre                             @128     -1
   sb2 kdbhfsbo                             @130      26
   sb2 kdbhfseo                             @132      8020
   sb2 kdbhavsp                             @134      7994
   sb2 kdbhtosp                             @136      7994

--在补充前面的学习,人为修改kdbhavsp=7993.

BBED> assign kdbhavsp=7993
sb2 kdbhavsp                                @134      7993

BBED> sum apply
Check value for File 4, Block 548:
current = 0xf388, required = 0xf388

BBED> verify
DBVERIFY - Verification starting
FILE = /mnt/ramdisk/book/users01.dbf
BLOCK = 548

Block Checking: DBA = 16777764, Block Type = KTB-managed data block
data header at 0x7f3b9b8af27c
kdbchk: the amount of space used is not equal to block size
        used=70 fsc=0 avsp=7993 dtl=8064
Block 548 failed with check code 6110

--可以对比我以前的测试dtl不再是8088,而是8064,减少了24字节.
-- [20160527]快速提交的一个疑问.txt  http://blog.itpub.net/267265/viewspace-2108017/

-- // dtl - used +fsc
-- // 8064-70+0=7994

-- used 可以这样计算
SCOTT@book> select 8064-8020+14+4+8 from dual ;
8064-8020+14+4+8
----------------
              70

BBED> map
File: /mnt/ramdisk/book/users01.dbf (4)
Block: 548                                   Dba:0x01000224
------------------------------------------------------------
KTB Data Block (Table/Cluster)
struct kcbh, 20 bytes                      @0
struct ktbbh, 96 bytes                     @20
struct kdbh, 14 bytes                      @124
struct kdbt[1], 4 bytes                    @138
sb2 kdbr[4]                                @142
ub1 freespace[7994]                        @150
ub1 rowdata[44]                            @8144
ub4 tailchk                                @8188

-- 说明: kdbh 占用14 ,kdbt[1] 占用4 , kdbr[4 占用8个字节.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-2108360/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/267265/viewspace-2108360/

以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值