Mac OS X ve Oracle Client

Tarih: July 12th, 2010 | Yazan: | 1 Yorum »

Firmalar büyüdükçe dokümantasyonun da iyileşmesini beklersiniz ama sonuç öyle olmuyor. Arama tarama ve alt üst yapma işlemleri sonucunda Oracle veritabanına erişim işlemini başarıyla sonuçlandırdım. Sonuçları bir not olarak burada saklamak istiyorum. Yaş ilerledikçe hafızamın zayıflaması bir yana bir daha o kadar araştıracak gücüm olmayabilir.

Bu arada,

Database Client (Veritabanı istemcisi): Herhangi bir veritabanına bağlanabilmek için gerekli olan temel bağlantı sürücülerini, yöntemlerini içeren uygulamalar.

Enviromental Variables (Ortam Değişkenleri): İşletim sisteminin bazı komutlara veya uygulamalara kolay erişim sağlamak için tuttuğu değişkenler.

Sorun şuradan kaynaklanıyor:

1. derecede kusurlu: Oracle. Nedeni: Söz konusu client dosyalarını herhangi bir yere kopyalıyorsunuz sonrasında da Mac OS X’e Oracle’ın şu klasörü burada, bu klasörü burada diye ortam değişkenlerini (enviromental variables) tanıtıyorsunuz. Ama bir kurulum dokümantasyonu var ki hep linklerle başladığınız yere dönüyorsunuz.

Dolaylı Kusurlu: Mac OS X, işletim sistemi seviyesinde ortamsal değişkenleri düzenlemek daha basit olmalı. Konu okuduğum kaynaların birinde, “Bu işi nasıl kolay ve sihirli bir şekilde çözersiniz” diye anlatılmıştı.

Sonuç: Kurban edilen birkaç nöron ve zaman.

Ne yapmak gerekli:

Bu işi çözmek için aşağıdakileri yapmak gerekiyor:

  1. Oracle veritabanınızın erişebileceğiniz bir yerde kurulu olması gerekiyor. Yerel ağ veya benzeri bir şekilde. Benim örneğimde Oracle 10g söz konusu.
  2. Oracle 10 g Client’ı indirin. http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10204macsoft.html
  3. İndirilen dosyayı açtıktan sonra Applications klasörü altına kopyalıyoruz (bu bir zorunluluk değil ama bir kullanıcının kendine yakışanı yapmasıdır).
  4. Daha sonra işletim sisteminin komut istemcisi olan Terminal’i (Applications > Utilities > Terminal) açıyoruz. Sonraki işlemleri yapmak için yönetici (administrator) yetkisine sahip olmanız gerekebilir.
  5. Mac OS X’in ortam değişkenlerine Oracle’ın , Kütüphanesinin, Binary dosyalarının nerede olduğunu anlatmamız gerekiyor. Zaten Mac OS X in kendine özgü ortam değişkenleri var, örneğin Terminal’i açıp da ls dediğinizde bu komutu nerede bulacağını ortam değişkenlerinden buluyor. Uygulamaların ikametgah kaydı diyebiliriz kısaca.
  6. Bu işlemi yapmak için .bash_login dosyasını düzenleyeceğiz. Bu dosya siz login olduğunuzda yapılacak işlemlerin tanımlandığı bir alan. Bu dosyayı düzenleyebilmek için aşağıdaki kodu yazıyoruz. Nano, komut satırı destekli bir metin düzenleme uygulaması, sudo ise bu uygulamayı yönetici olarak çalıştırmanızı sağlayan komut.
    
    sudo nano .bash_login
    
  7. Karşınıza bir metin düzenleyici uygulama çıkacak, arayüzü komut satırı istemicisi olan bu uygulama içine kopyalama yapıştırma yapabilirsiniz, ama fareniz bu alanda çalışmayacaktır. Aşağıdaki koddaki {} da dahil olmak üzere aradaki alanı Oracle Client Klasörünüze uygun olarka düzeltin. Benim örneğimde bu isim Oracle_10204Client_MAC_X86, yani 1. satır şu şekilde:

    export set ORACLE_HOME=/Applications/Oracle_10204Client_MAC_X86/ohome

    Daha sonra tamamını az önce açmış olduğunuz .bash_login dosyayı içine yapıştırın. İşlemi tamamladıktan sorna Ctrl + x komutue kayıt edin karşınıza çıkan soruları cevaplayın. Ortam değişkenlerini tanımlamış olduk.

    
    export set ORACLE_HOME=/Applications/{Oracle Klasör ismi}/ohome
    export set DYLD_LIBRARY_PATH=$ORACLE_HOME/lib
    export set TNS_ADMIN=$ORACLE_HOME/network/admin
    export set PATH=$PATH:$ORACLE_HOME/bin
    
  8. Yaptığınız işlemleri aşağıdaki komutları yazarak deneyebilirsiniz. Bu işlemin doğru sonuç vermesi için yeniden login olmanız gerekebilir.
    
    echo $ORACLE_HOME
    echo $DYLD_LIBRARY_PATH
    echo $TNS_ADMIN
    echo $PATH
    
  9. Eğer bağlanacağınız veritabanlarında Dil kodlamaları farklı ise bu durumda Oracle_10204Client_MAC_X86/ohome/instantclient klasörü altındaki light klasörünü silmek veya adını değiştirmek isteyebilirsiniz, çünkü bu klasör varken oracle light client’ı kullanacaktır ki bu istemci özellik olarak daha az dil desteğine sahiptir. Bu durumda bağlanacağınız veritabanı ile ilgili dil kodlaması hatası verebilir.
  10. Yaptığımız işin sağlamasını sqlplus plsql/plsql@orcl komutu ile yapabiliriz. Başarılı bir bağlantı elde ediyor olmanız lazım.

Windows’da çalışan bir TNSNAME.ORA dosyanız varsa bu dosyayı Applications/Oracle_10204Client_MAC_X86/ohome/Network klasörü altına kopyalamalısınız.

Navicat Premium: Bunun yanısıra eğer istemci olarak Navicat Premium kullanıyorsanız Preferences alanından Oracle klasörlerini göstermeniz gerekli.

Navicat bende bazı veritabanlarına bağlanırken sorun oluşturdu bu nedenle şimdilik Aqua Data Studio’yu kullanıyorum, ayrıca Oracle’ın da ücretsiz bir uygulması var:

SQL*Developer:

http://www.oracle.com/technology/software/products/sql/index.html

Bunun dışında istemci uygulama önerisi olan varsa sevinirim.


1 Yorum - “Mac OS X ve Oracle Client”

  1. 1 Berkay UNAL saat 18:32 dedi. July 14th, 2010:

    Hocam,

    Navicat for Oracle:
    http://www.navicat.com/en/products/navicat_oracle/oracle_overview.html


Bir yanıt yazın.