Linux Üzerinde Oracle

Oracle Hakkında Genel Bilgi.

Çok değil bundan 3-4 sene öncesine kadar Linux adlı işletim sisteminin bu kadar büyük bir kitleye hitap edebileceği kimin aklına gelirdi ki?
Düşünebiliyor musunuz, basit bir ev projesi bu gün Oracle, Borland, Corel, Netscape, IBM, Sun gibi dünya devi firmaların ürün geliştirip
pazarladıkları bir ortam olagelmiştir.


İlk destek veren firmaların başında ürünlerinin her platformda çalışmasını isteyen Netscape oldu. Linux ortamında çalışan Netscape Navigator sürümü
yüzlerce hata ile dolu da olsa Linux' un artık işletim sistemleri sektöründe pastadan bir pay aldığını göstermesi açısından önemli bir gelişmeydi.
Ardından Corel, Borland, Sun, IBM derken minik penguen 15 milyondan fazla kişinin kullandığı ticari bir işletim sistemi oldu.


Bu gelişmelerin içinde en önemlilerinden bir tanesi, veritabanı geliştirme platformlarının tartışmasız lideri Oracle Inc' in Oracle 8i, Oracle
Application Server ve WebDB yazılımlarını Linux ortamına aktarması sayılabilir. Neden bu kadar önemli sorusunun cevabı şu: Birincisi, artık
Linux büyük ölçekli firmaların çok büyük verilerine cevap verebilecek bir işletim sistemi oldu, ikincisi de böylesine ciddi ve ne yaptığını bilen bir
firmanın Linux' a olan güvenini gösterdi.


Bu yazımızda Linux ortamına taşınmış Oracle araçlarını tanıtıp ardından bir Red Hat Linux sisteme Oracle 8i kurulumunu adım adım açıklamaya çalışacağız.



Oracle 8i for Linux

Oracle 8i, veritabanı teknolojisine geleneksel yazılım mantığına yeni özellikler eklerken, Internet çağının ihtiyaçlarına göre verinin yönetimini ve ulaşılması
anlayışını değiştirmiştir. Oracle 8i' nin bir veritabanı entegre web yazılımı geliştirmek için gerekli bütün araçları içermesinden dolayı, herhangi bir şirket,
Internet' in sunduğu bütün olanakları sonuna kadar kullanabilir.


Oracle 8i' nin en göze çarpan özelliklerinden bir tanesi tamamen Java ile bütünleşik olmasıdır. Java, Internet' in gündelik hayata girmesinin ardından
popüler olmuş, nesneye dayalı bir dildir. Java' nın popülaritesinin temel nedeni, işletim sistemi bağımsız ve dilin
son derece modüler yapısı sayesinde gelişmeye son derece açık olmasıdır. Son zamanlarda pek çok C++ yazılım geliştiricisinin bu programlama diline
kayması sonucunda hemen her veritabanı Java desteği içermeye başlamıştır. Oracle' ın da bu akımdan uzak kalması düşünülemezdi. JServer adı verilen
Java VM ile birlikte gelen Oracle, Java kodunun içine SQL komutları girilmesini sağlayan SQLJ teknolojisi dikkate değerdir. Bu sayede kullanıcılar,
C, OracleCall, PL/SQL gibi dillerin yanısıra sadece Java kodu kullanarak yazılım geliştirebilmektedirler.


SQLJ, IBM, Oracle ve Sun tarafından geliştirilmiş açık bir standarttır. İki çeşidi vardır. Birincisi JDBC üzerinde çalışan ve istemci taraflı byte kodlar
üreten mantık ve diğeri, tamamen native arayüzler ile veritabanına erişen sunucu taraflı SQLJ teknolojisi. Oracle 8i, ayrıca JavaBean ve CORBA
teknolojisini de desteklemektedir.


