2010-02-08 3 views
0

몇 가지 내 Linux 부트 스크립트, 특히 Oracle 10g 데이터베이스 및 oc4j 컨테이너를 시작하는 데 문제가 있습니다.rc 시작 스크립트를 사용하여 oc4j 및 oracle을 시작하십시오.

나는 chkconfig를 사용하여 리눅스가 컨테이너 앞에서 데이터베이스를 시작하도록 지시했지만, 컨테이너가 oc4j가 전혀 좋아하지 않는 데이터베이스 전에 시작하는 것처럼 보입니다. 내 응용 프로그램에 연결할 수 있지만 DB 연결이 없습니다. oc4j를 다시 시작하면 모든 것이 정상적으로 작동합니다.

데이터베이스 (및 리스너)가 시작되고 연결 준비가 될 때까지 oc4j 시작을 "일시 중지"할 수있는 방법이 있습니까?

답변

1

1 시작 스크립트에 넣으시겠습니까?

start listener 
start database 
start appserver 

이 내 /etc/init.d/dbora 스크립트입니다. 나는 응용 프로그램 서버가 이미 시작 때까지 불행하게도 데이터베이스가 초기화 완료되지 않습니다 것을했던 OC4J

#!/bin/sh 
# chkconfig: 345 99 10 
# description: Oracle auto start-stop script. 
# 
# Set ORA_HOME to be equivalent to the $ORACLE_HOME 
# from which you wish to execute dbstart and dbshut; 
# 
# Set ORA_OWNER to the user id of the owner of the 
# Oracle database in ORA_HOME. 
ORA_HOME=/app/oracle/product/10.2.0/db_1 
ORA_OWNER=oracle 
echo $1 
if [ ! -f $ORA_HOME/bin/dbstart ] 
then 
    echo "Oracle startup: cannot start" 
    exit 
fi 
case "$1" in 
    'start') 
     # Start the Oracle databases: 
     # The following command assumes that the oracle login 
     # will not prompt the user for any values 
     su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" 
     su - $ORA_OWNER -c $ORA_HOME/bin/dbstart 
     su - $ORA_OWNER -c $ORA_HOME/bin/emctl start dbconsole 
     ;; 
    'stop') 
     # Stop the Oracle databases: 
     # The following command assumes that the oracle login 
     # will not prompt the user for any values 
     su - $ORA_OWNER -c $ORA_HOME/bin/emctl stop dbconsole 
     su - $ORA_OWNER -c $ORA_HOME/bin/dbshut 
     su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" 
     ;; 
esac 
+0

을 시작하기 위해 전화를 추가합니다. –

+0

이들을 순차적으로 실행하면 데이터베이스가 시작되어 완전히 작동 할 때 '데이터베이스 시작'스크립트의 제어가 반환됩니다. 리스너를 먼저 시작하여 데이터베이스가 리스너와 함께 등록되도록하십시오. –

+0

감사합니다 !!!! 이것은 완벽하게 작동 ... 그것은 내가 가진 것과 너무 다른 것은 아니지만, 나는 그것이 작동하고있어 기쁘다. –

관련 문제