2013-12-16 2 views
0

원래 문제를 해결하기 때문에 원본 질문을 편집 할 것이고 원래 질문도 왜곡해야합니다. 지금 가입하는 사람들에 관해서. 여러 Oracle 인스턴스/수신기가 Oracle EL6에서 자동으로 시작되도록 구성 할 때 문제가 발생했습니다. 나는 신생을 처리하기 위해 다음과 같은 스크립트를 사용하고 있습니다 :시작시 복수 Oracle 12c Listener 시작

#!/bin/sh 
# chkconfig 345 99 10 

export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1 
export ORACLE_OWNER=oracle 

if [ ! -f $ORACLE_HOME/bin/dbstart ] 
then 
    echo "Oracle startup: cannot start" 
    exit 
fi 

case "$1" in 
    'start') 
     # Start the Oracle databases: 
     su $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" & 
     su $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start TEST.LOCALHOST" & 
     su $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start CAPEX" & 
     touch /var/lock/subsys/dbora 
     ;; 
    'stop') 
     # Stop the Oracle databases: 
     su $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" 
     su $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop TEST.LOCAHOST" 
     su $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop CAPEX" 
     rm -f /var/lock/subsys/dbora 
     ;; 
esac 

이 파일에서는 /etc/init.d/ 폴더 아래에 있습니다. 파일 자체를 dbora라고합니다. 또한 chkconfig --add를 사용하여 시작 프로그램에 추가했습니다. 은 chkconfig --list의 출력 일명 그것의 상태는 다음 또한

For CAPEX listener: 
<msg time='2013-12-17T14:16:44.440+01:00' org_id='oracle' comp_id='tnslsnr' 
type='UNKNOWN' level='16' host_id='localhost.localdomain' 
host_addr='::1'> 
    <txt>17-DEC-2013 14:16:44 * service_update * CAPEX * 0</txt> 
</msg> 

For TEST.LOCALOHOST listener: 
<msg time='2013-12-17T14:16:46.880+01:00' org_id='oracle' comp_id='tnslsnr' 
type='UNKNOWN' level='16' host_id='localhost.localdomain' 
host_addr='::1'> 
    <txt>17-DEC-2013 14:16:46 * service_update * TEST * 0</txt> 
</msg> 

내가 :

