Linux makinada Oracle ‘ı manuel olarak tamamen kaldırma 

Oracle veritabanını kurmak kadar kaldırmak ta bir problem olabilir. Eğer oracle veritabanını kaldırmanın kolay olduğunu düşünen birini görürseniz ya çok mütevazidir ya da daha kaldırma gereği duymamıştır.

Özellikle sistemde birden fazla oracle ürünü kuruluysa ve de kurulumlar standart klasör yolları ve en uygun ayarlar ile yapılmamış ise risk katlanılmaz olabilir.  Daha da kötüsü veritabanı ciddi hasar görmüş ise  deinstall scriptleri çalışmıyor ise ..

Böyle bir durumda tercih edilebilecek yok veritabanı uygulamasını ve instanceları  elle kaldırmak olacaktır.

Örnek olarak Centos 6.5 üzerinde standart klasör yapısı ile kurulmuş bir oracle veritabanı uygulamasının ve buna bağlı instanceların kaldırılmasını inceleyelim.

Öncelikle

  • Klasik yollarla kaldırmayı deneyin  ( deinstall script).Başarılı olursanız bu reçeteyi çöpleri temizlemek için takip edin.
  • Kaldırma işlemine başlamadan önce usr/local/bin/oraenv  dosyasını, etc/oraInst.loc dosyasını , /u01/app/oracle/oraInventory dosyası gibi kritik dosyaları ve veritabanından kurtarabileceğiniz verileri ( ya da veri dosyalarını) yedekleyin
  • Bazı dosyaları silebilmek için root yetkisine ihtiyacınız olacak. root yetkisine sahip olduğunuzan emin olun.
  • Herhangi bir dosyayı silmeden önce o dosyanın ilgili klasörde olduğuna emin olun! Bazı kurulumlarda dosya yolları farklı olabilir, dosya isimleri değişik olabilir.!  Toplu silme işlemi yapmadan önce dosyaları listeleyip neyi sildiğinizden emin olun!
  • Her yaptığınız işlemi kaydedin
  • Birden fazla reçeteyi takip ederek yaptığınız işlemden emin olun
  • Her ne kadar aşağıdaki işlemler defalarca denemiş olsa da her durumu karşılamayabilir.
  • Dikkatli olun!

Dikkat! Sistemde kurulu başka oracle uygulaması var mı? Diğer uygulamalara zarar vermemek için yazıyı dikkatle okumadan komutları çalıştırmayın. Oracle veritabanı uygulamasını değil de sadece tek bir oracle instance ‘ı kaldıracaksanız bu reçete size göre değil!!

 

  • Öncelikle çalışan oracle veritabanı instance  ve listener var ise durdurun. Eğer durduramıyor iseniz proseslerden oracle instance ı bulun ve kill komutu ile öldürün. Bunun için isteme root yetkileri ile girmenizde fayda var.

! Başka oracle uygulamaları da var ise komutu daha dikkatli kullanın. Diğer prosesleri öldürmeyin!

  Örnek:

Oracle instanceları ve listenerları bulup öldürmek için  ps komutu ve öldürmek içik kill komutu ..  Oracle kullanıcısı ile kurulum yapıldığı için instanceları rahatlıkla ayırabiliyoruz

#ps -aef | grep lsnr

oracle 17935 1     0 2013  /u01/app/11.1.0.7/.. LISTENER

root   97983 81338 0 2013 grep lsnr

kill –9 17935

#ps –ef | grep  ora_

oracle   111345    1  0 2013   ora_pmon

oracle   135789    1  0 2013   ora_smon

..

#kill –9 111345 135789

! Proses isimleri kurulumdan kuruluma farklılık gösterebilir. Kendi kurulumunuza ait proses isimlerini ve desenini öğrenin

  • ORACLE_HOME dizinini ve altındaki her şeyi silin

Burada ORACLE_HOME oracle veritabanının home dizinidir. Başka oracle uygulamaları kurulu ise ORACLE_HOME çevre değişkeni değiştirilmiş olabilir.

Genel olarak oracle veritabanı için ORACLE_HOME

/u01/app/oracle/product/11.2.0/dbhome

veya daha kötü bir kurulumda

/oracle/ora_apps/oradb/product/11.1.0/dbhome

 

gibi bir klasör yolundadır

Örnek:

# rm -rf /u01/app/oracle/product/11.1.0/dbhome_1

  • Oracle veritabanının zamanlanmış görevlerini (cron job) kaldırın .

var/spool/oracle

dosyasında oracle uygulamalarının zamanlanmış görevleri bulunur.  Önce içinde ne var bakın

Ör:

[root@localhost cron]# cat oracle
0,15,30,45 * * * * /u01/app/oracle/product/11.1.0/dbhome/.. -cron -silent start

0,15,30,45 * * * * /u01_apps/oracle/odi/ … 

Başka oracle uygulaması yüklü değilse bu dosyayı silin!! 

# rm -rf /var/spool/oracle

Fakat yukarıdaki örnekte ikinci satırda oracle veritabanı değil ODI için zamanlanmış görev de var.

Bu durumda yapmamız bu dosyayı açarak sadece veritabanı zamanlanmış görevi bulunan satırları silmek

  • /etc klasörüne girin. Bu klasörde oracle ile ilgili iki tane dosya göreceksiniz . Bu  dosyalar ora ile başlar !

[root@localhost /]# ls -l /etc/ora*
-rw-r–r– 1 root root 32 Jan 9 2014 /etc/oracle-release
-rw-rw-r– 1 oracle oracle 734 Jan 2 08:53 /etc/oratab
 

    oracle-release dosya işletim sisteminin oracle-linux versiyonunu gösterir ( oracle linux a çevirdi iseniz). Bu dosyaya dokunmayın!
    oratab dosyasında sistemdeki oracle veritabanı uygulamalarını ve bunlara bağlı veritabanı instanceları bulunur. Biz şimdi tüm veritabanı ve uygulamalarını kaldırmak istediğimizden bu dosyayı sileceğiz.

#rm -rf etc/oratab

! Bu dosyayı kaldırmak için root yetkisi gereklidir!

! Bazı kurulumlarda bu dosya /var/opt/oracle altında olabilir

  • Oracle çevre değişkeni dosyalarını silin </LI>

#rm -f /usr/local/bin/coraenv
#rm -f /usr/local/bin/oraenv
 

  • Eğer tüm oracle uygulamalarını kaldıracaksanız tüm oracle uygulamaları tarafından kullanılan şu dosyayı silin

# rm -rf /etc/oraInst.loc

! Bu dosyayı kaldırmak için root yetkisi gereklidir!

  • OraInventory dosyasını silin

# rm –rf  /u01/app/oracle/oraInventory

Bu dosya ne işe yarar? http://gerardnico.com/wiki/database/oracle/orainventory

Bu dosya temiz kurulum yapmak için çok kritik. tek bir kurulum olan makinada dbhome_2 gibi isimlerin sorumlusu işte bu dosya.Önceki kurulumun nerede izi kaldı diye arıyorsanız ilk bakmanız gereken yer burası!!

    Tertemiz makinamız hazır.