XML, B-to-B (business to Business) uygulamalarda kendisini ispatlamış bir de facto standartıdır. Aynen Internet üzerinde veriyi formatlamak için kullanılan
HTML dili gbi XML, veriyi tanımlamak için kullanılır. En büyük artısı, HTML' in hatalarından ders almış olması ve başka hiçbir arayüz betimleme diline
ihtiyaç duymadan tamamen kendi olanakları ile veritabanları ile iletişime geçebilmesidir.


Oracle 8i, XML dosyalarının Oracle veritabanlarına erişebilmesini sağlamak için gerekli XML işleyiciler ile birlikte gelir. Bahsi geçen XML işleyiciler, XML
Parser for Java, XML Class Generator, C, C++ ve PL/SQL için XML işleyicileri olarak sınıflandırılabilir.


Oracle 8i' nin en çok dikkat çekici özelliklerinden bir tanesi de kısa yazılımı iFS olan ve Türkçesi Internet Dosya Sistemi olarak çevrilebilen bir veritabanı bütünleşik
dosya sistemidir. Oracle iFS, Oracle 8i' nin üstün özelliklerini bir dosya sisteminin kullanım kolaylığı ile birleştirmektedir.
Oracle 8i ile bütünleşik gelen bu sistem, tabanda Oracle JServer üzerinde çalışan bir Java uygulamasıdır. Kullanıcı tarafından görünümü ise ağ üzerinde
görünen herhangi bir disk sürücüden farksızdır. Oracle iFS' ye kfm, mc, windows explorer gibi herhangi bir dosya yöneticisi, ftp programı, e-mail programı
ile ulaşan bir kimse buradaki verileri sanki bir dosyaymış gibi görüntüleyebilme ve üzerinde standart bir dosya sisteminde yapılan kopyalama silme gibi işlemleri
yapabilmektedir. Hatta üzerinde bir veritabanından beklenen arama ve sorguları sanki bir içeriği dosya içerisinde arıyormuş gibi yapabilmektedir.


Bir yazılım geliştiricisinin bakış açısı ile iFS, verilerin güvenle muhafaza edildiği, dosya sistemi hatalarından korunmuş bir ortamdır. Bu sayede çok sayıda
dosya sisteminin düzenlenmesi ve yedeklenmesi ile uğraşmak yerine sadece iFS' nin bakımı ile uğraşmak yeterli olmaktadır. Ayrıca Oracle' ın çok sayıda
sunucuya yayılabilen yapısı sayesinde çok sayıda fiziksel makine ve diskten oluşan bir sistem sanki tek bir dosya sistemiymiş gibi görüntülenmektedir. Bu
sayede mükemmel bir veri bütünlüğü sağlanmış olur.



WebDB ile web yazılımları geliştirilmesi.

Oracle WebDB, içerik tabanlı web sitelerinin hazırlanması, sunulması ve monitör edilmesi için geliştirilmiş ve Oracle veritabanları ile mükemmel uyum
sergileyen bir üründür. Browser tabanlı arayüzü ve kullanıcıya yön verici yaklaşımı ile WebDB, Oracle veritabanlarını en kısa yoldan
web' e aktarmayı amaçlar. Oracle ve WebDB ile geliştirilmiş web yazılımları tamamen Oracle içerisinde saklanır ve istemci tarafında gerekli olan tek yazılım
bir web tarayıcıdan ibarettir.



Sitenin yönetilmesi ve yeni veri girilmesi aşamasında da herhangi bir aracı programa ihtiyaç olmayıp bütün işlemler yine bir web tarayıcı ile bağlanılan bir
sitede yapılmaktadır. Site güncelleme işlemleri için FTP ile dosya transferi devri çoktan kapanmıştır.


Ayrıca Oracle veritabanlarına WebDB ile ulaşılabileceği gibi ASP ve PHP gibi betimleme dilleri de kullanılabilmektedir.



Oracle Application Server

Oracle Application Server yazılımı, Oracle' ın Internet platformu için çok önemli bir bileşenidir. Bundan yıllar önce ilk veritabanlarının var olmasının nedeni
yazılımları veriden bağımsız kılmak iken, şimdi eğilim verilerin arasındaki ilişkiyi veritabanından bağımsız kılma yönündedir. Oracle' ın bu amaçla geliştirilmiş
yazılımı Application Server çok daha az kompleks modüller içeren sunucular ve daha iyi yazılımların ortaya çıkması amaçlamaktadır.