[[email protected] ~]# chkconfig --list 
NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off 
abrt-ccpp  0:off 1:off 2:off 3:on 4:off 5:on 6:off 
abrt-oops  0:off 1:off 2:off 3:on 4:off 5:on 6:off 
abrtd   0:off 1:off 2:off 3:on 4:off 5:on 6:off 
acpid   0:off 1:off 2:on 3:on 4:on 5:on 6:off 
atd    0:off 1:off 2:off 3:on 4:on 5:on 6:off 
auditd   0:off 1:off 2:on 3:on 4:on 5:on 6:off 
autofs   0:off 1:off 2:off 3:on 4:on 5:on 6:off 
blk-availability 0:off 1:on 2:on 3:on 4:on 5:on 6:off 
bluetooth  0:off 1:off 2:off 3:on 4:on 5:on 6:off 
certmonger  0:off 1:off 2:off 3:on 4:on 5:on 6:off 
cgconfig  0:off 1:off 2:off 3:off 4:off 5:off 6:off 
cgred   0:off 1:off 2:off 3:off 4:off 5:off 6:off 
cpuspeed  0:off 1:on 2:on 3:on 4:on 5:on 6:off 
crond   0:off 1:off 2:on 3:on 4:on 5:on 6:off 
cups   0:off 1:off 2:on 3:on 4:on 5:on 6:off 
dbora   0:off 1:off 2:off 3:on 4:on 5:on 6:off 
dnsmasq   0:off 1:off 2:off 3:off 4:off 5:off 6:off 
firstboot  0:off 1:off 2:off 3:off 4:off 5:off 6:off 
haldaemon  0:off 1:off 2:off 3:on 4:on 5:on 6:off 
htcacheclean 0:off 1:off 2:off 3:off 4:off 5:off 6:off 
httpd   0:off 1:off 2:on 3:on 4:on 5:on 6:off 
ip6tables  0:off 1:off 2:on 3:on 4:on 5:on 6:off 
iptables  0:off 1:off 2:off 3:off 4:off 5:off 6:off 
irqbalance  0:off 1:off 2:off 3:on 4:on 5:on 6:off 
kdump   0:off 1:off 2:off 3:off 4:off 5:off 6:off 
lvm2-monitor 0:off 1:on 2:on 3:on 4:on 5:on 6:off 
mcelogd   0:off 1:off 2:off 3:on 4:off 5:off 6:off 
mdmonitor  0:off 1:off 2:on 3:on 4:on 5:on 6:off 
messagebus  0:off 1:off 2:on 3:on 4:on 5:on 6:off 
netconsole  0:off 1:off 2:off 3:off 4:off 5:off 6:off 
netfs   0:off 1:off 2:off 3:on 4:on 5:on 6:off 
network   0:off 1:off 2:on 3:on 4:on 5:on 6:off 
nfs    0:off 1:off 2:off 3:off 4:off 5:off 6:off 
nfslock   0:off 1:off 2:off 3:on 4:on 5:on 6:off 
ntpd   0:off 1:off 2:off 3:off 4:off 5:off 6:off 
ntpdate   0:off 1:off 2:off 3:off 4:off 5:off 6:off 
numad   0:off 1:off 2:off 3:off 4:off 5:off 6:off 
oddjobd   0:off 1:off 2:off 3:off 4:off 5:off 6:off 
portreserve  0:off 1:off 2:on 3:on 4:on 5:on 6:off 
postfix   0:off 1:off 2:on 3:on 4:on 5:on 6:off 
psacct   0:off 1:off 2:off 3:off 4:off 5:off 6:off 
quota_nld  0:off 1:off 2:off 3:off 4:off 5:off 6:off 
rdisc   0:off 1:off 2:off 3:off 4:off 5:off 6:off 
restorecond  0:off 1:off 2:off 3:off 4:off 5:off 6:off 
rhnsd   0:off 1:off 2:on 3:on 4:on 5:on 6:off 
rngd   0:off 1:off 2:off 3:off 4:off 5:off 6:off 
rpcbind   0:off 1:off 2:on 3:on 4:on 5:on 6:off 
rpcgssd   0:off 1:off 2:off 3:on 4:on 5:on 6:off 
rpcsvcgssd  0:off 1:off 2:off 3:off 4:off 5:off 6:off 
rsyslog   0:off 1:off 2:on 3:on 4:on 5:on 6:off 
saslauthd  0:off 1:off 2:off 3:off 4:off 5:off 6:off 
smartd   0:off 1:off 2:off 3:off 4:off 5:off 6:off 
spice-vdagentd 0:off 1:off 2:off 3:off 4:off 5:on 6:off 
sshd   0:off 1:off 2:on 3:on 4:on 5:on 6:off 
sssd   0:off 1:off 2:off 3:off 4:off 5:off 6:off 
svnserve  0:off 1:off 2:off 3:off 4:off 5:off 6:off 
sysstat   0:off 1:on 2:on 3:on 4:on 5:on 6:off 
udev-post  0:off 1:on 2:on 3:on 4:on 5:on 6:off 
vmware-tools 0:off 1:off 2:on 3:on 4:on 5:on 6:off 
vmware-tools-thinprint 0:off 1:off 2:on 3:on 4:on 5:on 6:off 
wdaemon   0:off 1:off 2:off 3:off 4:off 5:off 6:off 
winbind   0:off 1:off 2:off 3:off 4:off 5:off 6:off 
wpa_supplicant 0:off 1:off 2:off 3:off 4:off 5:off 6:off 
xinetd   0:off 1:off 2:off 3:on 4:on 5:on 6:off 
ypbind   0:off 1:off 2:off 3:off 4:off 5:off 6:off 

