结论:

1,strace -p跟踪lmd进程,是和fd为9及17的2个socket进行通讯

2,这2个socket为

9为socket:[1361566],而17为socket:[1361581]

3,strace的应用关键在于有针性性理解操作系统的函数,比如times,getrusage,poll的含义是什么,你就明白了lmd进程到底在作什么

4, find .|xargs grep -ri "2015-11-10 17:30:32.608" -l获取当前目录是哪个文件字符串2015-11-10 17:30:32.608,仅打印文件名称出来

或者通过strace输出的write函数的write函数也可定位到是写入到lmd trc file

测试

1,获取lmd进程

[oracle@jingfa1 ~]$ ps -ef|grep lmd

oracle    4774     1  0 Nov09 ?        00:01:19 asm_lmd0_+ASM1

oracle   15271     1  0 07:40 ?        00:00:42 ora_lmd0_jingfa1

oracle   17639 17535  0 17:06 pts/3    00:00:00 grep lmd

2,用strace跟踪lmd进程

[oracle@jingfa1 ~]$ strace -p 15271

Process 15271 attached - interrupt to quit

times({tms_utime=3783, tms_stime=445, tms_cutime=0, tms_cstime=0}) = 436476294

getrusage(RUSAGE_SELF, {ru_utime={37, 830248}, ru_stime={4, 459322}, ...}) = 0

getrusage(RUSAGE_SELF, {ru_utime={37, 830248}, ru_stime={4, 459322}, ...}) = 0

getrusage(RUSAGE_SELF, {ru_utime={37, 830248}, ru_stime={4, 459322}, ...}) = 0

getrusage(RUSAGE_SELF, {ru_utime={37, 830248}, ru_stime={4, 459322}, ...}) = 0

times({tms_utime=3783, tms_stime=445, tms_cutime=0, tms_cstime=0}) = 436476294

