출처: http://www.seeyouservice.com/zeroboard/zboard.php?id=seeyou_programing_oracle&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=2
ORACLE DB AUTO STARTUP/SHUTDOWN ON RedHat Linux 8.0
구경탁 jinuxer@yahoo.co.kr
1차수정 : 2002년 11월 04일
--------------------------------------------------------------------------------
이 자료는 O/S startup 시에 Oracle RDBMS 서비스를 자동으로 startup하는 방법에 대한 자료이다.
Oracle RDBMS 서비스를 startup하기위해 $ORACLE_HOME/bin/dbstart를 사용할 수 있고, Oracle RDBMS 서비스를 shutdown하기위해 $ORACLE_HOME/bin/dbshut를 사용할 수 있다.
--------------------------------------------------------------------------------
1. /etc/rc.d/rc.local Boot Time Script 이용
첫번째 방법은 System Boot Time때에 Oracle RDBMS를 자동적으로 서비스를 하기위해서 /etc/rc.d/rc.local에 $ORACLE_HOME/bin/dbstart를 추가하면된다.
# cd /etc/rc.d/
# vi rc.local
...
$ORACLE_HOME/bin/dbstart
가장 하단 부분에 추가해주고 reboot해서 확인해보라.
만약에 안된다면 아래처럼 추가해주라.
주, 디렉토리는 자신이 install한 oracle의 디렉토리로 적당히 편집해주기 바란다.
...
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9i
export PATH=$PATH:$ORACLE_HOME/bin
$ORACLE_HOME/bin/dbstart
그래두 안된다면 이 방법은 쓰지말고 다음 방법을 쓰기바란다. -_-;
2. Oracle Boot Shell Script 이용
두번째 방법은 $ORACLE_HOME/bin/dbstart와 $ORACLE_HOME/bin/dbshut를 이용하여 shell script를 작성하는 것이다.
어차피 Oracle RDBMS 서비스를 자동으로 하고자하는것이라면, shutdown도 자동으로 해보자.
주, 디렉토리는 자신이 install한 oracle의 디렉토리로 적당히 편집해주기 바란다.
# cd /etc/rc.d/init.d
# vi oracle
--------------------------------------------------------------------------------
#!/bin/sh
#
# Startup script for Oracle
#
# chkconfig: - 90 15
# description: Start Oracle
#
# processname: oracle
#
# Source function library.
. /etc/rc.d/init.d/functions
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9i
export PATH=$PATH:$ORACLE_HOME/bin
# See how we were called.
case "" in
start)
echo ""
echo "Starting oracle: "
su - oracle -c "dbstart"
echo ""
echo "Starting TNS listener:"
su - oracle -c "lsnrctl start"
touch /var/lock/subsys/oracle
echo
;;
stop)
echo ""
echo "Shutting down TNS listener:"
su - oracle -c "lsnrctl stop"
echo ""
echo "Shutting down oracle:"
su - oracle -c "dbshut"
rm -f /var/lock/subsys/oracle
echo
;;
restart)
stop
sleep 2
start
;;
*)
echo "Usage: "
exit 1
esac
--------------------------------------------------------------------------------
# chkconfig --add oracle
# chkconfig --level 3 oracle on
# ntsys 후 확인을 해보라.
3. 나머지 설정
$ORACLE_HOME/bin/dbstart와 $ORACLE_HOME/bin/dbshut를 구동하기 위해선 /etc/oratab에 Oracle SID가 적혀있는 라인의 "N"을 "Y"로 바꾸어야한다.
예제를 보자.
Oracle SID는 ORCL이고, install 디렉토리는 /home/oracle/app/oracle/product/9i이다.
# vi /etc/oratab
...
ORCL:/home/oracle/app/oracle/product/9i:N
를 아래와 같이 바꾼다.
...
ORCL:/home/oracle/app/oracle/product/9i:Y
모든 작업이 완료되면 reboot하여 확인을 해보도록 한다.
======================================
Visit to KOUG(Korea Oracle User Group)
http://www.koug.net
jinuxer@yahoo.co.kr
======================================
9i의 경우 dbstart 스크립트에 몇가지 문제가 있습니다.
9i부터는 바이너리 형식의 spfile 을 기본적으로 사용합니다.
그런데 dbstart 스크립트는 pfile (text)만 찾고 없으면 오라클을 '시작'시키지 않습니다.
따라서 dbstart를 vi 등 편집기로 열어서...
PFILE=${ORACLE_HOME}/dbs/init${ORACLE_SID}.ora 를 찾아서
다음에 아래 라인을 추가바랍니다.
SPFILE=${ORACLE_HOME}/dbs/spfile${ORACLE_SID}.ora
그리고 나서
if [ -f $PFILE ] ; then
라는 부분을 찾아서 아래와 같이 고쳐줍니다.
if [ -f $PFILE -o -f $SPFILE ] ; then
마지막으로 dbshut 이 오래걸리는 이유는 셧다운 모드가 디폴트로
shutdown normal 이기 때문에 모든 트랜잭션이 완료되고 연결된 세션이 해제될 때까지 기다리게 되기 때문입니다.
마찬가지로 dbshut을 vi로 열어서 shutdown normal 을
shutdown immediate 로 고쳐주시면 됩니다.
ORACLE DB AUTO STARTUP/SHUTDOWN ON RedHat Linux 8.0
구경탁 jinuxer@yahoo.co.kr
1차수정 : 2002년 11월 04일
--------------------------------------------------------------------------------
이 자료는 O/S startup 시에 Oracle RDBMS 서비스를 자동으로 startup하는 방법에 대한 자료이다.
Oracle RDBMS 서비스를 startup하기위해 $ORACLE_HOME/bin/dbstart를 사용할 수 있고, Oracle RDBMS 서비스를 shutdown하기위해 $ORACLE_HOME/bin/dbshut를 사용할 수 있다.
--------------------------------------------------------------------------------
1. /etc/rc.d/rc.local Boot Time Script 이용
첫번째 방법은 System Boot Time때에 Oracle RDBMS를 자동적으로 서비스를 하기위해서 /etc/rc.d/rc.local에 $ORACLE_HOME/bin/dbstart를 추가하면된다.
# cd /etc/rc.d/
# vi rc.local
...
$ORACLE_HOME/bin/dbstart
가장 하단 부분에 추가해주고 reboot해서 확인해보라.
만약에 안된다면 아래처럼 추가해주라.
주, 디렉토리는 자신이 install한 oracle의 디렉토리로 적당히 편집해주기 바란다.
...
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9i
export PATH=$PATH:$ORACLE_HOME/bin
$ORACLE_HOME/bin/dbstart
그래두 안된다면 이 방법은 쓰지말고 다음 방법을 쓰기바란다. -_-;
2. Oracle Boot Shell Script 이용
두번째 방법은 $ORACLE_HOME/bin/dbstart와 $ORACLE_HOME/bin/dbshut를 이용하여 shell script를 작성하는 것이다.
어차피 Oracle RDBMS 서비스를 자동으로 하고자하는것이라면, shutdown도 자동으로 해보자.
주, 디렉토리는 자신이 install한 oracle의 디렉토리로 적당히 편집해주기 바란다.
# cd /etc/rc.d/init.d
# vi oracle
--------------------------------------------------------------------------------
#!/bin/sh
#
# Startup script for Oracle
#
# chkconfig: - 90 15
# description: Start Oracle
#
# processname: oracle
#
# Source function library.
. /etc/rc.d/init.d/functions
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9i
export PATH=$PATH:$ORACLE_HOME/bin
# See how we were called.
case "" in
start)
echo ""
echo "Starting oracle: "
su - oracle -c "dbstart"
echo ""
echo "Starting TNS listener:"
su - oracle -c "lsnrctl start"
touch /var/lock/subsys/oracle
echo
;;
stop)
echo ""
echo "Shutting down TNS listener:"
su - oracle -c "lsnrctl stop"
echo ""
echo "Shutting down oracle:"
su - oracle -c "dbshut"
rm -f /var/lock/subsys/oracle
echo
;;
restart)
stop
sleep 2
start
;;
*)
echo "Usage: "
exit 1
esac
--------------------------------------------------------------------------------
# chkconfig --add oracle
# chkconfig --level 3 oracle on
# ntsys 후 확인을 해보라.
3. 나머지 설정
$ORACLE_HOME/bin/dbstart와 $ORACLE_HOME/bin/dbshut를 구동하기 위해선 /etc/oratab에 Oracle SID가 적혀있는 라인의 "N"을 "Y"로 바꾸어야한다.
예제를 보자.
Oracle SID는 ORCL이고, install 디렉토리는 /home/oracle/app/oracle/product/9i이다.
# vi /etc/oratab
...
ORCL:/home/oracle/app/oracle/product/9i:N
를 아래와 같이 바꾼다.
...
ORCL:/home/oracle/app/oracle/product/9i:Y
모든 작업이 완료되면 reboot하여 확인을 해보도록 한다.
======================================
Visit to KOUG(Korea Oracle User Group)
http://www.koug.net
jinuxer@yahoo.co.kr
======================================
9i의 경우 dbstart 스크립트에 몇가지 문제가 있습니다.
9i부터는 바이너리 형식의 spfile 을 기본적으로 사용합니다.
그런데 dbstart 스크립트는 pfile (text)만 찾고 없으면 오라클을 '시작'시키지 않습니다.
따라서 dbstart를 vi 등 편집기로 열어서...
PFILE=${ORACLE_HOME}/dbs/init${ORACLE_SID}.ora 를 찾아서
다음에 아래 라인을 추가바랍니다.
SPFILE=${ORACLE_HOME}/dbs/spfile${ORACLE_SID}.ora
그리고 나서
if [ -f $PFILE ] ; then
라는 부분을 찾아서 아래와 같이 고쳐줍니다.
if [ -f $PFILE -o -f $SPFILE ] ; then
마지막으로 dbshut 이 오래걸리는 이유는 셧다운 모드가 디폴트로
shutdown normal 이기 때문에 모든 트랜잭션이 완료되고 연결된 세션이 해제될 때까지 기다리게 되기 때문입니다.
마찬가지로 dbshut을 vi로 열어서 shutdown normal 을
shutdown immediate 로 고쳐주시면 됩니다.