xinetd based services: 
    chargen-dgram: off 
    chargen-stream: off 
    daytime-dgram: off 
    daytime-stream: off 
    discard-dgram: off 
    discard-stream: off 
    echo-dgram:  off 
    echo-stream: off 
    rsync:   off 
    tcpmux-server: off 
    time-dgram:  off 
    time-stream: off 

지금은 다음 항목을 포함 두 청취자의 로그 파일을 확인 시스템을 다시 시작 후 청취자가 다음 명령을 실행을 통해 실행하는 wheteher 확인하려고 (내가 그들 중 어느 것도 발견으로 실제로 실행) :

[[email protected] ~]# ps -ef | grep tnslsnr | grep -v grep 
[[email protected] ~]# 

나는 또한 여부를 확인하려고 노력으로 실제 데이터베이스 인스턴스가 실행 중임 나는 또한 그들이 유휴 상태에 있다는 것을 발견했다. 어쩌면 당신은 무슨 일이 일어나고 있는지, 나는 어찌할 지 모르겠다.

덕분에, 조

답변

2

ORACLE_HOMEsu 환경에 설정되어 있지 않습니다. $ORACLE_HOMEsu를 호출하기 전에 확장되고 있기 때문에 lsnrctl 바이너리의 전체 경로가 제공되고, 그래서 당신은 정말 일을하는지 : 작동 있도록

su oracle -c "/u01/app/oracle/product/12.1.0/dbhome_1/bin/lsnrctl start CAPEX" & 

당신은 그것을 수동으로 ORACLE_HOME이 설정을 실행합니다. su을 실행하면 그렇지 않지만 전체 경로가 있기 때문에 여전히 이진 파일을 찾습니다. dbstart은 처리 할 때 oratab 항목에서 ORACLE_HOME을 다시 설정하기 때문에 작동합니다. '메시지 파일 없음'오류는 일반적으로 ORACLE_HOME이 설정되지 않은 표시기이며 코드가 나타내는 권한 오류는 아마도 루트 디렉토리 아래의 잘못된 위치에 listener.ora을 찾고 있음을 나타냅니다. 로,

su $ORACLE_OWNER -c "ORACLE_HOME is: \$ORACLE_HOME`" 

당신은 당신이 su를 통해 실행중인 명령에 ORACLE_HOME을 설정할 수 있습니다 : 당신은 스크립트를함으로써이 문제를 보여줄 수

이 값을 표시하려고

su $ORACLE_OWNER -c "ORACLE_HOME=$ORACLE_HOME;$ORACLE_HOME/bin/lsnrctl start CAPEX" & 

그러나 스크립트의 변수를 export보다 간단하게 만들면 su에 표시됩니다.

export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1 
export ORACLE_OWNER=oracle 

또는

ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1 
ORACLE_OWNER=oracle 
export ORACLE_HOME ORACLE_OWNER 

... 쉘에 따라.

+0

답변 해 주셔서 감사합니다. 나는 당신의 대답에 따라 bash 스크립트를 수정했다.이제 시작할 때 오류 메시지가 표시되지 않지만 리스너가 시작되거나 데이터베이스가 표시되지 않습니다. – Wrath

+0

커맨드에서 들려오는 메시지와 배너 등을 얻었습니까? 실패했을 때 더 많은 디버그를 추가하여 정확히 찾아 낼 수 있습니까? 또한 bash 스크립트라고했는데 그것을 표시하지 않았습니까? 상단에'#!/bin/bash '가 있습니까? 부팅하는 동안 해당 내보내기 양식이 루트의 기본 쉘을 혼란스럽게하는지 궁금합니다. 루트로 수동으로 스크립트를 실행하면 어떻게됩니까? –

+0

alert.log 및 listener.log 파일을 확인해야합니다. – steve

관련 문제