Oracle Application Server yazılımını dört başlık altında inceleyebiliriz.



  • Geliştir : Oracle Application Server, Java ve daha pek çok programlama diline destek vermekte olup, bir yazılım geliştirirken çoğunlukla en çok vakit
    harcanan yerler olan ağ işlemleri, entegrasyon, güvenilirlik, geliştirilebilirlik gibi ihtiyaçlara hazır çözümler sunmaktadır.

  • Dağıt : Bütün ağ modellerine uygun yapısı ile HTML, Java, CORBA, COM gibi yapılara tam destek vermektedir. Diğer benzeri yazılımların aksine Oracle
    dağıtılabilir bir mimaridedir. Üzerinde çalışan proseslerin yükünü azaltmak için çok sayıda sunucuya görev dağılımı yapabilir ve sonuçları tek bir sunucu
    üzerinden yayınlayabilir.

  • Entegre Et : Oracle veritabanları sadece Oracle veritabanları ile iletişim içinde olmak zorunda değildir. ODBC/JDBC arayüzleri sayesinde herhangi bir
    veritabanı ile rahatlıkla iletişime geçebilir.

  • Yönet : Bütün bir Oracle Application Server sitesi, tek bir makine veya yüzlerce makineden oluşsun, web tarayıcı ile tek bir konsoldan yönetilebilir.
    Yakın gelecekte Oracle Application Server, Oracle Enterprise Manager ile entegre bir şekilde sunulacak olup, bütün bir Oracle platformunun tek bir
    konsoldan yönetimi mümkün kılınacaktır.



Linux üzerinde Legato Clustering


Legato, Linux üzerinde, sunucu makinenin kapalı kalma süresini minimize etmeye yönelik çalışan ilk ticari "High Availability" çözümüdür. Bu kapalı kalma
süresi sunucunun bilinçli ya da istenmeyen nedenlerden dolayı işlevini yapamaması anlamını taşımaktadır.


Legato Clustering teknolojisi, Linux üzerinde çalışan Oracle ile birlikte aşağıdaki avantajları sunmaktadır.




























Hata Durumu Legato Cluster Davranışı
Linux sunucu çalışmıyor. Legato Cluster, Oracle sunucuyu başka bir makinede çalıştırır.
Linux üzerinde Oracle sunucuda bir problem var ve çalışmıyor. Legato Cluster, Oracle sunucuyu aynı makine üzerinde çalıştırmaya çalışır ya da hemen başka bir makine üzerinde çalıştırır. Bu davranışı sistem yöneticisi belirler.
Linux sunucu üzerindeki network kartında problem olması durumu Legato Cluster, IP adresleri arasında NIC - to - NIC hata düzeltme yöntemini uygular ve aynı makine üzerindeki başka bir kartı devreye sokar.
Oracle vertiabanının bulunduğu diskte veri kaybı olması durumu Legato Cluster, aynı makine üzerindeki ya da başka makine üzerindeki bir replike veriye ulaşır ve oradan veriyi alarak kopyayı onarır.
Linux sunucunun upgrade edilmesi için kapatılması. Legato Cluster, işlemlerini başka bir makineye aktarır ve sistem upgrade bitince eski sisteme döner.



Oracle for Linux kurulumu


Oracle 8i, Oracle firmasının Linux üzerinde geliştirdiği ilk yazılım olduğu için kurulumu son derece karışıktır. Çok geçmiyor ki gerek Türkiye içinde gerekse
yurt dışındaki listelerde konu ile ilgili sorular karşımıza çıkmasın. Aşağıdaki adımları birebir takip ederseniz bir Red Hat sistem üzerinde Oracle sorunsuz
şekilde kurulacaktır. Diğer sürümlerde bazı belirgin farklılıklar olmasından dolayı bütün sürümleri burada anlatmamız mümkün değildir. Diğer sürümler hakkında
ayrıntılı bilgi için dağıtım üreticinizin web sitesini inceleyiniz.


