首页 > 其他分享 >[20231027]Index ITL Limit 3.txt

[20231027]Index ITL Limit 3.txt

时间:2023-11-01 22:35:59浏览次数:31  
标签:20231027 ITL scn 10 -- 00000004 --- txt

[20231027]Index ITL Limit 3.txt

--//链接https://jonathanlewis.wordpress.com/2022/02/18/index-itl-limit/,使用自治事务。
--//自己尝试不使用自治事务写一个看看。

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

SYS@book> @ hidez ^processes$
SYS@book> @ pr
==============================
NAME                          : processes
DESCRIPTION                   : user processes
DEFAULT_VALUE                 : FALSE
SESSION_VALUE                 : 250
SYSTEM_VALUE                  : 250
ISSES_MODIFIABLE              : FALSE
ISSYS_MODIFIABLE              : FALSE
PL/SQL procedure successfully completed.
--//测试需要processes=250.

2.建立测试脚本:

create table itl_limit(n1 number) pctfree 0;
create unique index il_01 on itl_limit(n1) pctfree 0;
--//insert into itl_limit values(0);
--//commit ;
--//分析略.

$ cat itl_4.txt
set head off
set verify off
set feedback off
host sleep $(echo &&1/5 | bc -l )
select 'ITL'||&1,s.sid,s.serial# ,s.process,s.server,p.spid from v$session s,v$process p where s.sid in (select sid from v$mystat where rownum=1) and s.paddr=p.addr;
insert into itl_limit values(&&1);
host sleep 3000
commit ;
quit
--//注执行前加入sleep $(echo &&1/5 | bc -l ),保证执行按照自己定义的顺序插入数据,这样可以按照顺序使用ITL槽。
--//整个测试需要至少3000+35秒,需要足够的耐心。

$ cat itl_limit.sh
#! /bin/bash
# test enq TX - allocate ITL entry (index)
zzdate | tee /tmp/itl_trace.txt
zzdate | tee /tmp/itl.txt

# 168/5 = 33.6秒后,保证全部回话执行itl_4.txt的脚本执行到select * from t where x = &&1 for update ;
seq 168 | xargs -IQ echo "sqlplus -s -l scott/book @itl_4.txt Q &" | bash | tee -a /tmp/itl.txt > /dev/null &
echo sleep 35
sleep 35
# sleep 35,保证前面的全部回话执行itl_4.txt的脚本执行到insert into itl_limit values(&&1);
sqlplus -s -l scott/book <<EOF  | tee -a /tmp/itl_trace.txt
@ spid
@ t
@ 10046on 8
insert into itl_limit values(169);
@ xid
commit;
@10046off
EOF

zzdate | tee -a /tmp/itl_trace.txt
zzdate | tee -a /tmp/itl.txt

--//注:索引最大169个ITL槽,其中第1个ITL作为索引分裂使用,供事务使用168个ITL槽.
--//我开始使用seq 169,结果前面执行时就出现阻塞了。

3.测试:

$ source itl_limit.sh
trunc(sysdate)+09/24+41/1440+59/86400 == 2023/10/31 09:41:59 == timestamp'2023-10-31 09:41:59'
trunc(sysdate)+09/24+41/1440+59/86400 == 2023/10/31 09:41:59 == timestamp'2023-10-31 09:41:59'
sleep 35
       SID    SERIAL# PROCESS                  SERVER    SPID       PID  P_SERIAL# C50
---------- ---------- ------------------------ --------- ------ ------- ---------- --------------------------------------------------
        46         71 13125                    DEDICATED 13127      194          8 alter system kill session '46,71' immediate;

TRACEFILE
----------------------------------------------------------------------------
/u01/app/oracle/diag/rdbms/book/book/trace/book_ora_13127.trc
Session altered.

1 row created.

XIDUSN_XIDSLOT_XIDSQN
------------------------------
122.15.4
--//122 = 0x007a

Commit complete.
Session altered.

trunc(sysdate)+10/24+32/1440+30/86400 == 2023/10/31 10:32:30 == timestamp'2023-10-31 10:32:30'
trunc(sysdate)+10/24+32/1440+30/86400 == 2023/10/31 10:32:30 == timestamp'2023-10-31 10:32:30'

--//总共监测 (19+32)*60+30-59 = 3031秒。

4.分析:
$ grep "^WAIT.*TX" /u01/app/oracle/diag/rdbms/book/book/trace/book_ora_13127.trc | head -24
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 1000974 name|mode=1415053316 usn<<16 | slot=2752525 sequence=4 obj#=90592 tim=1698716555273345
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 1000886 name|mode=1415053316 usn<<16 | slot=1900562 sequence=4 obj#=90592 tim=1698716556274337
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 1000912 name|mode=1415053316 usn<<16 | slot=6356998 sequence=4 obj#=90592 tim=1698716557275338
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 1000919 name|mode=1415053316 usn<<16 | slot=10682382 sequence=4 obj#=90592 tim=1698716558276345
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 1000909 name|mode=1415053316 usn<<16 | slot=1835031 sequence=4 obj#=90592 tim=1698716559277343
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 1000210 name|mode=1415053316 usn<<16 | slot=8847365 sequence=4 obj#=90592 tim=1698716560327376
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 1000884 name|mode=1415053316 usn<<16 | slot=6488067 sequence=4 obj#=90592 tim=1698716561328351
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 1000934 name|mode=1415053316 usn<<16 | slot=5636121 sequence=4 obj#=90592 tim=1698716562329366
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 1000918 name|mode=1415053316 usn<<16 | slot=1507349 sequence=4 obj#=90592 tim=1698716563330398
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 1000809 name|mode=1415053316 usn<<16 | slot=5570584 sequence=4 obj#=90592 tim=1698716564331346
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 1000232 name|mode=1415053316 usn<<16 | slot=2293765 sequence=4 obj#=90592 tim=1698716565358357
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 1000882 name|mode=1415053316 usn<<16 | slot=3211285 sequence=4 obj#=90592 tim=1698716566359329
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 2000882 name|mode=1415053316 usn<<16 | slot=2752525 sequence=4 obj#=90592 tim=1698716568360336
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 2000844 name|mode=1415053316 usn<<16 | slot=1900562 sequence=4 obj#=90592 tim=1698716570361333
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 2000871 name|mode=1415053316 usn<<16 | slot=6356998 sequence=4 obj#=90592 tim=1698716572362335
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 2000873 name|mode=1415053316 usn<<16 | slot=10682382 sequence=4 obj#=90592 tim=1698716574363337
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 2000900 name|mode=1415053316 usn<<16 | slot=1835031 sequence=4 obj#=90592 tim=1698716576364325
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 2000877 name|mode=1415053316 usn<<16 | slot=8847365 sequence=4 obj#=90592 tim=1698716578365322
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 2000972 name|mode=1415053316 usn<<16 | slot=6488067 sequence=4 obj#=90592 tim=1698716580366388
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 2000872 name|mode=1415053316 usn<<16 | slot=5636121 sequence=4 obj#=90592 tim=1698716582367391
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 2000892 name|mode=1415053316 usn<<16 | slot=1507349 sequence=4 obj#=90592 tim=1698716584368375
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 2000889 name|mode=1415053316 usn<<16 | slot=5570584 sequence=4 obj#=90592 tim=1698716586369358
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 2000940 name|mode=1415053316 usn<<16 | slot=2293765 sequence=4 obj#=90592 tim=1698716588370386
WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 2000900 name|mode=1415053316 usn<<16 | slot=3211285 sequence=4 obj#=90592 tim=1698716590371381
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--//12槽为一组.
--//3211285 = /2^16  %2^16 (Type | Mode) = 49,21 = 0x310015

