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

Windows Oracle Standby Veritabanı Arşiv Silme Scripti

Merhabalar,

Önceki yazımda Linux ve Unix işletim sistemleri için Standby veritabanında biriken arşiv dosyalarımızın temizlenmesi için script oluşturmuştuk. O scripte yeralan archiveDelete.sh scriptini windows için uyarladım. Geri kalan dosyalarda herhangi bir değişiklik olmayacak.
archiveDelete.bat

cd %archivePath% -- archivePath yerine arşiv scriptinin bulunduğu klasörü yazın.
del MAXSEQ.tmp
sqlplus -S /nolog < Maxseq.sql 
for /f "tokens=1,2" %%a in ('type MAXSEQ.tmp') do set seq%%a=%%b
set DD=%date:~-4%%date:~4,2%%date:~7,2%%time:~0,2%%time:~3,2%%time:~6,2%
set logfile=STANDBY_ARC_DEL_%DD%.log
(
 echo run{
 echo crosscheck archivelog all;
 echo delete noprompt archivelog until sequence %seq1% thread 1;
 echo delete noprompt archivelog until sequence %seq2% thread 2;
 echo delete noprompt archivelog until sequence %seq3% thread 3;
 echo delete noprompt archivelog until sequence %seq4% thread 4;
 echo }
) | rman target / nocatalog log %logfile%

forfiles /P %archivePath% /D -7 /M STANDBY*.* /C "cmd /c del @file" -- archivePath yerine arşiv scriptinin bulunduğu klasörü yazın.

Linux – Volume Group'dan Fiziksel Sürücüleri Çıkarmak

Merhabalar,

Bazen LVM için oluşturmuş olduğunuz fiziksel sunucuları geri almak isteyebilirsiniz. Ya da o fiziksel sürücüleri başka bir LVM için kullanmak isteyebilirsiniz. Fakat bu işlemi yapmadan önce fiziksel sürücüleirn kullanılmadığından emin olmalısınız. Bunun için ‘pvdisplay’ komutunu kullanabilirsiniz. PV Size bölümünde NOT usable yazısını görmelisiniz.

# pvdisplay /dev/hda1

--- Physical volume ---
PV Name               /dev/hda1
VG Name               myvg
PV Size               1.95 GB / NOT usable 4 MB [LVM: 122 KB]
PV#                   1
PV Status             available
Allocatable           yes (but full)
Cur LV                1
PE Size (KByte)       4096
Total PE              499
Free PE               0
Allocated PE          499
PV UUID               Sd44tK-9IRw-SrMC-MOkn-76iP-iftz-OVSen7

Eğer fiziksel sürücü kullanılıyorsa, öncelikle verileri başka sürücülere aktarmalısınız. Bunun için pvmove komutunu kullanabilirsiniz.

Diskimiz hazır ise vgreduce komutunu kullanarak fiziksel sürücüyü volume group’dan çıkarabiliriz.

# vgreduce myvg  /dev/hda1

LVM Boyutunu Düşürme

Merhabalar,

Bu yazımda Linux sistemimizde bulunan mevcut LVM diskimizin boyutunu düşürmekten bahsedeceğim. Öncelikle sistemimizde yeterli miktarda boş alan bulunduğunu kontrol etmemiz lazım.
Daha sonra sırasıyla aşağıdaki komutları uygulayın. Bu işlemi uygularken yanlış yaptığınız zaman veri kaybı yaşayabileceğiniz unutmayın.

# umount /oracle
# resize2fs /dev/oraclevg/oraclelv 50000
# lvreduce -L-1G /dev/oraclevg/oraclelv
# mount /home

Oracle Kurulum DVD sinden Oracle için Gerekli Olan Paketlerin Kurulması

Merhabalar,

Bu yazımda Oracle veritabanı kurulumundan önce gerekli olan paketlerin kurulumu için kullanılan pre-installation paketinin kurulumundan bahsedeceğim. Preinstallation paketini otomatik olarak oracle veritabanı için gerekli olan tüm grupları, işletim sistemi kullanıcılarını ve işletim sistemi paketlerini sunucunuza kurar. Bu paketi kurmak için oracle public yum repository de bulunan  “oracle-rdbms-server-11gR2-preinstall” paketini kurmanız gerekiyor. Bu paketi kurmak için:

Eğer makineniz internete bağlıysa oracle repository lerini aldıktan sonra aşağıdaki komutla hazır paketleri yükleyebilirsiniz.

# cd /etc/yum.repos.d
# wget http://public-yum.oracle.com/public-yum-ol6.repo
# yum install oracle-rdbms-server-11gR2-preinstall

Eğer oracle kurulum dvd sinden bu paketi yüklemek istiyorsanız, öncelikle dvd yi mount edip, oracle repository ye dvd nin adresini tanıtmanız gerekiyor.

 

# cd /etc/yum.repos.d
# vi public-yum-ol6.repo

Aşağıdaki kodu repository e ekleyin.


[Install_DVD_base]
name=Install DVD
baseurl=file:///cdrom/Server
gpgcheck=0
enabled=1
skip_if_unavailable=True

Yeni bir klasör oluşturup DVD yi bu klasöre mount edin.


# mkdir /cdrom
# mount -t iso9660 -o ro /dev/cdrom /cdrom

Yum komutunu kullanarak preinstall paketini kurabilirsiniz.

# yum install oracle-rdbms-server-11gR2-preinstall/span>