다음 이전 차례

6. 자동 시작과 중지

6.1 dbstart & dbstop

Oracle 데이터베이스의 자동 시작과 중지는 Oracle에서 제공하는 파일인 dbstart와 dbstop를 이용하여 설정(버전 7.3.3.0.0)할 수 있다. 이러한 파일들은 동작(비록 dbstart와 dbshut파일을 바꿀수 있지만, 옮겨질 수 있다.)할 수 있는 etc/oratab 파일의 존재여부에 의존한다. /etc/oratab 파일의 형식은 다음과 같다.


        SID:ORACLE_HOME:AUTO

예)
       orcl:/home/oracle/7.3.3.0.0:Y
       leaveup:/home/oracle/7.3.2.1.0:N

6.2 init.d & rc.d

리눅스 시스템의 시작과정이나 종료과정을 변형하여 데이타베이스를 시작시키고 종료시킬수 있다. 이것은 매우쉽지만, 어떠한 Linux(slackware, debian, redhat, etc)시스템을 사용하느냐에 따라 변경될수 있다는 것을 필자는 지적한다. 이 문서에서는 Redhat Linux 5.0에서 동작하는 예를 보여줄 것이다. 자신의 Linux 시스템에 따라 수정하기위해서는 자신의 Linux 시스템 문서 자료를 참고한다. (비록 그러한 것이 Unix 시스템의 Sys V 계열을 위한 것에 적용되더라도) 우선, 우리는 /etc/rc.d/init.d 디렉토리에 있는 dbshut와 dbstart를 실행할 스크립트를 생성할 필요가 있다.


  #!/bin/sh
  #
  # /etc/rc.d/init.d/oracle
  # Description: Starts and stops the Oracle database and listeners
  # See how we were called.
  case "$1" in
    start)
          echo -n "Starting Oracle Databases: "
          echo "----------------------------------------------------"
          >> /var/log/oracle
          date +"! %T %a %D : Starting Oracle Databases as part of system up." 
          >> /var/log/oracle
          echo "----------------------------------------------------"
          >> /var/log/oracle
          su - oracle -c dbstart >> /var/log/oracle
          echo "Done."
          echo -n "Starting Oracle Listeners: "
          su - oracle -c "lsnrctl start" >> /var/log/oracle
          echo "Done."
          echo ""
          echo "----------------------------------------------------"
          >> /var/log/oracle
          date +"! %T %a %D : Finished." >> /var/log/oracle
          echo "----------------------------------------------------"
          >> /var/log/oracle
          touch /var/lock/subsys/oracle
          ;;
    stop)
          echo -n "Shutting Down Oracle Listeners: "
          echo "----------------------------------------------------"
          >> /var/log/oracle
          date +"! %T %a %D : ShutDown Oracle Databases as part of system down."        >> /var/log/oracle
          echo "----------------------------------------------------"
          >> /var/log/oracle
          su - oracle -c "lsnrctl stop" >> /var/log/oracle
          echo "Done."
          rm -f /var/lock/subsys/oracle
          echo -n "Shutting Down Oracle Databases: "
          su - oracle -c dbshut >> /var/log/oracle
          echo "Done."
          echo ""
          echo "----------------------------------------------------"
          >> /var/log/oracle
          date +"! %T %a %D : Finished." >> /var/log/oracle
          echo "----------------------------------------------------"
          >> /var/log/oracle
          ;;
    restart)
          echo -n "Restarting Oracle Databases: "
          echo "----------------------------------------------------"
          >> /var/log/oracle
          date +"! %T %a %D : Restarting Oracle Databases as part of system up."        >> /var/log/oracle
          echo "----------------------------------------------------"
          >> /var/log/oracle
          su - oracle -c dbstop >> /var/log/oracle
          su - oracle -c dbstart >> /var/log/oracle
          echo "Done."
          echo -n "Restarting Oracle Listeners: "
          su - oracle -c "lsnrctl stop" >> /var/log/oracle
          su - oracle -c "lsnrctl start" >> /var/log/oracle
          echo "Done."
          echo ""
          echo "----------------------------------------------------"
          >> /var/log/oracle
          date +"! %T %a %D : Finished." >> /var/log/oracle
          echo "----------------------------------------------------"
          >> /var/log/oracle
          touch /var/lock/subsys/oracle
          ;;
    *)
          echo "Usage: oracle {start|stop|restart}"
          exit 1
  esac

이 파일이 실제적으로 정확히 당신의 시스템에서 데이터베이스를 중지하고 실행시키는지를 확인해야 한다. 에러메세지를 위한 /var/log/oracle인 log 파일을 확인하라. 다음 명령들은 실행수준 2,3,4에 해당하는 데이테베이스를 실행시는는 것을 확인 시켜줄 것이다.
       $ ln -s ../init.d/oracle /etc/rc.d/rc2.d/S99oracle
       $ ln -s ../init.d/oracle /etc/rc.d/rc3.d/S99oracle
       $ ln -s ../init.d/oracle /etc/rc.d/rc4.d/S99oracle

시스템을 재 부팅하거나, 재 실행시킬때에 데이터베이스를 중지시키기위해서 우리는 다음과 같은 연결(link)이 필요한다.
       $ ln -s ../init.d/oracle /etc/rc.d/rc0.d/K01oracle          # Halting
       $ ln -s ../init.d/oracle /etc/rc.d/rc6.d/K01oracle          # Rebooting


다음 이전 차례