Linux İşletim Sistemlerinde Otomatik Veritabanı Başlatma ve Durdurma

LinuxAll

Bu makalemizde Linux İşletim Sistemleri üzerinde otomatik veritabanı başlatma ve durdurma konusunu inceleyeceğiz. Veritabanı ile birlikte Listener Servisi ve Enterprise Manager konsolununda otomatik açılıp kapanmasını sağlayacağız.

Bu özellikle sistemimizde kurulu olan veritabanımız sunucumuz açıldığında açılacak sunucumuza shutdown veya reboot komutu verdiğimizde kapanacaktır.

1. Öncelikle sistemimizde oracle kullanıcısı için “.bash_profile tanımlamalarını yapıyoruz. Örnek olarak bende kurulu olan sistemdeki özelliklere göre ayarlamaları yaptım. Sizler buradaki değişkenleri kendi sisteminize göre ayarlamanız gerekmektedir.

--- Oracle kullanıcısı ile Home dizinindeyken aşağıdaki gibi
".bash_profile" dosyasını açıyoruz.

$ vim .bash_profile

-- Açmış olduğumuz dosyaya aşağıdaki değişkenleri kendi sistemimize göre
değiştirdikten dosyamıza ekliyoruz. 

# Oracle bash_profile Environment Settings

TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_HOSTNAME=koraykey-db.localdomain; export ORACLE_HOSTNAME
ORACLE_UNQNAME=orcl; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
GRID_HOME=/u01/app/11.2.0.3/grid; export GRID_HOME
DB_HOME=$ORACLE_BASE/product/11.2.0.3/db; export DB_HOME
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
    ulimit -p 16384
    ulimit -n 65536
  else
    ulimit -u 16384 -n 65536
  fi
fi

alias oraenv='. /home/oracle/.bash_profile'

2. İşletim Sistemi başlangıcında çalışacak servis dosyamızı hazırlıyoruz.

-- root kullanıcısına geçiş yapıyoruz.

$ su - root 
Password: 
# vim /etc/init.d/dbora

-- Ardından aşağıdaki değişiklikleri açmış olduğumuz "/etc/init.d/dbora"
dosyasında yapıyoruz.

#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Set ORA_OWNER to the user id of the owner of the 
# Oracle database software.

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
          su - $ORA_OWNER -c "/home/oracle/scripts/startup.sh >> /home/oracle/scripts/startup_shutdown.log 2>&1"
        touch /var/lock/subsys/dbora
        ;;
    '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/scripts/shutdown.sh >> /home/oracle/scripts/startup_shutdown.log 2>&1"
        rm -f /var/lock/subsys/dbora
        ;;
esac

3. Dosya üzerindeki güvenliği ayarlıyoruz.

# chmod 750 /etc/init.d/dbora

4. Başlangıçta çalışması için chkconfig katmanına ekliyoruz.

# chkconfig --add dbora

5. Şimdi dbora dosyasında bahsettiğimiz açılış ve kapanış scriptlerini oluşturacağımız dizine koyacağız. Bununla beraber açılış ve kapanışta çalışması gereken komutları bu dosyalarımızın için yazacağız. Bununla beraber dosyalarımıza “oracle” kullanıcısının erişebilmesi için gerekli ayarları yapacağız.

# mkdir -p /home/oracle/scripts
# chown oracle.oinstall /home/oracle/scripts

6. Artık başlangıç ve kapanış scriptlerimizi oluşturabiliriz. Burada kullanılan DB parametresini kendi sistemimize göre ayarlamamız gerekmektedir.

-- Başlangıç Scriptimizi oluşturuyoruz.

# vim /home/oracle/scripts/startup.sh

-- Açmış olduğumuz dosyaya aşağıdaki satırları giriyoruz.

#!/bin/bash

export ORACLE_SID=orcl
ORAENV_ASK=NO
. oraenv
ORAENV_ASK=YES

# Start Listener
lsnrctl start

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

# Start Enterprise Manager
emctl start dbconsole

-- Kapanış Scriptimizi oluşturuyoruz.

# vim /home/oracle/scripts/shutdown.sh

-- Açmış olduğumuz dosyaya aşağıdaki satırları giriyoruz.

#!/bin/bash

export ORACLE_SID=orcl
ORAENV_ASK=NO
. oraenv
ORAENV_ASK=YES

# Stop Enterprise Manager
emctl stop dbconsole

# Stop Listener
lsnrctl stop

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

7. Bu işlemden sonra scriptlerimizin sahiplik ve güvenlik ayarlarını yapacağız.

# chmod u+x /home/oracle/scripts/startup.sh /home/oracle/scripts/shutdown.sh
# chown oracle.oinstall /home/oracle/scripts/startup.sh /home/oracle/scripts/shutdown.sh

8. Yapacaklarımız bu kadar artık servislerimizi test edebiliriz.

# service dbora start
# service dbora stop

Bu makalemizde uygulanan adımlar Oracle Enterprise Linux 6.4 üzerinde Oracle 11g R2 (11.2.0.3.0) veritabanında test edilmiştir.

Başka bir makalede görüşmek dileğiyle…

Bu yazı Oracle, Unix / Linux kategorisine gönderilmiş ve , , , , , , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.