Kurulum programların temin edilmesinden başlayarak 5 aşamada incelenecektir.



  1. Programların temin edilmesi.

  2. root kullanıcı olarak yapılması gereken işlemler.

  3. oracle kullanıcısı olarak yapılması gereken işlemler.

  4. Oracle 8i' nin kurulması

  5. Bir veritabanı yaratılması



1. Programların temin edilmesi.br>
Oracle veritabanın Linux versiyonu ücretli bir yazılım olup lisanssız olarak kullanılması yasal değildir. Fakat Oracle firması ürünlerini Linux platformunda denemek
isteyen kullanıcılar için 90 günlük deneme sürümünü piyasaya sürmüştür. 90 günlük versiyonu tam fonksiyoneldir.


Ürünü Oracle for Linux' un web sitesi olan http://www.oracle.com/linux adresinden indirebilirsiniz. Az önce bahsi geçen bileşenlerin toplamı 620 MB gibi bir alan tuttuğu
ve Oracle' ın FTP sitesi genelde meşgul olduğu için bu demo sürümlerini temin etmek tam bir işkence olabilir. Programları haklı olarak yurt içinden temin etmek isterseniz
adresler :


ftp://ftp.linux.org.tr/pub/oracle ve
ftp://ftp.onar.com.tr/pub/linux/console/oracle


olmalıdır. Bir diğer ihtimal de Oracle Türkiye veya Amerika' dan bir demo CD istemek olabilir. Oracle Türkiye web sitesi adresi http://www.oracle.com.tr şeklindedir.


Oracle 8i, Red Hat Linux ile birlikte gelmeyen bazı yazılımlara ihtiyaç duymaktadır.


Birincisi Java uygulamalarını çalıştırmaya yarayan JRE 1.1.6v5(Java Runtime Envirenment) yazılımı. Dikkat edilmesi gereken husus, JDK yerine JRE' nın
belirtilen versiyonun temin edilmesinin gerektiğidir. JRE, http://www.blackdown.org adresinden temin edilebilir. Tam olarak edinmeniz gereken dosya ismi,
jre_1.1.6-v5-glibc-x86.tar.gz şeklindedir.


Oracle Enterprise Manager kullanmayı düşünüyor iseniz http://www.scriptics.com adresinden temin edilebilecek olan TCL paketine de ihtiyaç duyacaksınız
demektir. TCL yorumlayıcı dili günümüzün modern bütün Linux sürümleri ile birlikte gelmekte olup büyük ihtimalle bu paketi indirmeye ihtiya duymayacaksınız.
Yazılımın sisteminizde mevcut olup olmadığını anlamak için komut satırında tcl yazmanız yeterli olacaktır.


2. root kullanıcı olarak yapılması gerekli işlemler.

Gerekli yazılımları indirdikten sonra bunların sisteme kurulması işlemine geçilebilir. İlk olarak JRE kurulmalıdır. Kurulumu hakkında ayrıntılı bilgi tar.gz paketinin
içindeki INSTALL adlı dosyada mevcuttur.


JRE' yi /usr/local/jre dizinine kurduğunuzu varsayarak devam ediyoruz.


Oracle 8i, sistemde make adlı programın GNU versiyonunu aramaktadır. Sisteminizde mevcut olup olmadığını öğrenmek için şu komutları veriniz.




# cd /usr/bin
# ls -l gmake



eğer sonuç olumsuz ise make adlı komuttan gmake' e bir sembolik bağlantı yapabilirsiniz. Bu işlem için şu komutu veriniz.




# ln -s /usr/bin/make /usr/bin/gmake



Eğer make sisteminizde mevcut değilse bir an önce kurunuz.



Son olarak da sisteminizde yeterli disk alanının olup olmadığını kontrol etmelisiniz. Oracle 8i, ortalama bir performans için 800 MB disk alanına ve 256 MB
fiziksel belleğe ihtiyaç duymaktadır. Gerekli bilgiyi almak için şu komutları verebilirsiniz.



 
# df -k
# cat /proc/meminfo



