背景
之前,我们了解了lmd进程一些概念,这儿我们学习下另一个重要RAC后台进程,LMS进程。
结论
1,如果lms出现故障,会导致dml事务无法提交,即提交或回退hang住;并且远端节点的DML操作会HANG住
2,lms进程的等待事件和lmd进程的相似,是gcs remote message
引申,即和远端节点的LMS进程进行通讯
3,lms进程出现故障,会引发ipc timeout,如果ipc timeout达到一定期限,会导致RAC节点重启
4,lms进程恢复正常后,由于远端的变更数据积压,需要在对应节点进行实例恢复,以达到数据一致性的要求
5,性能指标gcs messages sent 也是反映数据库DML或活动是否频繁的一个维度,如果其值很高,说明数据库非常繁忙
当然我们说这只是一种维度,不是绝值,毕竟数据库是非常复杂的,要由多个进程协作交互方可正常运行
但它为我们分析问题提供一种思路
6,暂未发现LMS相关的隐含参数,当然也可能是我查找方法不对或理解不深,还要继续学习
7, 10706 event可以分析跟瞎RAC全局队列锁的获取过程
其操作过程:
SQL> select program,spid,pid from v$process where addr='0000000083A62BD0';
PROGRAM SPID PID
------------------------------------------------ ------------ ----------
oracle@jingfa1 (TNS V1-V3) 6496 27
SQL> oradebug setospid 6496
Oracle pid: 27, Unix process pid: 6496, image: oracle@jingfa1 (TNS V1-V3)
SQL> oradebug event 10706 trace name context forever,level 12
Statement processed.
SQL> insert into t_lock values(18,18);
1 row created.
SQL> oradebug event 10706 trace name context off
Statement processed.
SQL> oradebug tracefile_name
/u01/app/oracle/admin/jingfa/udump/jingfa1_ora_6496.trc
测试
----oracle version
SQL> select * from v$version where rownum=1;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
---lms含义
The LMS process maintains records of the data file statuses and each cached block by recording information in a Global Resource Directory (GRD). The LMS process also controls the flow of messages to remote instances and manages global data block access and transmits block images between the buffer caches of different instances. This processing is part of the Cache Fusion feature.
1,在RAC的GRD即全局资源目录中,维护数据文件的状况,并记录全局缓存中数据块的信息
2,控制发送到远端节点的消息
3,管理在节点间传输数据块以及缓存数据块
4,它也是RAC机制CACHE FUSION功能一部分,也就是没有LMS,CACHE FUSION无从谈起,可见其重要性
----了解lms的作用
SQL> select addr,program,username,pid,spid from v$process where username='oracle' and lower(program) like '%lms%';
ADDR PROGRAM USERNAME PID SPID
---------------- ------------------------------------------------ --------------- ---------- ------------
0000000083A58DB0 oracle@jingfa1 (LMS0) oracle 7 30504
--hang lms
SQL> oradeb