poll([{fd=9, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=17, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 2, 80) = 0 (Timeout) --fd为9及17,会一直相同的循环使用poll函数

times({tms_utime=3783, tms_stime=445, tms_cutime=0, tms_cstime=0}) = 436476302

getrusage(RUSAGE_SELF, {ru_utime={37, 830248}, ru_stime={4, 459322}, ...}) = 0

getrusage(RUSAGE_SELF, {ru_utime={37, 830248}, ru_stime={4, 459322}, ...}) = 0

times({tms_utime=3783, tms_stime=445, tms_cutime=0, tms_cstime=0}) = 436476302

poll([{fd=9, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=17, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 2, 80) = 0 (Timeout)

3,到对应目录查查上述的fd到底是什么?

可见9为socket:[1361566],而17为socket:[1361581]

[root@jingfa1 fd]# pwd

/proc/15271/fd

[root@jingfa1 fd]# ll

total 0

lr-x------ 1 oracle oinstall 64 Nov 10 17:00 0 -> /dev/null

lr-x------ 1 oracle oinstall 64 Nov 10 17:00 1 -> /dev/null

lrwx------ 1 oracle oinstall 64 Nov 10 17:00 10 -> /u01/app/oracle/product/10.2.0/db_1/dbs/lkinstjingfa1 (deleted)

lr-x------ 1 oracle oinstall 64 Nov 10 17:00 11 -> /dev/zero

lrwx------ 1 oracle oinstall 64 Nov 10 17:00 12 -> /u01/app/oracle/admin/jingfa/adump/ora_15228.aud

lr-x------ 1 oracle oinstall 64 Nov 10 17:00 13 -> /u01/app/oracle/product/10.2.0/db_1/rdbms/mesg/oraus.msb

lr-x------ 1 oracle oinstall 64 Nov 10 17:00 14 -> /dev/zero

lrwx------ 1 oracle oinstall 64 Nov 10 17:00 15 -> /u01/app/oracle/product/10.2.0/db_1/dbs/hc_jingfa1.dat

lrwx------ 1 oracle oinstall 64 Nov 10 17:00 16 -> socket:[1361569]

lrwx------ 1 oracle oinstall 64 Nov 10 17:00 17 -> socket:[1361581]

lr-x------ 1 oracle oinstall 64 Nov 10 17:00 18 -> /u01/app/oracle/product/10.2.0/db_1/rdbms/mesg/oraus.msb

l-wx------ 1 oracle oinstall 64 Nov 10 17:00 2 -> /u01/app/oracle/admin/jingfa/bdump/jingfa1_lmd0_15271.trc

lr-x------ 1 oracle oinstall 64 Nov 10 17:00 3 -> /dev/null

lr-x------ 1 oracle oinstall 64 Nov 10 17:00 4 -> /dev/null

l-wx------ 1 oracle oinstall 64 Nov 10 17:00 5 -> /u01/app/oracle/admin/jingfa/udump/jingfa1_ora_15228.trc

l-wx------ 1 oracle oinstall 64 Nov 10 17:00 6 -> /u01/app/oracle/admin/jingfa/bdump/alert_jingfa1.log

lrwx------ 1 oracle oinstall 64 Nov 10 17:00 7 -> /u01/app/oracle/product/10.2.0/db_1/dbs/hc_jingfa1.dat

l-wx------ 1 oracle oinstall 64 Nov 10 17:00 8 -> /u01/app/oracle/admin/jingfa/bdump/alert_jingfa1.log

lrwx------ 1 oracle oinstall 64 Nov 10 17:00 9 -> socket:[1361566]

[root@jingfa1 fd]#

可见如果lmd进程暂停,内部机制如下,提示资源暂不可用

SQL> oradebug setospid 15271

Oracle pid: 6, Unix process pid: 15271, image: oracle@jingfa1 (LMD0)

SQL> oradebug suspend

Statement processed.

semtimedop(1277953, 0x7fff7d684890, 1, {1, 0}) = -1 EAGAIN (Resource temporarily unavailable)

semtimedop(1277953, 0x7fff7d684890, 1, {1, 0}) = -1 EAGAIN (Resource temporarily unavailable)

semtimedop(1277953, 0x7fff7d684890, 1, {1, 0}) = -1 EAGAIN (Resource temporarily unavailable)

semtimedop(1277953, 0x7fff7d684890, 1, {1, 0}) = -1 EAGAIN (Resource temporarily unavailable)

semtimedop(1277953, 0x7fff7d684890, 1, {1, 0}) = -1 EAGAIN (Resource temporarily unavailable)

semtimedop(1277953, 0x7fff7d684890, 1, {1, 0}) = -1 EAGAIN (Resource temporarily unavailable)

semtimedop(1277953, 0x7fff7d684890, 1, {1, 0}) = -1 EAGAIN (Resource temporarily unavailable)

如果恢复LMD,资源又恢复正常,又开始了各种操作系统函数的调用运行

SQL> oradebug resume

Statement processed.

getrusage(RUSAGE_SELF, {ru_utime={38, 665122}, ru_stime={4, 631295}, ...}) = 0

times({tms_utime=3866, tms_stime=463, tms_cutime=0, tms_cstime=0}) = 436558478

poll([{fd=9, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=17, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 2, 80) = 0 (Timeout)

times({tms_utime=3866, tms_stime=463, tms_cutime=0, tms_cstime=0}) = 436558486

getrusage(RUSAGE_SELF, {ru_utime={38, 665122}, ru_stime={4, 631295}, ...}) = 0

getrusage(RUSAGE_SELF, {ru_utime={38, 665122}, ru_stime={4, 631295}, ...}) = 0

times({tms_utime=3866, tms_stime=463, tms_cutime=0, tms_cstime=0}) = 436558486

poll([{fd=9, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=17, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 2, 80) = 0 (Timeout)

times({tms_utime=3866, tms_stime=463, tms_cutime=0, tms_cstime=0}) = 436558494

getrusage(RUSAGE_SELF, {ru_utime={38, 665122}, ru_stime={4, 631295}, ...}) = 0

getrusage(RUSAGE_SELF, {ru_utime={38, 665122}, ru_stime={4, 632295}, ...}) = 0

而且lmd进程状态变化时,会向其trace file写入信息

write(2, "*** 2015-11-10 17:30:32.608", 27) = 27  ---write函数含义:write(fb,buf,size)

write(2, "\n", 1)                       = 1

write(2, "SKGXPIWAIT: keepalive_reset elap"..., 86) = 86

write(2, "\n", 1)                       = 1

[root@jingfa1 fd]# locate "2015-11-10 17:30:32.608"

[oracle@jingfa1 bdump]$ pwd

/u01/app/oracle/admin/jingfa/bdump

[oracle@jingfa1 bdump]$ find .|xargs grep -ri "2015-11-10 17:30:32.608" -l

./jingfa1_lmd0_15271.trc

./jingfa1_lmd0_15271.trc

[oracle@jingfa1 bdump]$ more *|grep "2015-11-10 17:30:32.608"

*** 2015-11-10 17:30:32.608

或者通过write函数的write函数也可定位到是写入到lmd trc file

[oracle@jingfa1 fd]$ pwd

/proc/15271/fd

[oracle@jingfa1 fd]$ ll -l 2

l-wx------ 1 oracle oinstall 64 Nov 10 17:00 2 -> /u01/app/oracle/admin/jingfa/bdump/jingfa1_lmd0_15271.trc

[oracle@jingfa1 fd]$

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

oracle lmd0,用strace跟踪分析oracle 10.2.0.1 rac lmd进程系列二相关推荐

  1. oracle lmd0,oracle 10.2.0.1 rac的lmd进程的含义之一

    结论 1,测试环境为oracle 10.2.0.1 rac 2,lmd进程如果异常中断,会导致所属RAC实例重启,并且在关库前会生成一个SYSTEMSTATE DUMP文件 3,lmon进程是监控lm ...

  2. ORACLE 10.2.0.4 rac for aix query gv$instance with ORA-12850

    一.问题现象 oracle 10.2.0.4 rac for aix开启数据库审计后,发现应用连接不上数据库,登陆节点2数据库查询gv$instance视图时提示报错ORA-12850,如下图所示. ...

  3. 跟踪分析Linux内核5.0系统调用处理过程

    跟踪分析Linux内核5.0系统调用处理过程 学号384 原创作业转载请注明出处+中国科学技术大学孟宁老师的Linux操作系统分析 https://github.com/mengning/linuxk ...

  4. 在AIX 5.3+HACMP 5.4以上环境安装10gR2 10.2.0.1 RAC CRS Clusterware必须先运行Patch 6718715中的rootpre.sh...

    在AIX 5.3+HACMP 5.4以上环境安装10gR2 10.2.0.1 RAC CRS Clusterware必须先运行Patch 6718715中的rootpre.sh,若不运行该rootpr ...

  5. oracle的addm,addm报告分析 - Oracle数据库管理 - ITPUB论坛-中国专业的IT技术社区

    本帖最后由 alibull 于 2014-5-9 18:14 编辑 SQL> SELECT total.tablespace_name, 2         Round(total.MB, 2) ...

  6. oracle lms进程 内存,基于oracle 10.2.0.1 rac学习lms进程系列四

    背景 之前,我们了解了lmd进程一些概念,这儿我们学习下另一个重要RAC后台进程,LMS进程. 结论 1,如果lms出现故障,会导致dml事务无法提交,即提交或回退hang住;并且远端节点的DML操作 ...

  7. oracle 10.2.0.4 rac emca,ORACLE 10G RAC升级10.2.0.4报错

    升级ORACLE CLUSTERWARE执行root102.sh时报如下错误: /usr/lib/hpux64/dld.so: Unable to find library 'libclntsh.so ...

  8. oracle 10.2.0.4 rac emca,Oracle RAC 10.2.0.1升级到10.2.0.4-安装配置参考手册

    数据库RAC版本升级方案 一.概述 数据库做版本升级,版本从oracle10g 10.2.0.1 升级到oracle10g10.2.0.4. 本次操作因为涉及到生产数据库系统,须停止生产服务应用,所以 ...

  9. 10.2.0.4 RAC hang住的分析-从ash基表数据查出RLM$EVTCLEANUP job异常

    记录一下之前的一次故障排查过程. 用户反映8点左右业务部分反映应用卡,8点多以后应用无法进行,用户DBA紧急重启了数据库实例,之后数据库系统恢复正常. 了解到这是一套AIX+两节点10.2.0.4版本 ...

最新文章

  1. 英特尔公布新技术路线图,将为 AWS、高通代工芯片
  2. Android 自定义控件开发入门(一)
  3. VBS编程基础教程 (第2篇)
  4. leetcode算法题-- 最长递增子序列的个数★
  5. python opencv imwrite()方法 cv :: ImwriteFlags (写入图片、保存图片)
  6. 桂林电子科技大学 计算机学院,桂林电子科技大学信息科技学院
  7. MATLAB路径的正确书写方式
  8. Linux恢复删除的文件
  9. Java开发QQ机器人
  10. c语言令牌桶原理,令牌桶算法及实现(二)
  11. 应变计测轴扭矩 计算
  12. 华为研发工程师编程题:汽水瓶 [python]
  13. html 防网页假死,JavaScript-如何防止由于脚本引起的浏览器假死
  14. 飞书深诺在港上市招股书再失效:毛利率较高,遭完美世界提前减持
  15. 《HelloGitHub》第 61 期
  16. 3、git 暂存区撤销与删除
  17. 计算机一级必考知识点,计算机一级考试基础知识点汇总.doc
  18. 【Java】StudentsInfoQuery(简单的学生信息查询系统)
  19. OpenGL---PBO
  20. Symbian开发FAQ(转)

热门文章

  1. 360系统急救箱服务器,360系统急救箱史上最详细使用方法教程
  2. iku爱酷后台开放匿名代理服务 | WooYun-2011-02909 | WooYun.org
  3. 社会网络分析(四) | 快速上手Gephi,绘制小说人物关系网络
  4. 毕业设计-基于Matlab的遗传算法在结构优化设计中的应用
  5. 《算法图解》读书笔记(二)
  6. 数字信号处理(一)利用FFT对信号进行频谱分析
  7. Blender图解教程:如何把外部图片打包到工程文件(*.blend)中
  8. Windows系统搭建FTP服务器教程
  9. 解决某手短视频抓包工具抓不到问题
  10. 推荐10个零代码数据可视化工具,请收藏