Şimdi Oracle 8i' nin kurulumu için bir dizin belirlemelisiniz. Bu dizinin /usr/local/oracle/8i olduğunu varsayarak aşağıdaki komutları veriyoruz.




# mkdir /usr/local/oracle/8i
# cd /usr/local/oracle/8i
# mkdir u01
# mkdir u02
# mkdir u03



Şimdi de yazılımı kullanmaya yetkili bir grup tanımlanması gerekmektedir. Ayrıca sistemi yönetmek için de dba adlı grup tanımlıyoruz.




# groupadd oinstall
# groupadd dba



Oracle kullanısını tanımlıyoruz. Bu kullanıcının varsayılan grubu oinstall ve ayrıca bu kullanıcı dba grubunun bir üyesi olmalıdır.




# adduser -d /usr/local/oracle/8i -s /bin/bash -c "Oracle User" -g oinstall -G dba oracle8i



Oracle' ın kurulacağı dizinin haklarını oinstall kullanıcısına veriyoruz.




# chown oracle8i.oinstall /usr/local/oracle/8i -R
# chmod 755 /usr/local/oracle/8i -R



Oracle kullanıcısına bir şifre tayin ediyoruz.




# passwd oracle8i



Bu aşamalardan sonra Oracle sisteme kurulmaya hazır hale gelecektir. Sırada Oracle kullanıcısının kendi ev dizininde yapacağı değişiklikler var.



3. oracle kullanıcısı olarak yapılması gereken işlemler.

Bilgisayarınıza oracle8i adlı kullanıcı olarak bağlanın ve XWindows ortamına geçiniz.



Oracle kurulacak olan dizinde güvenlik amaçlı koruma maskesini tanımlayınız.




$ umask 022



Bu kullanıcının açılış betiklerinde bazı değişiklikler yapılması gereklidir. Yaplan değişiklikler temelde ORACLE_HOME, ORACLE_BASE gibi çevre
değişkenlerini belitmekten ibarettir.



Aşağıdaki satırları aynı şekilde ev dizininizdeki .bash_profile adlı dosya içersine yazınız.




ORACLE_HOME = /usr/local/oracle/8i/u01/app/oracle/product/8.1.5
ORACLE_BASE = /usr/local/oracle/8i/u01/app/oracle
ORACLE_SID = v8i815
export ORACLE_HOME ORACLE_BASE ORACLE_SID
NLS_LANG='english_unitedkingdom.we8iso8859p1'
ORA_NLS33 = $ORACLE_HOME/ocommon/nls/admin/data
ORACLE_TERM=vt100
LD_LIBRARY_PATH=$ORACLE_HOME/lib
PATH=$PATH:$ORACLE_HOME/bin
export NLS_LANG ORA_NLS33 PATH LD_LIBRARY_PATH

export JAVA_HOME= /usr/local/jre
export PATH=$JAVA_HOME/bin:$PATH



değişikliklerin aktif olması için bir kez daha sistemden çıkarak oracle8i adlı kullanıcı olarak tekrar bağlanınız.



4. Oracle 8i' nin kurulması

Artık sisteminizde gerekli bütün ayarlamalar yapıldı ve Oracle' ı kurmaya hazırsınız. Bir hatadan dolayı runInstaller komutu Red Hat Linux üzerinde
çalışmamaktadır. Bunun yerine runIns.sh' yi çalıştırmak zorundasınız.


