DBA

개인 학습, 작업 기록용입니다. 올바르지 않은 정보가 있다면 댓글주시면 감사하겠습니다!

DATABASE/Oracle

[Oracle] 오라클 서비스 시작, 중지, 기동 확인 쉘 스크립트

DBnA 2024. 1. 9. 13:17

OS 환경 : CentOS7

 

 

오라클 중지 스크립트  ( oracle_stop.sh )

1. 리스너 중지

2. 남아있는 오라클 세션 kill

3. 오라클 셧다운

4. 정상 셧다운 확인

  - DB 인스턴스 조회하여 해당 구문 error코드값으로 확인

    0이면 쿼리 정상 수행 ( DB 올라온 상태 ) 

    0아니면 ERROR ( DB 내려간 상태)

#!/bin/sh

#리스너중지
/bin/su - oracle -c "lsnrctl stop"

#오라클세션 kill
ps -ef |grep LOCAL|grep oracle|grep -v grep |awk '{print $2}'|xargs kill -9

#오라클 셧다운
/bin/su - oracle -c "sqlplus '/as sysdba'" <<EOF
shutdown immediate ;
exit
EOF

#오라클기동확인
/bin/su - oracle -c "sqlplus '/as sysdba'" <<EOF
  select status from v\$instance;
exit sql.sqlcode
EOF

let "SQL_CODE = $?"
echo $SQL_CODE

if [ $SQL_CODE == "0" ]; then
 echo "DB START"
else
 echo "DB down"
fi

 

 

오라클 시작 스크립트 ( oracle_start.sh )

1. 오라클 STARTUP

2. 오라클 리스너 START

3. 정상 기동 확인

#!/bin/sh

#오라클 STARTUP
/bin/su - oracle -c "sqlplus '/as sysdba'" <<EOF
startup ;
exit ;
EOF

#오라클 리스너 START
/bin/su - oracle -c "lsnrctl start"


#오라클기동확인
/bin/su - oracle -c "sqlplus '/as sysdba'" <<EOF
  select status from v\$instance;
exit sql.sqlcode
EOF

let "SQL_CODE = $?"
echo $SQL_CODE

if [ $SQL_CODE == "0" ]; then
 echo "DB START"
else
 echo "DB down"
fi

 

 

참고)

H/A 클러스터 환경에서 오라클 기동 중지 쉘 스크립트 – DBA의 정석 (oracledba.zapto.org)

Linux - shell 로 sqlplus 접속후 Query 하여 Oracle SQLERROR 발생시 종료 : 네이버 블로그 (naver.com)