Linux Üzerinde Oracle
Ç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.
- Programların temin edilmesi.
- root kullanıcı olarak yapılması gereken işlemler.
- oracle kullanıcısı olarak yapılması gereken işlemler.
- Oracle 8i' nin kurulması
- 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.