# ============================================
# Oracle 19c OS 부팅 자동 시작 스크립트 설정
# 환경
# ORACLE_USER = ora19c
# ORACLE_HOME = /app/ora19c/19c
# ORACLE_SID = DB19
# ============================================
# 1. Oracle 시작/종료 스크립트 생성
vi /etc/init.d/oracle19c
# 아래 내용 전체 입력
#!/bin/bash
ORACLE_USER=ora19c
ORACLE_HOME=/app/ora19c/19c
ORACLE_SID=DB19
case "$1" in
start)
echo "=============================="
echo " Oracle 19c START"
echo "=============================="
su - $ORACLE_USER -c "
export ORACLE_HOME=$ORACLE_HOME
export ORACLE_SID=$ORACLE_SID
export PATH=\$ORACLE_HOME/bin:\$PATH
lsnrctl start
sqlplus / as sysdba <<EOF
startup;
exit;
EOF
"
echo "Oracle START 완료"
;;
stop)
echo "=============================="
echo " Oracle 19c STOP"
echo "=============================="
su - $ORACLE_USER -c "
export ORACLE_HOME=$ORACLE_HOME
export ORACLE_SID=$ORACLE_SID
export PATH=\$ORACLE_HOME/bin:\$PATH
sqlplus / as sysdba <<EOF
shutdown immediate;
exit;
EOF
lsnrctl stop
"
echo "Oracle STOP 완료"
;;
restart)
$0 stop
sleep 3
$0 start
;;
status)
echo "=============================="
echo " Listener 상태"
echo "=============================="
su - $ORACLE_USER -c "
export ORACLE_HOME=$ORACLE_HOME
export ORACLE_SID=$ORACLE_SID
export PATH=\$ORACLE_HOME/bin:\$PATH
lsnrctl status
"
echo ""
echo "=============================="
echo " Oracle DB Process"
echo "=============================="
ps -ef | grep pmon | grep -v grep
;;
*)
echo "사용법: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
# vi 저장
# Esc
# :wq
# Enter
# ============================================
# 2. 실행 권한 부여
# ============================================
chmod +x /etc/init.d/oracle19c
# ============================================
# 3. 스크립트 수동 실행 테스트
# ============================================
# Oracle 시작
/etc/init.d/oracle19c start
# 상태 확인
/etc/init.d/oracle19c status
# Oracle 종료
/etc/init.d/oracle19c stop
# 다시 시작
/etc/init.d/oracle19c start
# ============================================
# 4. systemd 서비스 파일 생성
# ============================================
vi /etc/systemd/system/oracle19c.service
# 아래 내용 입력
[Unit]
Description=Oracle Database 19c
After=network.target
[Service]
Type=forking
User=root
ExecStart=/etc/init.d/oracle19c start
ExecStop=/etc/init.d/oracle19c stop
RemainAfterExit=yes
TimeoutStartSec=300
TimeoutStopSec=300
[Install]
WantedBy=multi-user.target
# vi 저장
# Esc
# :wq
# Enter
# ============================================
# 5. systemd 설정 반영
# ============================================
systemctl daemon-reload
# ============================================
# 6. OS 부팅 시 Oracle 자동 시작 등록
# ============================================
systemctl enable oracle19c
# 자동 시작 등록 확인
systemctl is-enabled oracle19c
# 정상 결과
# enabled
# ============================================
# 7. Oracle 서비스 시작
# ============================================
systemctl start oracle19c
# ============================================
# 8. Oracle 서비스 상태 확인
# ============================================
systemctl status oracle19c
# ============================================
# 9. 실제 Oracle DB 실행 여부 확인
# ============================================
ps -ef | grep pmon
# 정상 예
# ora19c ... ora_pmon_DB19
# ============================================
# 10. Listener 상태 확인
# ============================================
su - ora19c -c "lsnrctl status"
# ============================================
# 11. 재부팅 테스트
# ============================================
reboot
# ============================================
# 12. 재부팅 후 Oracle 자동 실행 확인
# ============================================
ps -ef | grep pmon
su - ora19c -c "lsnrctl status"
systemctl status oracle19c
# ============================================
# 최종 동작 순서
# ============================================
# Linux OS 부팅
# ↓
# systemd
# ↓
# oracle19c.service
# ↓
# /etc/init.d/oracle19c start
# ↓
# Listener 시작
# ↓
# Oracle DB19 startup
# ↓
# Oracle 19c 자동 실행 완료
카테고리 없음