Pages

12 Ocak 2011 Çarşamba

Linux | Unix sistemlerde açılış esnasında veritabanını ve listener’ı otomatik olarak başlatma

Linux ve UNIX sistemlerde veritabanını ve listener’ı boot esnasında açılış scripti ile başlatabiliriz. Bunun için bazı yollar vardır. Birinci yol, veritabanını başlatmak için kullanılan dbstart scripti içine ilgili listeneri eklemek ve değerini Y olarak değiştirmektir. Ancak bazı durumlarda bu başlatmada sıkıntı yaratabilmektedir.

Diğer en uygun yol ise hem veritabanını hemde listener’ı başlatıp durduracak bir script oluşturmak ve runlevel dizinlerinden birine bu scripti iliştirmektir.

Bu script, başlat ve durdur olmak üzere 2 arguman içerecek ve /etc/rc.d/init.d dizininde yer alacaktır. Alttaki komut dbora adlı dosya içerisinden listener’ı ve veritabanını başlatıp durdurmak için eklenmiştir.

case "$1" in
    start)
        # Oracle listener and instance startup
        echo -n "Starting Oracle: "
        su -oracle -c "u01/app/oracle/product/10.2.0/db_1/bin/lsnrctl start"
        su - oracle -c u01/app/oracle/product/10.2.0/db_1/bin/dbstart
        touch /var/lock/subsys/oracle
        echo "OK"
        ;;
    stop)
        # Oracle listener and instance shutdown
        echo -n "Shutdown Oracle: "
        su - oracle -c "u01/app/oracle/product/10.2.0/db_1/bin/lsnrctl stop"
        su - oracle -c u01/app/oracle/product/10.2.0/db_1/bin/dbshut
        rm -f /var/lock/subsys/oracle
        echo "OK"
        ;;
    reload|restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Usage: $0 start|stop|restart|reload"
        exit 1
esac
exit 0

İlk case cümlesi ilk argumanın başlat veya durdur komutu olup olmadığına bakar, su komutları mevcut kullanıcıyı “oracle” kullanıcısı ile değiştirir. su ve oracle arasında kullanılan (-) simgesi ise düzgün ortam ayarlarının sırasıyla uygulanabilmesi için oracle kullanıcısının oturum açma scriptinin çalışması için kullanılır. -c seçeneği tekli işletim sistemi komutunun çalışması için kullanılır.

dbora scripti, oracle kullanıcısının oturum açma scripti herhangi bir değer atanmak için sorduğunda çalışmaz. dbora scriptinin düzgün çalışması için oracle kullanıcısının oturum açma scriptinin interaktif olmaması gerekir.

dbora scriptini oluşturduktan sonra root olarak oturum açtıktan sonra test etmek için aşağıdaki komutları çalıştırın.

./dbora start
./dbora stop

Scriptin çalıştığından emin olduktan sonra şimdi alttaki iki komutu kullanarak bunu açılış scriptlerine iliştirmemiz gerekmektedir.

ln -s /etc/rc.d/init.d/dbora /etc/rc.d/rc0.d/K10dbora
ln -s /etc/rc.d/init.d/dbora /etc/rc.d/rc5.d/S99dbora

Yukardaki ilk ln komutu, runlevel 0 düzeyinde çalışan scriptlerin yer aldığı rc0.d dizinine sembolik bir link oluşturur. Red Hat Linux sistemlerde runlevel 0 sistemi kapatmak için kullanılır. Kxxx scriptleri sistem kapanırken prosesleri kapatmak için kullanılır. İkinci ln komutu rc5.d dizininde sembolik bir link oluşturur ve script S ile başlayarak adlandırılır Sxxx scriptleri Linux sistem boot olurken servisleri başlatmak için kullanılır.

Eğer sisteminizde veritabanını otomatik olarak boot esnasında başlatmak için dbora scripti varsa, bu amaçla ya yukardaki script komutlarını bu mevcut dbora scriptine ekleyebilirsiniz veya bu amaç için başka bir isim altında script oluşturabilirsiniz.

0 yorum:

Yorum Gönder