Oracle锁的模式和10704事件跟踪对比(9)

SQL> select object_name from dba_objects where object_id in (89012,89065,89050);
OBJECT_NAME
--------------------------------------------------------------------------------------------------------------------------------
TEXT_T1                              2号TM锁指向TEXT_T1;
SYS_JOURNAL_89050          4号TM锁指向临时对象SYS_JOURNAL_89050,执行结束前释放锁和删除对象
IND_TEXT02                        6号OD锁指向rebuild索引IND_TEXT02

Session 1
SQL> alter session set events '10704 trace name context off';

Linux
[oracle@localhost trace]$ more orcl_ora_43002.trc

TM-00015bb4-00000000 mode=2      指向TEXT_T1  开头持有结尾释放。持有2号TM锁,不阻塞DML操作

TM-00000012-00000000 mode=3      指向OBJ$    持有再释放 重复三次
TM-0000001c-00000000 mode=3      指向CON$    持有再释放 重复两次
TM-00015be5-00000000 mode=4      指向SYS_JOURNAL_89050    持有再释放 重复两次
TM-0000000e-00000000 mode=3      指向SEG$    持有再释放 重复十一次
TM-00000014-00000000 mode=3      指向ICOL$  持有再释放 重复两次
TM-00000013-00000000 mode=3      指向IND$    持有再释放 重复四次
TM-00000004-00000000 mode=3      指向TAB$    末尾持有再释放 重复两次
TM-00000015-00000000 mode=3      指向COL$    持有再释放 重复两次
TM-00000020-00000000 mode=3      指向CCOL$  持有再释放 重复三次
TM-0000001f-00000000 mode=3      指向CDEF$  持有再释放 重复四次
TM-000001c7-00000000 mode=3      指向IND_STATS$  持有再释放 重复三次
TM-00000092-00000000 mode=3      指向IND_ONLINE$ 持有再释放 重复三次
TM-000000b4-00000000 mode=3      指向INDREBUILD$ 持有再释放 重复三次
TM-000001eb-00000000 mode=3      指向WRI$_OPTSTAT_IND_HISTORY
TM-000137d9-00000000 mode=3      指向SDO_GEOR_DDL__TABLE$$  持有再释放 重复两次
TM-000000db-00000000 mode=3      指向OBJECT_USAGE
TM-000001c9-00000000 mode=3      指向CACHE_STATS_1$
TM-00000089-00000000 mode=3      指向COM$
TM-000001c0-00000000 mode=3      指向HIST_HEAD$
TM-000000b6-00000000 mode=3      指向COMPRESSION$
TM-00000282-00000000 mode=3      指向SUMDELTA$
TM-0000027f-00000000 mode=3      指向SUMPARTLOG$
TM-00000286-00000000 mode=3      指向SNAP_LOADERTIME$
TM-000000e1-00000000 mode=3      指向IDL_UB1$
TM-000000e2-00000000 mode=3      指向IDL_CHAR$
TM-000000e3-00000000 mode=3      指向IDL_UB2$
TM-000000e4-00000000 mode=3      指向IDL_SB4$
TM-000000f2-00000000 mode=3      指向NCOMP_DLL$
TM-0000003d-00000000 mode=3      指向OBJAUTH$
TM-00000072-00000000 mode=3      指向ICOLDEP$
TM-00000097-00000000 mode=3      指向JIJOIN$
TM-0000009b-00000000 mode=3      指向JIREFRESHSQL$
TM-0000007b-00000000 mode=3      指向ECOL$
TM-00000053-00000000 mode=3      指向COLTYPE$
TM-00000056-00000000 mode=3      指向SUBCOLTYPE$
TM-00000058-00000000 mode=3      指向NTAB$
TM-00000050-00000000 mode=3      指向LOB$
TM-0000005c-00000000 mode=3      指向REFCON$
TM-0000005f-00000000 mode=3      指向OPQTYPE$

Alter index rebuild online会在TEXT_T1表持有2号TM锁,重建索引完成时释放,期间不会堵塞DML操作,也保证了表的并发性能;
执行中会创建一个SYS_JOURNAL_XXXXX系统临时日志表,用来存放index rebuild 过程中索引变化的记录日志,持有4号TM锁,在TEXT_T1的2号TM锁释放之前进行释放。


TX锁的记录以及加到哪个对象上(按时间先后):
OBJ$:
TX-0005000c-00000a21 mode=6
TX-00050014-00000a22 mode=6
TX-0005000c-00000a21 mode=6
TX-00050014-00000a22 mode=6

CON$:
TX-00050021-00000a21 mode=6

SYS_JOURNAL_89050:
TX-0005001f-00000a1c mode=6
TX-00050004-000008dc mode=6

ICOL$:
TX-00050012-00000a1b mode=6
TX-00050017-00000a21 mode=6

CCOL$:
TX-00050006-00000a21 mode=6
TX-00050016-00000a1c mode=6

SYS_JOURNAL_89050:
TX-00020014-000005fe mode=6
TX-00020009-00000607 mode=6

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/76374180f769292c951d105c76b85824.html