轉:Oracle叢集重要程式evmd、cssd和crsd發源地及跟蹤探索

路途中的人2012發表於2017-02-27

叢集后臺眾多,如何才能理清其中的關係?我們嘗試探索一下。我們從“/etc/inittab”檔案開始。

1.“/etc/inittab”檔案內容
看一下從Linux作業系統“/etc/inittab”檔案中能獲得哪些資訊。
[root@rac1 ~]# cat /etc/inittab
#
# inittab       This file describes how the INIT process should set up
#               the system in a certain run-level.
#
# Author:       Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
#               Modified for RHS Linux by Marc Ewing and Donnie Barnes
#

# Default runlevel. The runlevels used by RHS are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# When our UPS tells us power has failed, assume we have a few minutes
# of power left.  Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"


# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon
h1:35:respawn:/etc/init.d/init.evmd run >/dev/null 2>&1 </dev/null
h2:35:respawn:/etc/init.d/init.cssd fatal >/dev/null 2>&1 </dev/null
h3:35:respawn:/etc/init.d/init.crsd run >/dev/null 2>&1 </dev/null

注意最後一部分內容,此處記錄了Oracle叢集主程式的源頭。

2.使用pstree命令繼續探索
1)挖掘
[root@rac1 ~]# ps -ef | grep -v grep | grep "init.evmd run"
root      3322     1  0 Nov24 ?        00:00:00 /bin/sh /etc/init.d/init.evmd run
[root@rac1 ~]# pstree 3322 -a
init.evmd /etc/init.d/init.evmd run
  └─su -l oracle -c...
      └─evmd.bin
          ├─evmlogger.bin -o /oracle/app/crs/evm/log/evmlogger.info -l/oracl
          ├─{evmd.bin}
          ├─{evmd.bin}
          ├─{evmd.bin}
          ├─{evmd.bin}
          ├─{evmd.bin}
          ├─{evmd.bin}
          ├─{evmd.bin}
          ├─{evmd.bin}
          ├─{evmd.bin}
          ├─{evmd.bin}
          ├─{evmd.bin}
          ├─{evmd.bin}
          ├─{evmd.bin}
          ├─{evmd.bin}
          ├─{evmd.bin}
          └─{evmd.bin}

2)挖掘
[root@rac1 ~]# ps -ef | grep -v grep | grep "init.cssd fatal"
root      3323     1  0 Nov24 ?        00:24:34 /bin/sh /etc/init.d/init.cssd fatal
[root@rac1 ~]# pstree 3323 -a
init.cssd /etc/init.d/init.cssd fatal
  ├─init.cssd /etc/init.d/init.cssd oprocd
  │   └─oprocd.bin run -t 1000 -m 500 -f
  ├─init.cssd /etc/init.d/init.cssd oclsomon
  │   └─runuser -l oracle -c...
  │       └─sh -c...
  │           └─oclsomon.bin
  ├─init.cssd /etc/init.d/init.cssd daemon
  │   └─ocssd.bin
  │       ├─{ocssd.bin}
  │       ├─{ocssd.bin}
  │       ├─{ocssd.bin}
  │       ├─{ocssd.bin}
  │       ├─{ocssd.bin}
  │       ├─{ocssd.bin}
  │       ├─{ocssd.bin}
  │       ├─{ocssd.bin}
  │       ├─{ocssd.bin}
  │       ├─{ocssd.bin}
  │       ├─{ocssd.bin}
  │       ├─{ocssd.bin}
  │       ├─{ocssd.bin}
  │       └─{ocssd.bin}
  └─sleep 1

3)挖掘
[root@rac1 ~]# ps -ef | grep -v grep | grep "init.crsd run"
root      3324     1  0 Nov24 ?        00:00:00 /bin/sh /etc/init.d/init.crsd run
[root@rac1 ~]# pstree 3324 -a
init.crsd /etc/init.d/init.crsd run
  └─crsd.bin reboot
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      ├─{crsd.bin}
      └─{crsd.bin}

3.小結
本文從“/etc/inittab”檔案入手給出探索Oracle叢集后臺程式關係的方法。沒有給出具體程式的詳細功能描述。有關程式的詳細描述請參考Oracle官方文件“Oracle Clusterware Software Component Processing Details”()。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29067253/viewspace-2134381/,如需轉載,請註明出處,否則將追究法律責任。

相關文章