프린트 하기

내맘대로긍정이 알려주는

Oracle 23ai 신기능
무료 세미나 발표자료

다운로드 trending_flat

OS환경 : Oracle Linux6.8(64bit)


DB 환경 : Oracle Database 11.2.0.4


쿼리 : 오라클 grid, crs 상태 확인용 쉘 스크립트

보통은 10g의 경우 crs_stat -t, 11g이상의 경우 crsctl stat res -t 명령으로 crs, grid 상태를 조회할 수 있다.

그런데 그냥 프로세스 만으로 상태롤 확인하고자 하는 경우 아래 스크립트를 사용하면 된다.

그냥 간단하게 top로 프로세스 가져와서 grep 해서 프로세스가 존재하는지만 체크해서

OK를 띄워주는 쉘 스크립트이다.

12c 이상 더 추가하고싶은 프로세스가 있다면 30번째 라인에 추가하고 if문을 추가해서 사용하면된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/bin/ksh
 
_LOC=/bin
_LOG=/home/oracle/
 
ps -ef | grep d.bin | grep -v grep > ${_LOG}/top1.tmp
 
awk '{print $8}' ${_LOG}/top1.tmp > ${_LOG}/top2.tmp
 
tns=`cat ${_LOG}/top2.tmp | grep tnslsnr`
ohasd=`cat ${_LOG}/top2.tmp | grep ohasd`
oraagent=`cat ${_LOG}/top2.tmp | grep oraagent`
mdnsd=`cat ${_LOG}/top2.tmp | grep mdnsd`
gpnpd=`cat ${_LOG}/top2.tmp | grep gpnpd`
gipcd=`cat ${_LOG}/top2.tmp | grep gipcd`
orarootagent=`cat ${_LOG}/top2.tmp | grep orarootagent`
osysmond=`cat ${_LOG}/top2.tmp | grep osysmond`
cssdmonitor=`cat ${_LOG}/top2.tmp | grep cssdmonitor`
cssdagent=`cat ${_LOG}/top2.tmp | grep cssdagent`
ocssd=`cat ${_LOG}/top2.tmp | grep ocssd`
octssd=`cat ${_LOG}/top2.tmp | grep octssd`
evmd=`cat ${_LOG}/top2.tmp | grep evmd`
evmlogger=`cat ${_LOG}/top2.tmp | grep evmlogger`
tnslsnr=`cat ${_LOG}/top2.tmp | grep tnslsnr`
crsd=`cat ${_LOG}/top2.tmp | grep crsd`
oraagent=`cat ${_LOG}/top2.tmp | grep oraagent`
scriptagent=`cat ${_LOG}/top2.tmp | grep scriptagent`
orarootagent=`cat ${_LOG}/top2.tmp | grep orarootagent`
testagent=`cat top2.tmp | grep testagent`
 
if [ -"$tns" ];then
   echo "listener OK"
elif [ -"$tns" ];then
   echo "listener NOT OK"
fi
if [ -"$ohasd" ];then
   echo "ohasd OK"
elif [ -"$ohasd" ];then
   echo "ohasd NOT OK"
fi
if [ -"$oraagent" ];then
   echo "oraagent OK"
elif [ -"$oraagent" ];then
   echo "oraagent NOT OK"
fi
if [ -"$mdnsd" ];then
   echo "mdnsd OK"
elif [ -"$mdnsd" ];then
   echo "mdnsd NOT OK"
fi
if [ -"$gpnpd" ];then
   echo "gpnpd OK"
elif [ -"$gpnpd" ];then
   echo "gpnpd NOT OK"
fi
if [ -"$gipcd" ];then
   echo "gipcd OK"
elif [ -"$gipcd" ];then
   echo "gipcd NOT OK"
fi
if [ -"$orarootagent" ];then
   echo "orarootagent OK"
elif [ -"$orarootagent" ];then
   echo "orarootagent NOT OK"
fi
if [ -"$osysmond" ];then
   echo "osysmond OK"
elif [ -"$osysmond" ];then
   echo "osysmond NOT OK"
fi
if [ -"$cssdmonitor" ];then
   echo "cssdmonitor OK"
elif [ -"$cssdmonitor" ];then
   echo "cssdmonitor NOT OK"
fi
if [ -"$cssdagent" ];then
   echo "cssdagent OK"
elif [ -"$cssdagent" ];then
   echo "cssdagent NOT OK"
fi
if [ -"$ocssd" ];then
   echo "ocssd OK"
elif [ -"$ocssd" ];then
   echo "ocssd NOT OK"
fi
if [ -"$octssd" ];then
   echo "octssd OK"
elif [ -"$octssd" ];then
   echo "octssd NOT OK"
fi
if [ -"$evmd" ];then
   echo "evmd OK"
elif [ -"$evmd" ];then
   echo "evmd NOT OK"
fi
if [ -"$evmlogger" ];then
   echo "evmlogger OK"
elif [ -"$evmlogger" ];then
   echo "evmlogger NOT OK"
fi
if [ -"$crsd" ];then
   echo "crsd OK"
elif [ -"$crsd" ];then
   echo "crsd NOT OK"
fi
if [ -"$scriptagent" ];then
   echo "scriptagent OK"
elif [ -"$scriptagent" ];then
   echo "scriptagent NOT OK"
fi
if [ -"$orarootagent" ];then
   echo "orarootagent OK"
elif [ -"$orarootagent" ];then
   echo "orarootagent NOT OK"
fi
if [ -"$testagent" ];then
   echo "testagent OK"
elif [ -"$testagent" ];then
   echo "testagent NOT OK"
fi
 
rm ${_LOG}/top1.tmp
rm ${_LOG}/top2.tmp


실행결과

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ sh crs_status.sh 
listener OK
ohasd OK
oraagent OK
mdnsd OK
gpnpd OK
gipcd OK
orarootagent OK
osysmond OK
cssdmonitor OK
cssdagent OK
ocssd OK
octssd OK
evmd OK
evmlogger OK
crsd OK
scriptagent OK
orarootagent OK
testagent NOT OK



참조 :