Oracle Universal Installer adlı yazılım çalıştıktan sonra çoğu sayfa kendisini açıklar niteliktedir. Fakat bazı dikkat edilmesi gereken hususlar vardır. Aşağıda
bunları işlem sırasına göre yorumlayacağız.




  • hangi grup altında çalışıcağı sorulduğunda oinstall grubunu giriniz. Grup seçimi yapıldıktan sonra kurulum programı /tmp/orainstall/orainstall.sh adlı programı
    çalıştırmanızı isteyecektir. Bu programı çalıştırmadan önce root haklarına sahip olduğunuzdan emin olunuz.




    # cd /tmp/orainstall
    # ./oraInstall.sh



  • Kurulum tipleri ekranına geldiğinizde Custom seçeneğini seçiniz. Diğer iki seçenek çalışmayacaktır.


  • Available Product Components (Mevcut Ürün Modüller) ekranına geldiğinizde Intermedia seçeneği haricinde bütün seçenekleri seçebilirsiniz.
    Bu yazılım hatalarla dolu olup kurulmaması daha faydalıdır.


  • Kurulumun bir aşamasında $ORACLE_HOME/root.sh komutunu root haklarına sahip olarak çalıştırmanız istenecektir. Bu komut varsayılan olarak çalıştırılabilir
    gelmemektedir. Çalıştırmak için aşağıdaki komutu kullanınız.




    # cd /usr/local/oracle/8i
    # sh root.sh




  • Kurulum size bir veritabanı yaratmak isteyip istemediğinizi soracaktır. Cevabınız ne olursa olsun "veritabanı yaratma asistanı" çalışacak ve bu veritabanı yaratılacaktır.


  • Kurulumun sonunda "veritabanı yaratma asistanı" veritabanını yaratırken



    JNLS Exception : oracle.ntp.jnls.JNLSException Unable to Find Any National Character Sets. Please check your Oracle Installation şeklinde bir hata verecektir.


    Bu bilinen bir hatadır, sorun çıkartmayacaktır. Umarsamayınız.


  • Veritabanı yaratma asistanı başladığında cancel tuşuna basarak kurtulabilirsiniz. Ardından Oracle Kurulumuna geri döneceksiniz. Oracle kurulumundan
    çıkınız ve aşağıdaki komutları veriniz.




    $ cd /usr/local/oracle/8i/install/utl
    $ ./linux.sh


    Bu komut bazı çalıştırılabilir olması gereken ama kurulumdaki bir hatadan dolayı olmamış olan dosyalardaki sorunları yok edecektir.




5. Bir veritabanı yaratılması


Veritabanı yaratmak için sisteme oracle8i adlı kullanıcı olarak girmelisiniz. Ardından dbassist komutu ile veritabanı yaratma asistanını çalıştırınız.


veritabanı yaratırken aşağıdaki adımlara dikkat edilmelidir.



  • Select the type of the database to create (Yaratılacak veritabanı tipini seçiniz) sorusu geldiğinde custom seçeneğini seçmelisiniz. Typical seçeneği çalışmamaktadır.


  • Review the Following Database Information (Aşağıdaki veritabanı bilgilerini kontrol ediniz) mesajını içeren ekrana geldiğinizde gerekli bölümlerini doldurunuz. Burada
    veritabanının hangi dosya ismi ile yaratılacağı hanesi yer almamaktadır. Bir kez next (ileri) tuşuna basarak ardından back (geri) tuşuna basınız. Bu sefer bu hane görünecektir.


  • Veritabanı yaratılması aşamasında Intermedia yaratılırken pek çok hata mesajı verecektir. Hiçbirisini umursamayın, işlem sorunsuz gerçekleşecektir.



Sonuç

Bu yazıda Oracle' ın 8i v1.1.5 yazılımını inceledik. Yeni versiyonu olan 8.1.1.6 sürümünde az önce bahsi geçen pek çok hata çözülmüştür.
Kurulumu tam bir ipuçları dünyası olan ve maalesef ki yine kurulumu pek çok hata içeren bu yazılım henüz tamamen hazır değil izlenimi vermesine
rağmen yine de Linux için çok önemli bir adım niteliğindedir. Umut ederiz ki, Oracle Inc. Linux' a verdiği desteği aynen devam ettirir ve böylesine
sorunlu bir kurulumdan kurtulmuş bir Oracle ile pek çok orta ve büyük ölçekli firma sistemlerini Linux' a çevirir.



Bu yazı Eylül 2000 tarihinde PC Net Türkiye dergisinde yayınlanmıştır.