Linux İşletim Sistemlerinde sunucu açıldığında otomatik olarak Oracle Veritabanını açmak

Merhabalar,

Geçenlerde bir müşterimiz için, sunucu açıldığında otomatik olarak veritabanını açan script yazmamız istenildi.
oracle-base.com dan bulduğum script, 11g ve üzeri single instance Oracle Veritabanı versiyonlarında, ve RHEL tabanlı işletim sistemlerinde test edilmiştir.

Öncelikle scriptin servis olarak çalışması için “init.d” klasörünün altına start ve shutdown scriptlerini çalıştıracak olan scripti koymamız gerekiyor.

“/etc/init.d/orclScript” dosyasını root kullanıcısıyla oluşturalım. İsterseniz aşağıdaki linkten bu dosyayı indirebilirsiniz.

orclScript

#!/bin/sh

# Set OS user of Oracle database to ORA_OWNER variable. 
ORA_OWNER=oracle

case "$1" in
    'start')
        # Start the Oracle databases:
        # The following command assumes that the oracle login 
        # will not prompt the user for any values
        # Remove "&" if you don't want startup as a background process.
        su $ORA_OWNER -c "/home/oracle/dbscripts/startup.sh >> /home/oracle/dbscripts/orclScript.log 2>&1" &

        touch /var/lock/subsys/orclScript
        ;;
    '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 "/home/oracle/dbscripts/shutdown.sh >> /home/oracle/dbscripts/orclScript.log 2>&1"
        rm -f /var/lock/subsys/orclScript
        ;;
esac

Bu dosyaya chmod 750 yetkisini verelim.

chmod 750 /etc/init.d/orclScript

Bu scriptin otomatik olarak çalışması için chkconfig e girmemiz gerekiyor.

chkconfig --add orclScript

Şimdi veritabanını açıp kapatacak scriptleri oluşturmamız gerekiyor. Bunun için scriptleri koyacağımız klasörü oluşturalım.
Veritabanını açıp kapadığımız OS kullanıcısıyla sisteme bağlanalım ve “home” klasörü altına “dbscripts” klasörünü oluşturalım. Ben “oracle” kullanıcısıyla bağlanıyorum.

# su - oracle
$ mkdir dbscripts

Bu klasörün altına aşağıdaki startup ve shutdown scriptlerini oluşturalım. Bu scriptlerde oracle parametrelerini kendi veritabanı parametrelerine göre değiştirmeyi unutmayın.

startup.sh

#!/bin/bash

export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=orcl11g.localdomain
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_home1
export PATH=$ORACLE_HOME/bin:/usr/sbin:/usr/local/bin:$PATH
export ORACLE_UNQNAME=orcl

export ORACLE_SID=orcl

# Start Listener
lsnrctl start

# Start Database
sqlplus / as sysdba << EOF
STARTUP;
EXIT;
EOF

shutdown.sh

#!/bin/bash

export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=orcl11g.localdomain
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_home1
export PATH=$ORACLE_HOME/bin:/usr/sbin:/usr/local/bin:$PATH
export ORACLE_UNQNAME=orcl

export ORACLE_SID=orcl 

# Stop Database
sqlplus / as sysdba << EOF
SHUTDOWN IMMEDIATE;
EXIT;
EOF

# Stop Listener
lsnrctl stop

Dosyaları oluşturduktan sonra yazma yetkisi verelim.

$ chmod u+x /home/oracle/dbscripts/startup.sh /home/oracle/dbscripts/shutdown.sh

orclScript servisini kapatıp açtığımız zaman veritabanımız ve listener ımız otomatik olarak açılıp kapanacaktır.

# service orclScript start
# service orclScript stop

Kaynak: oracle-base.com

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir