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…