$ grep "^WAIT.*TX" /u01/app/oracle/diag/rdbms/book/book/trace/book_ora_13127.trc |awk '{print  $10}' | paste -d" " $(seq 12 | xargs -IQ echo -n '- ')| nl
     1  1000974 1000886 1000912 1000919 1000909 1000210 1000884 1000934 1000918 1000809 1000232 1000882
     2  2000882 2000844 2000871 2000873 2000900 2000877 2000972 2000872 2000892 2000889 2000940 2000900
     3  4001843 4001887 4001895 4001879 4001897 4001944 4001884 4001789 4001887 4001933 4001861 4001892
     4  5001852 5002854 5001789 5001119 5001804 5001199 5002033 5001865 5001855 5001240 5001699 8002247
     5  5001912 5001350 5001526 5001117 5001587 5001393 5001721 5001736 5001386 5001940 5001315 16005698
     6  5001831 5001398 5001579 5001788 5001121 5001659 5001154 5001189 5001680 5001492 5001256 32010333
     7  5001827 5001502 5001223 5001635 5001771 5001462 5001705 5001907 5001924 5001089 5001245 64001797
     8  5001808 5001641 5001653 5001074 5001103 5001793 5001257 5001419 5001177 5001313 5001577 128002932
     9  5001756 5001215 5001764 5001742 5001105 5001368 5001736 5001615 5001722 5001501 5001295 256005454
    10  5001742 5001887 5001860 5001927 5001907 5001834 5001907 5001897 5001887 5001854 5001995 512010965
    11  5001809 5001556 5001572 5001300 5001800 5001833 5001119 5001134 5001617 5001626 5001291 1453223436
--//取出ela= NNNN的数值。
--//最大12个ITL槽为1组,开始1秒,然后2秒,然后4秒,然后5秒,最后1个ITL等待秒数是 2^(迭代次数-1).再然后都是5秒,最后1个ITL等待秒数
--//总是 2^(迭代次数-1),在迭代10次以后,第11次迭代,其它ITL等待5秒,最后1个ITL槽无限等待下去.

$ grep "^WAIT.*TX" /u01/app/oracle/diag/rdbms/book/book/trace/book_ora_13127.trc |awk '{print  $10}' |paste -sd'+' | bc | xargs -IQ echo Q/1000000 | bc -l
2993.445351
--//总共等待2993.445351秒.这是我看以前链接的疑惑。

--//最早出现:
--//WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 1000974 name|mode=1415053316 usn<<16 | slot=2752525 sequence=4 obj#=90592 tim=1698716555273345
--//tim=1698716555273345

$ xdate 1698716555273345/1000000 1
2023-10-31 09:42:35.273345000

D:\> c:\windows\system32\date  -d "1970-01-01 00:00:00 UTC 1698716555 seconds" +"%Y-%m-%d %T"
2023-10-31 09:42:35

--//trunc(sysdate)+10/24+32/1440+30/86400 == 2023/10/31 10:32:30 == timestamp'2023-10-31 10:32:30'
--//从出现enq: TX - allocate ITL entry到结束测试的时间间隔
--//(18+32)*60+30-35 = 2995,还给加上1秒. 实际上是2996秒.

--//换一个思路,在3000秒sleep里面,扣除(168-153)/5,以及35-168/5 = 1.4秒。
--//3000-(168-153)/5 -(35-168/5) = 2995.6,有将近2.2秒的误差,应该在其它方面的消耗,在正常范围。

--//trunc(sysdate)+09/24+41/1440+59/86400 == 2023/10/31 09:41:59 == timestamp'2023-10-31 09:41:59'
--//trunc(sysdate)+10/24+32/1440+30/86400 == 2023/10/31 10:32:30 == timestamp'2023-10-31 10:32:30'
--//总共监测 (19+32)*60+30-59 = 3031秒。实际上等待ITL153回话的事务完成(看后面的解析),释放对应ITL槽。
--//3000+35-(168-153)/5 = 3032秒,非常接近。

--//ITL等待检测的伪代码如下:
iteration = 0
LOOP
  iteration++
  FOR i IN itl.FIRST..itl.LAST
  LOOP
    EXIT WHEN itl(i) IS FREE
    IF i <> itl.LAST THEN
        WAIT ON itl(i) FOR min(power(2,iteration-1),5) SECONDS
    ELSIF iteration <= 10 THEN
        WAIT ON itl(i) FOR power(2,iteration-1) SECONDS
    ELSE
        WAIT ON itl(i) FOREVER
    END IF
  END LOOP
  EXIT WHEN free_itl_found
END LOOP

SYS@book> @wcy trunc(sysdate)+09/24+41/1440+59/86400 trunc(sysdate)+10/24+32/1440+30/86400  "event='enq: TX - allocate ITL entry'"

-- Display ASH Wait Chain Signatures script v0.7 by Tanel Poder ( http://blog.tanelpoder.com )
%This     SECONDS        AAS WAIT_CHAIN                                                                       FIRST_SEEN          LAST_SEEN
------ ---------- ---------- -------------------------------------------------------------------------------- ------------------- -------------------
  83%        2472         .8 -> 196,31,@1=>46,71,@1=>enq: TX - allocate ITL entry -> [idle blocker 1,196,31]  2023-10-31 09:42:45 2023-10-31 10:32:29
   2%          47          0 -> 180,21,@1=>46,71,@1=>enq: TX - allocate ITL entry -> [idle blocker 1,180,21]  2023-10-31 09:42:43 2023-10-31 10:08:11
   2%          47          0 -> 30,21,@1=>46,71,@1=>enq: TX - allocate ITL entry -> [idle blocker 1,30,21]    2023-10-31 09:42:36 2023-10-31 10:07:36
   2%          47          0 -> 207,39,@1=>46,71,@1=>enq: TX - allocate ITL entry -> [idle blocker 1,207,39]  2023-10-31 09:42:44 2023-10-31 10:08:16
   2%          47          0 -> 63,27,@1=>46,71,@1=>enq: TX - allocate ITL entry -> [idle blocker 1,63,27]    2023-10-31 09:42:41 2023-10-31 10:08:01
   2%          47          0 -> 373,25,@1=>46,71,@1=>enq: TX - allocate ITL entry -> [idle blocker 1,373,25]  2023-10-31 09:42:34 2023-10-31 10:07:26
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   2%          47          0 -> 406,25,@1=>46,71,@1=>enq: TX - allocate ITL entry -> [idle blocker 1,406,25]  2023-10-31 09:42:39 2023-10-31 10:07:51
   2%          47          0 -> 130,43,@1=>46,71,@1=>enq: TX - allocate ITL entry -> [idle blocker 1,130,43]  2023-10-31 09:42:37 2023-10-31 10:07:41
   2%          47          0 -> 16,33,@1=>46,71,@1=>enq: TX - allocate ITL entry -> [idle blocker 1,16,33]    2023-10-31 09:42:38 2023-10-31 10:07:46
   2%          47          0 -> 380,39,@1=>46,71,@1=>enq: TX - allocate ITL entry -> [idle blocker 1,380,39]  2023-10-31 09:42:40 2023-10-31 10:07:56
   2%          46          0 -> 84,13,@1=>46,71,@1=>enq: TX - allocate ITL entry -> [idle blocker 1,84,13]    2023-10-31 09:42:35 2023-10-31 10:07:31
   2%          46          0 -> 109,25,@1=>46,71,@1=>enq: TX - allocate ITL entry -> [idle blocker 1,109,25]  2023-10-31 09:42:42 2023-10-31 10:08:06
12 rows selected.
--//前面11个槽47秒,很容易验证 1+2+4+5*8 = 47.
--//阻塞会话的sid是 196 180 30 207 63 373 406 130 16 380 84 109.
--//下划线的FIRST_SEEN最小.

$ awk '/ITL/{print }' /tmp/itl.txt | head | nl
     1  ITL1         96         29 11764                    DEDICATED 11797
     2  ITL2         56         39 11766                    DEDICATED 11795
     3  ITL3         38         39 11767                    DEDICATED 11796
     4  ITL4         80         27 11770                    DEDICATED 11800
     5  ITL5        129         35 11771                    DEDICATED 11808
     6  ITL6        117         27 11774                    DEDICATED 11803
     7  ITL7        235         17 11775                    DEDICATED 11811
     8  ITL8        178         33 11777                    DEDICATED 11818
     9  ITL9        160         21 11779                    DEDICATED 11817
    10  ITL10        148         27 11781                    DEDICATED 11815
--//我按照顺序执行的,ITL1的sid=96等于插入1的会话.

$ awk '/ITL/{print $2}' /tmp/itl.txt | egrep  -n "^196$|^180$|^30$|^207$|^63$|^373$|^406$|^130$|^16$|^380$|^84$|^109$"
142:373
~~~~~~~~
143:84
144:30
145:130
146:16
147:406
148:380
149:63
150:109
151:180
152:207
153:196
--//下划线的行相当于使用ITL142的会话.换一个写法可以验证我的判断.

$ awk '/ITL/{print $2,$1}' /tmp/itl.txt | egrep  -n "^196 |^180 |^30 |^207 |^63 |^373 |^406 |^130 |^16 |^380 |^84 |^109 "
142:373 ITL142
143:84 ITL143
144:30 ITL144
145:130 ITL145
146:16 ITL146
147:406 ITL147
148:380 ITL148
149:63 ITL149
150:109 ITL150
151:180 ITL151
152:207 ITL152
153:196 ITL153
--//前面都能对上.如果你结合前面@wcy的输出,可以推断ITL槽从小到大看看那个槽没有事务就是使用它.
--//将@wcy的输出保存为/tmp/itl2.txt

$ grep TX /tmp/itl2.txt | sort -k16 | awk '{print $5}' | sed 's/,.*$//'
373
84
30
130
16
406
380
63
109
180
207
196
--//前面说明sort -k16按照FIRST_SEEN的时分秒排序,然后awk '{print $5}'取出阻塞的会话部分,sed 's/,.*$//'删除后面多余的部分从,开始.
--//顺序完全跟前面的对上.
--//我不知道出现阻塞时,随机选取1段ITL槽尝试还是别的,感觉是随机选择.最大选择12个ITL槽,然后轮询探查.
--//或者是与登陆的某个参数有关.

5.转储索引看看:
SYS@book> @ seg2 scott.il_01
SEG_MB OWNER SEGMENT_NAME SEGMENT_TYPE SEG_TABLESPACE_NAME BLOCKS HDRFIL HDRBLK
------ ----- ------------ ------------ ------------------- ------ ------ ------
     0 SCOTT IL_01        INDEX        USERS                    8      4    690

SYS@book> alter system dump datafile 4 block 690;
System altered.

Block header dump:  0x010002b3
 Object id on Block? Y
 seg/obj: 0x161e0  csc: 0x03.1772299e  itc: 169  flg: E  typ: 2 - INDEX
     brn: 0  bdba: 0x10002b0 ver: 0x01 opc: 0
     inc: 0  exflg: 0

 Itl           Xid                  Uba         Flag  Lck        Scn/Fsc
0x01   0x0000.000.00000000  0x00000000.0000.00  ----    0  fsc 0x0000.00000000
0x02   0x007a.00f.00000004  0x00c00f2a.0001.14  --U-    1  fsc 0x0000.177229a5
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
0x03   0x001f.001.00000005  0x00c013e6.0002.38  C---    0  scn 0x0003.17722733
0x04   0x0035.015.00000004  0x00c00ade.0001.0f  C---    0  scn 0x0003.17722737
0x05   0x0074.019.00000004  0x00c00ec4.0004.2c  C---    0  scn 0x0003.1772273b
0x06   0x0057.008.00000005  0x00c00cf2.0004.17  C---    0  scn 0x0003.1772273f
0x07   0x000f.002.00000007  0x00c00775.0006.2f  C---    0  scn 0x0003.17722743
0x08   0x000e.000.00000007  0x00c00762.000e.14  C---    0  scn 0x0003.17722747
0x09   0x0046.00b.00000004  0x00c00bed.0001.12  C---    0  scn 0x0003.1772274b
0x0a   0x009c.00a.00000004  0x00c01142.0005.12  C---    0  scn 0x0003.1772274f
0x0b   0x0015.010.00000004  0x00c00859.0001.28  C---    0  scn 0x0003.17722753
0x0c   0x0053.011.00000004  0x00c00cbc.0001.2c  C---    0  scn 0x0003.17722757
0x0d   0x003b.010.00000004  0x00c00b38.0001.32  C---    0  scn 0x0003.1772275c
0x0e   0x0048.007.00000004  0x00c00c08.0001.1e  C---    0  scn 0x0003.17722760
0x0f   0x001a.014.00000004  0x00c00922.0007.12  C---    0  scn 0x0003.17722764
0x10   0x0018.019.00000004  0x00c00909.0001.25  C---    0  scn 0x0003.17722768
0x11   0x001e.010.00000004  0x00c0096c.0001.0e  C---    0  scn 0x0003.1772276c
0x12   0x003f.004.00000004  0x00c00b79.0001.05  C---    0  scn 0x0003.17722770
0x13   0x0041.004.00000004  0x00c00b98.0001.25  C---    0  scn 0x0003.17722774
0x14   0x0030.015.00000004  0x00c00a85.0002.09  C---    0  scn 0x0003.17722778
0x15   0x0092.01c.00000004  0x00c010a7.0004.26  C---    0  scn 0x0003.1772277c
0x16   0x0089.009.00000004  0x00c0101c.0001.1d  C---    0  scn 0x0003.17722780
0x17   0x00a0.004.00000004  0x00c0118e.0001.0a  C---    0  scn 0x0003.17722784
0x18   0x0085.005.00000004  0x00c00fda.0001.0c  C---    0  scn 0x0003.17722788
0x19   0x0095.013.00000004  0x00c010d9.0001.1d  C---    0  scn 0x0003.1772278c
0x1a   0x0062.017.00000004  0x00c00daf.0006.11  C---    0  scn 0x0003.17722790
0x1b   0x000d.008.00000006  0x00c00759.0002.21  C---    0  scn 0x0003.17722794
0x1c   0x006e.014.00000004  0x00c00e63.0002.22  C---    0  scn 0x0003.17722798
0x1d   0x0081.005.00000004  0x00c01501.0003.05  C---    0  scn 0x0003.1772279c
0x1e   0x005b.00c.00000004  0x00c00d38.0001.26  C---    0  scn 0x0003.177227a1
0x1f   0x0008.013.00000731  0x00c000f2.03d1.12  C---    0  scn 0x0003.177227a5
0x20   0x005a.007.00000005  0x00c00d24.0008.22  C---    0  scn 0x0003.177227a9
0x21   0x0037.007.00000005  0x00c00af2.0007.11  C---    0  scn 0x0003.177227ad
0x22   0x0019.01c.00000004  0x00c01309.0005.19  C---    0  scn 0x0003.177227b1
0x23   0x0058.015.00000004  0x00c00d0b.0001.0d  C---    0  scn 0x0003.177227b5
0x24   0x0020.017.00000004  0x00c00982.0006.12  C---    0  scn 0x0003.177227b9
0x25   0x0091.013.00000004  0x00c0109b.0001.2c  C---    0  scn 0x0003.177227bd
0x26   0x0054.016.00000004  0x00c00cc9.0001.08  C---    0  scn 0x0003.177227c1
0x27   0x006a.006.00000004  0x00c00e2e.0001.2a  C---    0  scn 0x0003.177227c5
0x28   0x0059.01f.00000004  0x00c01422.0008.04  C---    0  scn 0x0003.177227c9
0x29   0x0028.012.00000004  0x00c00a04.0004.07  C---    0  scn 0x0003.177227cd
0x2a   0x0011.013.00000006  0x00c0081b.0002.16  C---    0  scn 0x0003.177227d1
0x2b   0x0038.004.00000005  0x00c00b02.0009.20  C---    0  scn 0x0003.177227d5
0x2c   0x004f.021.00000004  0x00c00c72.0012.25  C---    0  scn 0x0003.177227d9
0x2d   0x0039.014.00000005  0x00c00b1a.000d.1d  C---    0  scn 0x0003.177227dd
0x2e   0x0026.008.00000004  0x00c009e9.0001.0f  C---    0  scn 0x0003.177227e1
0x2f   0x0001.004.0000062e  0x00c008e3.0331.15  C---    0  scn 0x0003.177227e6
0x30   0x0021.01b.00000004  0x00c00992.0008.0f  C---    0  scn 0x0003.177227ea
0x31   0x008d.021.00000004  0x00c003b1.0004.3a  C---    0  scn 0x0003.177227ee
0x32   0x0097.002.00000005  0x00c010f2.000b.2e  C---    0  scn 0x0003.177227f2
0x33   0x000c.00f.00000005  0x00c0074e.0002.07  C---    0  scn 0x0003.177227f6
0x34   0x0072.00e.00000004  0x00c00ea8.0001.2f  C---    0  scn 0x0003.177227fa
0x35   0x002e.013.00000004  0x00c00a6e.0001.34  C---    0  scn 0x0003.177227fe
0x36   0x0084.003.00000004  0x00c00fcd.0001.3a  C---    0  scn 0x0003.17722802
0x37   0x0073.003.00000005  0x00c004c7.0004.1c  C---    0  scn 0x0003.17722806
0x38   0x006b.00c.00000004  0x00c0133a.0004.30  C---    0  scn 0x0003.1772280a
0x39   0x0049.013.00000004  0x00c00c12.0006.0b  C---    0  scn 0x0003.1772280e
0x3a   0x0051.01f.00000004  0x00c00c92.000c.12  C---    0  scn 0x0003.17722813
0x3b   0x0044.017.00000004  0x00c00bc2.0007.1c  C---    0  scn 0x0003.17722818
0x3c   0x0082.006.00000004  0x00c013fe.0002.2b  C---    0  scn 0x0003.1772281d
0x3d   0x005c.01f.00000004  0x00c00d49.0006.16  C---    0  scn 0x0003.17722821
0x3e   0x006f.014.00000004  0x00c00439.0002.0a  C---    0  scn 0x0003.17722825
0x3f   0x002d.005.00000005  0x00c0016b.000b.27  C---    0  scn 0x0003.17722829
0x40   0x007e.008.00000005  0x00c00f63.0010.08  C---    0  scn 0x0003.1772282d
0x41   0x008b.006.00000005  0x00c01032.0008.12  C---    0  scn 0x0003.17722831
0x42   0x004d.014.00000004  0x00c00c5d.0001.2e  C---    0  scn 0x0003.17722835
0x43   0x0032.013.00000004  0x00c00aa9.0001.1b  C---    0  scn 0x0003.17722839
0x44   0x0047.000.00000004  0x00c0041c.0002.2a  C---    0  scn 0x0003.1772283d
0x45   0x0098.008.00000005  0x00c01104.0005.23  C---    0  scn 0x0003.17722841
0x46   0x006d.010.00000004  0x00c00e5e.0006.28  C---    0  scn 0x0003.17722845
0x47   0x0034.013.00000004  0x00c00acb.0001.23  C---    0  scn 0x0003.17722849
0x48   0x0016.021.00000004  0x00c00862.0009.13  C---    0  scn 0x0003.1772284e
0x49   0x0042.005.00000004  0x00c00ba9.0001.03  C---    0  scn 0x0003.17722852
0x4a   0x0010.018.00000006  0x00c01371.0005.38  C---    0  scn 0x0003.17722856
0x4b   0x008a.002.00000004  0x00c0102d.0001.31  C---    0  scn 0x0003.1772285a
0x4c   0x002c.010.00000004  0x00c00a43.0005.10  C---    0  scn 0x0003.1772285e
0x4d   0x004e.00d.00000004  0x00c00c6c.0001.0a  C---    0  scn 0x0003.17722862
0x4e   0x0099.00b.00000004  0x00c01118.0001.1b  C---    0  scn 0x0003.17722866
0x4f   0x0045.00f.00000004  0x00c00bd2.0005.11  C---    0  scn 0x0003.1772286b
0x50   0x00a1.012.00000004  0x00c0119e.0004.0a  C---    0  scn 0x0003.1772286f
0x51   0x004a.01b.00000004  0x00c00c23.0008.34  C---    0  scn 0x0003.17722873
0x52   0x0096.010.00000004  0x00c010ea.0001.11  C---    0  scn 0x0003.17722877
0x53   0x0070.01f.00000004  0x00c00e82.0007.12  C---    0  scn 0x0003.1772287b
0x54   0x007b.020.00000004  0x00c00f33.0007.0d  C---    0  scn 0x0003.1772287f
0x55   0x0006.009.000007a7  0x00c005e2.036e.17  C---    0  scn 0x0003.17722883
0x56   0x0066.001.00000004  0x00c00dea.0001.3b  C---    0  scn 0x0003.17722887
0x57   0x009d.013.00000004  0x00c01152.0008.0f  C---    0  scn 0x0003.1772288b
0x58   0x004b.009.00000004  0x00c00c39.0001.3e  C---    0  scn 0x0003.1772288f
0x59   0x00a8.015.00000004  0x00c01202.0007.10  C---    0  scn 0x0003.17722893
0x5a   0x0090.007.00000005  0x00c01085.0007.05  C---    0  scn 0x0003.17722898
0x5b   0x0093.015.00000005  0x00c010b2.000a.18  C---    0  scn 0x0003.1772289c
0x5c   0x008f.010.00000004  0x00c0107a.0001.1f  C---    0  scn 0x0003.177228a0
0x5d   0x0076.014.00000004  0x00c00ee2.0002.14  C---    0  scn 0x0003.177228a4
0x5e   0x0071.020.00000004  0x00c01227.0002.1e  C---    0  scn 0x0003.177228a8
0x5f   0x003e.00c.00000005  0x00c00b64.0006.18  C---    0  scn 0x0003.177228ac
0x60   0x00a4.002.00000004  0x00c011c8.0001.33  C---    0  scn 0x0003.177228b0
0x61   0x008c.008.00000005  0x00c01046.000c.29  C---    0  scn 0x0003.177228b4
0x62   0x00a7.00b.00000004  0x00c011f8.0001.26  C---    0  scn 0x0003.177228b8
0x63   0x005f.00f.00000004  0x00c00d72.0009.13  C---    0  scn 0x0003.177228bc
0x64   0x0080.003.00000004  0x00c00f8a.0001.0c  C---    0  scn 0x0003.177228c0
0x65   0x005e.005.00000004  0x00c00d68.0001.1a  C---    0  scn 0x0003.177228c4
0x66   0x0079.014.00000004  0x00c00f18.0001.33  C---    0  scn 0x0003.177228c9
0x67   0x0036.015.00000004  0x00c00aec.0001.0c  C---    0  scn 0x0003.177228cd
0x68   0x006c.015.00000004  0x00c00e46.0002.0c  C---    0  scn 0x0003.177228d1
0x69   0x0014.01b.00000006  0x00c0084f.0002.30  C---    0  scn 0x0003.177228d5
0x6a   0x0075.015.00000004  0x00c00ede.0001.31  C---    0  scn 0x0003.177228d9
0x6b   0x0067.006.00000004  0x00c0131d.0002.1e  C---    0  scn 0x0003.177228dd
0x6c   0x0007.007.0000062c  0x00c000e3.02ca.0b  C---    0  scn 0x0003.177228e1
0x6d   0x0052.018.00000004  0x00c00ca4.0002.10  C---    0  scn 0x0003.177228e6
0x6e   0x005d.006.00000005  0x00c00d52.0005.17  C---    0  scn 0x0003.177228ea
0x6f   0x0043.00a.00000004  0x00c00bb9.0001.1f  C---    0  scn 0x0003.177228ee
0x70   0x0065.01a.00000004  0x00c00ddc.0008.1e  C---    0  scn 0x0003.177228f2
0x71   0x003d.01b.00000004  0x00c00b54.0002.21  C---    0  scn 0x0003.177228f6
0x72   0x009a.00e.00000004  0x00c01128.0001.2e  C---    0  scn 0x0003.177228fa
0x73   0x0002.009.00000710  0x00c00094.02ba.1f  C---    0  scn 0x0003.177228fe
0x74   0x0033.006.00000005  0x00c00ab4.0003.17  C---    0  scn 0x0003.17722902
0x75   0x00a6.008.00000004  0x00c011e3.0002.06  C---    0  scn 0x0003.17722907
0x76   0x0024.004.00000004  0x00c009cd.0001.1c  C---    0  scn 0x0003.1772290b
0x77   0x007d.01e.00000004  0x00c00f53.0007.1f  C---    0  scn 0x0003.1772290f
0x78   0x007c.003.00000005  0x00c00f46.0002.3c  C---    0  scn 0x0003.17722913
0x79   0x0040.00a.00000004  0x00c00b8b.0001.1c  C---    0  scn 0x0003.17722917
0x7a   0x0068.011.00000004  0x00c013a0.0003.1f  C---    0  scn 0x0003.1772291b
0x7b   0x0013.00e.00000006  0x00c0083a.0002.06  C---    0  scn 0x0003.1772291f
0x7c   0x0005.009.00000715  0x00c0021c.04b4.3d  C---    0  scn 0x0003.17722923
0x7d   0x0088.012.00000004  0x00c01002.0006.16  C---    0  scn 0x0003.17722927
0x7e   0x0029.017.00000004  0x00c00a12.0006.1e  C---    0  scn 0x0003.1772292b
0x7f   0x009b.020.00000004  0x00c0113c.0001.23  C---    0  scn 0x0003.1772292f
0x80   0x007f.00a.00000004  0x00c00f7a.0001.1f  C---    0  scn 0x0003.17722933
0x81   0x000b.004.00000007  0x00c00521.000d.28  C---    0  scn 0x0003.17722937
0x82   0x0003.004.00000706  0x00c000a5.0433.17  C---    0  scn 0x0003.1772293b
0x83   0x0009.005.00000ac0  0x00c00103.0401.1f  C---    0  scn 0x0003.1772293f
0x84   0x0060.007.00000004  0x00c00d8a.0001.0e  C---    0  scn 0x0003.17722943
0x85   0x009e.009.00000004  0x00c0116c.0001.09  C---    0  scn 0x0003.17722948
0x86   0x0094.01e.00000004  0x00c013dd.0004.04  C---    0  scn 0x0003.1772294c
0x87   0x0064.00a.00000004  0x00c00dc3.0002.33  C---    0  scn 0x0003.17722950
0x88   0x0086.00c.00000004  0x00c00fe2.0004.13  C---    0  scn 0x0003.17722954
0x89   0x004c.005.00000004  0x00c00c48.0001.23  C---    0  scn 0x0003.17722958
0x8a   0x0022.00e.00000004  0x00c012bd.0004.1b  C---    0  scn 0x0003.1772295c
0x8b   0x0069.006.00000004  0x00c00e19.0001.35  C---    0  scn 0x0003.17722960
0x8c   0x009f.015.00000004  0x00c01172.0007.10  C---    0  scn 0x0003.17722964
0x8d   0x0027.00a.00000005  0x00c009f9.000c.2c  C---    0  scn 0x0003.17722968
0x8e   0x002b.00c.00000004  0x00c00a3c.0001.19  C---    0  scn 0x0003.1772296c
0x8f   0x002a.00d.00000004  0x00c00a22.001b.13  C---    0  scn 0x0003.17722970  --//slot=2752525 = /2^16  %2^16 = 42,13 = 0x2a000d
0x90   0x001d.012.00000004  0x00c00959.0001.14  C---    0  scn 0x0003.17722974  --//slot=1900562 = /2^16  %2^16 = 29,18 = 0x1d0012
0x91   0x0061.006.00000004  0x00c00d98.0001.2c  C---    0  scn 0x0003.17722978  --//slot=6356998 = /2^16  %2^16 = 97,6 = 0x610006
0x92   0x00a3.00e.00000004  0x00c011b2.0005.14  C---    0  scn 0x0003.1772297c  --//slot=10682382 = /2^16  %2^16 = 163,14 = 0xa3000e
0x93   0x001c.017.00000004  0x00c0094b.0001.2b  C---    0  scn 0x0003.17722980  --//slot=1835031 = /2^16  %2^16 = 28,23 = 0x1c0017
0x94   0x0087.005.00000004  0x00c00ffa.0001.19  C---    0  scn 0x0003.17722984  --//slot=8847365 = /2^16  %2^16 = 135,5 = 0x870005
0x95   0x0063.003.00000004  0x00c00db8.0001.28  C---    0  scn 0x0003.17722989  --//slot=6488067 = /2^16  %2^16 = 99,3 = 0x630003
0x96   0x0056.019.00000004  0x00c00108.0002.18  C---    0  scn 0x0003.1772298d  --//slot=5636121 = /2^16  %2^16 = 86,25 = 0x560019
0x97   0x0017.015.00000004  0x00c00878.0001.2f  C---    0  scn 0x0003.17722991  --//slot=1507349 = /2^16  %2^16 = 23,21 = 0x170015
0x98   0x0055.018.00000004  0x00c00cd2.0002.2f  C---    0  scn 0x0003.17722995  --//slot=5570584 = /2^16  %2^16 = 85,24 = 0x550018
0x99   0x0023.005.00000004  0x00c009b8.0001.32  C---    0  scn 0x0003.17722999  --//slot=2293765 = /2^16  %2^16 = 35,5 = 0x230005
0x9a   0x0031.015.00000004  0x00c00a92.0009.1c  C---    0  scn 0x0003.1772299d  --//slot=3211285 = /2^16  %2^16 = 49,21 = 0x310015
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0x9b   0x0025.011.00000004  0x00c0011d.0002.12  --U-    1  fsc 0x0000.177229a1
0x9c   0x00a9.007.00000004  0x00c0051c.0002.30  --U-    1  fsc 0x0000.177229a9
0x9d   0x0004.007.00000639  0x00c000b3.034d.34  --U-    1  fsc 0x0000.177229ad
0x9e   0x0083.00a.00000004  0x00c00fbd.0001.1a  --U-    1  fsc 0x0000.177229b1
0x9f   0x001b.016.00000004  0x00c00932.0006.15  --U-    1  fsc 0x0000.177229b5
0xa0   0x00a2.00a.00000004  0x00c011aa.0001.31  --U-    1  fsc 0x0000.177229b9
0xa1   0x00a5.01c.00000004  0x00c011d2.0009.16  --U-    1  fsc 0x0000.177229bd
0xa2   0x008e.003.00000005  0x00c01062.0007.12  --U-    1  fsc 0x0000.177229c1
0xa3   0x002f.012.00000004  0x00c00a75.0004.26  --U-    1  fsc 0x0000.177229c5
0xa4   0x0012.017.00000006  0x00c0082b.0002.3b  --U-    1  fsc 0x0000.177229c9
0xa5   0x000a.01d.000053ea  0x00c00282.0f90.2a  --U-    1  fsc 0x0000.177229cd
0xa6   0x0050.016.00000004  0x00c00c83.0012.0a  --U-    1  fsc 0x0000.177229d1
0xa7   0x003a.00c.00000004  0x00c00b2a.0001.21  --U-    1  fsc 0x0000.177229d5
0xa8   0x0078.003.00000005  0x00c00f0d.0008.0e  --U-    1  fsc 0x0000.177229d9
0xa9   0x003c.00e.00000004  0x00c00b4b.0001.2a  --U-    1  fsc 0x0000.177229dd
--//注意看下划线最后事务使用该ITL槽完成插入.
--//WAIT #140211912589984: nam='enq: TX - allocate ITL entry' ela= 1000882 name|mode=1415053316 usn<<16 | slot=3211285 sequence=4 obj#=90592 tim=1698716566359329
--//3211285 = /2^16  %2^16 (Type | Mode) = 49,21 = 0x310015
--//0x9a = 154,使用154 ITL槽,我前面ITL153,相差1,这个很好理解,实际索引块的第1个itl槽是用来做索引分裂的.dml事务使用从itl=0x02开始.

--//还有一个细节,虽然是等待itl=0x9a的事务结束释放,但是实际上该事务使用的ITL槽是0x02。
0x02   0x007a.00f.00000004  0x00c00f2a.0001.14  --U-    1  fsc 0x0000.177229a5
--//你可以从前面@xid的输出确定。
XIDUSN_XIDSLOT_XIDSQN
------------------------------
122.15.4
--//122 = 0x007a
--//也就是oracle在等待itl=0x9a事务槽释放后,还是选择没有使用的scn最小的事务槽,使用它。


$ awk '/ITL/{print $2,$1}' /tmp/itl.txt | egrep  -n "^196 |^180 |^30 |^207 |^63 |^373 |^406 |^130 |^16 |^380 |^84 |^109 "| tail -1
153:196 ITL153

--//转储剩余部分.
Leaf block dump
===============
header address 140323553233420=0x7f9f9f8b4a0c
kdxcolev 0
KDXCOLEV Flags = - - -
kdxcolok 0
kdxcoopc 0x80: opcode=0: iot flags=--- is converted=Y
kdxconco 1
kdxcosdc 0
kdxconro 169
kdxcofbo 374=0x176
kdxcofeo 2096=0x830
kdxcoavs 1722
kdxlespl 0
kdxlende 0
kdxlenxt 0=0x0
kdxleprv 0=0x0
kdxledsz 6
kdxlebksz 4024
row#0[4013] flag: ------, lock: 0, len=11, data:(6):  01 00 02 af 00 00
col 0; len 2; (2):  c1 02
...

row#167[2108] flag: ------, lock: 169, len=12, data:(6):  01 00 02 ae 00 21
col 0; len 3; (3):  c2 02 45
row#168[2096] flag: ------, lock: 2, len=12, data:(6):  01 00 02 af 00 21
col 0; len 3; (3):  c2 02 46
----- end of leaf block dump -----
End dump data blocks tsn: 4 file#: 4 minblk 691 maxblk 691

--//通过bbed观察:
BBED> set dba 4,691
        DBA             0x010002b3 (16777907 4,691)

BBED> map
 File: /mnt/ramdisk/book/users01.dbf (4)
 Block: 691                                   Dba:0x010002b3
------------------------------------------------------------
 KTB Data Block (Index Leaf)
 struct kcbh, 20 bytes                      @0
 struct ktbbh, 4080 bytes                   @20
 struct kdxle, 32 bytes                     @4108
 sb2 kd_off[169]                            @4140
 ub1 freespace[1722]                        @4478
 ub1 rowdata[1928]                          @6200
 ub4 tailchk                                @8188

6.总结:
--//我重复一年前的测试,主要遇到一些不理解问题.我以为如果增值插入就不会出现索引的enq: TX - allocate ITL entry等待,因为这
--//时索引分裂不是50-50,而是90-10,90-10分裂实际上仅仅插入最大值在另外1块,实际上的情况是索引块使用168个ITL槽后,再有事务
--//出现,而索引块还有许多自由空间情况的情况下(索引键值占用空间很小),会出现这样的等待事件,换一句话讲在生产系统很难遇到
--//这样的情况,毕竟要占用168个事务槽呢。

--//除非密集插入提交很慢的情况下,并且增序插入,索引键值偏小的情况下,才有可能遇到这样的情况。

--//还有实际上它并没有使用等待的itl槽,而是最后等待它释放后,选择没有使用的scn最小的事务槽.

7.附上wcy.sql脚本。
$ cat wcy.sql
@ tpt/ash/ash_wait_chains BLOCKING_SESSION||','||BLOCKING_SESSION_SERIAL#||',@'||BLOCKING_INST_ID||'=>'||session_id||','||SESSION_SERIAL#||',@'||inst_id||'=>'||event "&&3"  &&1 &&2

标签:20231027,ITL,scn,10,--,00000004,---,txt
From: https://www.cnblogs.com/lfree/p/17804282.html

相关文章

  • [20231031]Index ITL Limit 4.txt
    [20231031]IndexITLLimit4.txt--//昨天做了IndexITLLimi的测试,参考链接=>[20231027]IndexITLLimit3.txt.--//我想看看这个边界大概在那里,测试看看.1.环境:SCOTT@book>@ver1PORT_STRING        VERSION   BANNER---------------------------------------......
  • [20231023]为什么刷新缓存后输出记录顺序发生变化6.txt
    [20231023]为什么刷新缓存后输出记录顺序发生变化6.txt--//前几天做了单表刷新缓存后输出记录顺序发生变化的情况,测试2个表的情况时遇到一个奇怪的现象。--//我前面的测试18c,如果使用10046跟踪看不到我遇到的情况,我想使用strace跟踪,发现该机器配置使用asm,strace跟踪无法看到一--/......
  • [20231026]enq TX - allocate ITL entry的测试4.txt
    [20231026]enqTX-allocateITLentry的测试4.txt--//以前做过测试,自己竟然有点看不明白,再次验证看看。1.环境:SCOTT@book>@ver1PORT_STRING                   VERSION       BANNER---------------------------------------------------------......
  • [ GitLab ] GitLab 版本升级路线
    https://www.cnblogs.com/yeungchie/必须按照下述的版本依次升级,不能越级更新。1414.0.12>14.3.6>14.9.5>14.10.51515.0.5>15.1.6>15.4.6>15.11.131616.0.x>16.1>16.2.x>16.3>latest参考UpgradingGitLab|GitLab......
  • linux之部署gitlab
    gitlab安装以及使用1.卸载gitlab#先停止服务sudogitlab-ctlstop#卸载gitlabsudoyumremovegitlab-ce-y#删除所有文件sudorm-rf/etc/gitlabsudorm-rf/var/opt/gitlabsudorm-rf/opt/gitlab#清理不再需要的软件包sudoyumautoremove-y2.安装gitlab#......
  • Gitlab搭建
    参考:https://blog.csdn.net/weixin_56270746/article/details/125427722安装依赖#关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld#安装ssh依赖yuminstall-ycurlpolicycoreutilsopenssh-serveropenssh-clients设置gitlab的yum源(使用清华镜像源安装Git......
  • 1api触发gitlab流水线
    是的,通过GitLabAPI,您可以修改文件内容,并在更改后自动触发CI/CD流水线。以下是步骤和示例:1.**修改文件内容**:   使用`RepositoryFilesAPI`更新文件内容。这将为您提供一个提交新文件内容的方式。 示例请求: ```http PUT/projects/:id/repository/fil......
  • 没有可用软件包 gitlab-jh。
    一问题安装gitlab时,提示“没有可用软件包gitlab-jh” 二解决1、yum没有找到对应依赖包,更新epel第三方软件库,运行命令:yuminstall-yepel-release更新完epel第三方软件库后,再次尝试使用yum命令安装对应的软件包2、如果还不行yumupdate更新,时间长一些  ......
  • gitlab--services、environment、inherit
    servicesservices 关键字定义了一个Docker镜像,该镜像在链接到image关键字定义的Docker镜像的 job 期间运行。这允许您在构建期间访问服务镜像。服务镜像可以运行任何应用程序,但最常见的用例是运行数据库容器,例如:MySQLPostgreSQLRedis例如,每次构建项目时,使用现有镜像并将其......
  • gitlab--集成 jfrog artifactory 制品库
    介绍官网之前我们使用制品库的时候,是使用gitlab里的制品:当制品多的时候,就不太适合了,我们可以使用一些专门用来上传制品库的来保存制品安装artifactory使用docker安装下载镜像dockerpulltruecharts/artifactory-oss:7.41.13启动镜像dockerrun--namejfrog-oss-d-vdata_a......