ORACLE 8i R3 Enterprise (8.1.7) LINUX KURULUMU
Prepare yourself
for a lot of pain.
Günümüz elektronik ticaret dünyasında kullanılan en popüler database olan oracle, 8i ailesinin üçüncü sürümünde neler değişti? Aslında 8.1.6 ile karşılaştırdığımızda sistemde çok köklü yenilikler olduğu açık. R3 tamamıyla Java mimarisi üzerine kurulmuştur. Bu yüzden oracle 9i Applicatin Server ailesine çok yakındır.
Entity Beans (EJB 1.1)
Java Servlets & Java Server Pages
Java 2 Enterprise Edition APIs
ORACLE 8i JVM Accelerator
Support for SSL over HTTP
Strong encryption for thin JDBC
3DES encryption capabilities
Integration with Entrust PKI
Enhanced XML Development Kits (XDK)
ORACLE http Listener Powered by Apache
Oracle ayrıca bu sürümünde gelişmiş güvenlik sistemi ile güvenliği en üst standardlarda tutarak en düşük maliyeti sunuyor. Parallel server modülü ile topyekün sistem çökmesi ve data kaybı gibi ihtimalleri kolaylıkla ortadan kaldırabiliyoruz. Yine standard olarak gelen bir modül olan Oracle Spatial daha çok kablosuz erişim uygulamaları için ideal bir çözüm sunuyor. Tuning, migration, management, partitioning paketleriyle oracle kendi dünyasında eksiksiz bir yapı kurmuş durumda.
Kuruluma başlamadan önce
:
Genel linux kullanımı,
Standard directory yapıları,
Sistem kütüphaneleri yapılandırması,
Kullanıcı yönetimi,
Temel Java kullanımı ve
Database konularında bilginiz olduğunu varsayıyorum.
Eğer bu konularda eksikleriniz varsa bir an önce gidermeniz, zaman ve psikoloji açısından daha iyi olacaktır.
Ve son olarak ORACLE’a gerçekten ihtiyacınız yoksa daha basit databaseler kullanın!
ORACLE TechNet tarafından önerilen donanım ve yazılım gereksinimlerine uyulması, başarılı bir kurulumun ilk adımı olacaktır. Aynı şekilde oracle, katı standardlarıyla linuxta alışık olduğunuz rahat yapılandırmalardan büyük ölçüde fedakarlık etmenizi gerektiriyor.
Şimdi kurulum için tavsiye edilen makine nasıl olmalı ona bir bakalım :
Oracle 8i R3, intel işlemcili makinalar için hazırlanmıştır. Tavsiye edilen bir işlemci hızı olmasa bile bence bulabileceğiniz en hızlı işlemciyi kullanın.
|
Kurulum Türü |
Gerekli Disk Alanı |
|
Typical |
800 MB |
|
Minimal |
600 MB |
|
Custom |
1 GB a kadar artabilir |
! Bu rakamlar kurulum sırasında STARTER DATABASE yaratmadığımızda geçerlidir. Hazır bir database kurulum sırasında yaratılacaksa bu rakamlara en az 1.2GB ekleyerek gerekli disk alnını hesaplamalısınız.
Geçici disk alanı kurulum sırasında büyük önem taşımaktadır. /tmp altında en az 75 MB boş yer olmasına özen gösterin.
İşletim Sistemi :
ORACLE TechNet dökümanlarında :
Linux Kernel version 2.2 ya da daha üstünü,
GLIBC Packet version 2.1 ya da daha üstünü,
Motif version 1.2 destekleyen herhangi bir window manager önermiştir. (Oracle 8i R3 kurulumu sadece X Windows çalışan bir sistemle yapılabilir.)
Bu aşamada bütün gereksinimleri karşılayan sistem RedHat 6.2 olarak karşımıza çıkıyor.
RedHat’ın Oracle Optimized Linux geliştiren tek dağıtım olmasında bunun payı büyük.
Kurulum ve sonrasında ihtiyacımız olacak dosyalar : ( /usr/bin altında )
make
ar
ld
nm
awk
tee
test
Şimdi gelelim benim makinama:
HP Brio BA600
- Pentium III 700 Mhz
- İntel mainboard
- 256 MB RAM
- 10 GB IDE sabit disk
- 50X CD-Rom
- 3Com 3C905C TX 10/100
Partition yapılandırması :
/ 2 GB
/home 2 GB
/app 5.5 GB (Oracle server buraya kurulacak.)
swap 500 MB
RedHat Linux 6.2 Kurulumu :
Linux için RedHat 6.2 standard version kullandım.
Server kurulumu seçildi ve development paketleri de kuruldu.
Makinamın adını test.basari.com.tr olarak belirliyorum.
Oracle kurulum öncesi ayarlamalarından önce Linux işletim sistemini optimize edelim :
RedHat 6.2 için en son güncellemeleri yapalım :
db3-3.1.17-4.6x.i386.rpm
mount-2.10r-0.6.x.i386.rpm
rpm-4.0.2-6x.i386.rpm
paketlerini ve son olarak da
kernel-enterprise-2.2.19-6.2.1.i686.rpm paketini kurdum.
LILO nun sistem RAM miktarını doğru olarak görmesini sağlamalıyız.
/etc/lilo.conf dosyası içine
image = /boot/vmlinuz- enterprise-2.2.19-6.21
label = linux
root = /dev/hda1
satırları sonuna
append=”mem=256M” satırını ekliyoruz.
# lilo –v
komutunu vererek liloyu güncelliyoruz.
Performans artışı sağladığını düşündüğüm bazı ayarlamalar :
/etc/profile dosyası içine
CFLAGS=’-O9 –funroll-loops –ffast-math –malign-double –mcpu=pentiumpro –march=pentiumpro –fomit-frame-pointer –fno-exceptions’
Bu tek satırı ekliyoruz. (PIII makinamızda daha iyi sonuçlar alabilmek için.)
/etc/sysctl.conf dosyası içine
fs.file-max = 16384 (128 MB RAM için bu değerin yarısını almalısınız.)
fs.inode-max = 65536 (128 MB RAM için bu değerin yarısını almalısınız.)
Son olarak da IDE sabit diskimiz için performans artışı sağlayacak ekleme (hdparm ile oynamadan önce gerekli dökümanları mutlaka okumalısınız.)
/etc/rc.d/rc.local dosyasının sonuna
hdparm –d 1 –X66 /dev/hda satırını ekliyoruz.
İşletim sistemi optimizasyonuyla ilgili düzenlemelerim burda bitiyor.
Oracle standardlarından bir kısmı OFA (Oracle Flexible Architecture) diye adlandırılır ve mount point belirlemede bize optimal yolu gösterir. Buna göre oracle software ve database dosyaları ayrı ayrı 4 mount pointe kurulmalıdır. Ancak typical kurulum seçildiğinde oracle kurulumu tek bir mount point (/app) üzerine yapacaktır. Biz bu yolu takip edeceğiz. Yine aynı doğrultuda oracle kurulumunu, güncelleme ve yönetim işlerini yapacak sadece bir user tanımlayacağız.
Önerilen ve bu kurulumda kullanılacak değerler :
User (login) name |
oracle |
|
User’s primari group |
dba |
|
User’s secondary group |
oinstall |
|
User’s shell |
/bin/bash |
|
User’s home directory |
/home/oracle |
|
User’s umask |
022 |
Oracle kurulum dosyalarına sahiplik edecek ve kurulum işlemini yapacak kullanıcıyı ve gruplarını yaratalım. (grup id için 800 den başlamayı tercih ettim)
# groupadd –g 801 dba
# groupadd –g 802 oinstall
# useradd –g 801 –d /home/oracle oracle (şifre vermeyi unutmuyoruz)
oracle kullanıcısına ikinci group id vermek için /etc/group dosyasında
oinstall:x:802: satırının sonuna oracle yazarak kaydetmeliyiz.
oinstall:x:802:oracle (şeklinde olmalı)
root kullanıcısıyla yapacağımız son iş, oracle serverin kurulacağı dizine oracle kullanıcısı için gerekli izinleri vermek olacak. Kurulum yapmak için oracle kullanıcısının /app dizinine sahip olması gereklidir.
# chown oracle:dba /app
Artık oracle kullanıcısıyla sisteme girip bundan sonraki düzenlemeleri yapabiliriz.
oracle olarak login olun.
! Oracle database sistemlerinde (örneğin MySQL’den farklı olarak) bir server sadece bir tek database içerir. Oracle sistemlerinde bir database SID (Oracle Server Instance Identifier) tanımlamasıyla ifade edilir.
Ben kurulum sonunda yaratılacak database için SID tanımlamasını CLK olarak seçiyorum.
/home/oracle dizini altında .profile adında bir dosya yoksa yaratıp düzenlemeye başlayalım.
Oracle kullanıcısı için environment variable tanımlarını yapalım.
#/home/oracle/.profile
BASH_ENV=$HOME/.bashrc
USERNAME=""
ORACLE_BASE=/app/oracle
ORACLE_HOME=/app/oracle/product/8.1.7
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P9
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export
LD_LIBRARY_PATH
export USERNAME BASH_ENV
PATH ORACLE_BASE ORACLE_HOME NLS_LANG ORA_NLS33
DISPLAY=test.basari.com.tr:0.0
ORACLE_SID=CLK
export DISPLAY
ORACLE_SID
umask 022
ORACLE_HOME : Environment variable ayarlarının en önemlisi. Bütün oracle server
dosyalarının bulunacağı yer.
ORACLE_BASE : Bütün oracle dosyalarının üstündeki dizin.
NLS_LANG : Kurulum diyaloglarında kullanılacak dil. (ingilizce seçiyoruz)
ORA_NLS33 : Server çalışırken kullanacağı dil dosyalarının yeri.
DISPLAY : Kurulum pencerelerinin açılacağı terminal. (Biz konsoldayız)
ORACLE_SID : Yaratılacak database için Server Instance Identifier.
/home/oracle/.profile dosyasıyla işimiz bitti.
oracle kullanıcısıyla sisteme tekrar girip yaptığımız ayarları set komutuyla kontrol edelim.
Oracle 8i R3 CDsindeki bir dosyayı düzenlememiz gerektiği için CDdeki bütün dosyaları
Sabit diske almamız gerekiyor. L Dosyaların sahibi oracle kullanıcısı ve dba grubu olmalıdır.
/home/oracle/Oracle8iR3 dizinini yaratalım. Bütün dosyaları buraya kopyalayalım.
/home/oracle/Oracle8iR3/install/oraparam.ini dosyasındaki
DISTRIBUTION=FALSE satırını
DISTRIBUTION=TRUE şekline getirelim
JRE_LOCATION=../stage/Components/oracle.swd.jre/1.1.8/1/DataFiles/Expanded/linux
satırını şu şekilde değiştiriyoruz. (Aksi takdirde kurulum java hatalarından tamamlanamıyor.)
Aynı dosyadaki
JRE_MEMORY_OPTIONS=" –mx256m" satırını da şu şekilde değiştiriyoruz
Bu değer kurulum sırasında Java Virtual Machine için kullanılabilir en fazla ram miktarını belirliyor. Makinamız çok hızlı olsa da 256 değeri kurulumda swap kullanımını zorunlu hale getiriyor. Bu da kurulum süresini çok fazla uzatıyor.
Bu dosyayla da işimiz bitince kuruluma başlayabiliriz.
X Windows açıkken konsoldan şu komutu veriyoruz.
/home/oracle/Oracle8iR3/install/linux/runInstaller
Oracle Universal Installer Welcome penceresi açılacak ve interaktif kurulum başlayacaktır.
Welcome Screen
Next düğmesiyle geçiyoruz.
Üstteki kutucuk otomatikman products.jar isimli dosyanın tam yerini gösterecektir.
Alttaki kutucuk ise daha önce belirlediğimiz ORACLE_HOME dizinini göstermelidir.
Next
Server kurduğumuz için Oracle 8i Enterprise Edition 8.1.7 seçiyoruz.
Next
Typical seçiyoruz.
Next
Global Database Name olarak test.basari.com.tr veriyorum.
SID olarak daha önce belirttiğim gibi CLK giriyorum.
Next
/home/oracle/Oracle8iR3/stage/Components/oracle.swd.jre/1.1.8/1/DataFiles/Expand
olarak giriyoruz.
Next
Bu aşamada kurulacak bütün programların ayrıntılı listesini görebilirsiniz.
RedHat 7.X Server Üzerine
Kurulum
Oracle yaptığı
duyuruda RedHat 7.X kullanıcılarının kurulum sırasında sorun yaşayacağını
bildirmiştir. Sorunun glibc version
çakışmasından kaynaklandığı anlatılmış ve çıkarılan patch ile sorun çözülmüştür.
Glibc-2.1.3 kullanılarak hazırlanan Oracle 8i R3, kurulum sonunda daha yeni bir
glibc ile karşılaşınca geçersiz linkler oluşturuyor. Bu adresten çekilebilen
patch içindeki talimatlar yerine getirilmeden RedHat 7.X üzerine kurulum
yapılamıyor.
ftp://205.227.44.220/server/patches/unix/LINUX
Patch çıkarılmadan
önce bulunan başka bir çözümü burada anlatmak istiyorum. RedHat 7.1 server
makinada uygulayarak kurulumu başarıyla tamamladım.
Kuruluma anlatıldığı
gibi başlanıyor ve installation type ekranında custom seçiliyor. Hemen
sonrasında OUI bize kurulum sırasında bir database yaratmak isteyip
istemediğimizi soruyor. No diyerek kurulumu tamamlıyoruz. Serveri çalıştırmadan
önce yapılması gerekenler :
Eğer yüklü
değillerse,
compat-egcs-6.2-1.1.2.9 ve compat-glibc-6.2-2.1.3.2 paketlerini kuruyoruz.
ORACLE_HOME altındaki env_*.mk şeklindeki bütün dosyaları buluyoruz. (Çok değil)
Her birinin içindeki CC=cc yazan yerleri CC=i386-glibc21-linux-gcc şeklinde,
LINK=$(PURECMDS) gcc $(LDFLAGS) $(COMPOBJS) satırlarını da
LINK=$(PURECMDS) i386-glibc21-linux-gcc $(LDFLAGS)
$(COMPOBJS)
şeklinde
değiştiriyoruz.
Daha sonra
ORACLE_HOME/bin dizini altındaki genclntsh scriptindeki
LD="ld -shared -L${ORACLE_HOME}/lib"
LD_RUNTIME="-R${ORACLE_HOME}/lib"
LD_OPT="-h ${CLNT_LIB}"
Satırlarını şu şekilde
değiştiriyoruz :
LD="i386-glibc21-linux-gcc -shared
-L${ORACLE_HOME}/lib"
LD_RUNTIME="-Wl,-R${ORACLE_HOME}/lib"
genclntsh scriptini çalıştırıp libclntsh.so dosyasını doğru şekilde oluşturuyoruz.
Son olarak ORACLE_HOME/bin altındaki relink komutunu kullanarak bitiriyoruz.
$ relink all
Artık oracle RedHat 7.1 üzerinde çalışmaya hazır.
Bu doküman kurulum işlemleri adım adım takip edilerek hazırlanmıştır.
Bölümler hakkında ayrıntılı bilgi için web adreslerini ziyaret etmenizi öneririm :
http://www.oracle.com/ ORACLE_HOME J
http://otn.oracle.com/ Oracle technology Network/ Her konuda pdf ve html dökümanı.
http://www.redhat.com/ RedHat Home.
http://www.oraclefans.com/ Oracle Fan Club #1
http://www.orafans.com/ Oracle fan Club #2
http://www.orafaq.org/ Oracle için binlerce FAQ
http://www.orasoft.org/ Linux üzerinde çalışan oracle uygulamaları.
http://www.linuxdoc.org/ Linux Documentation Project Home
http://groups.yahoo.com/group/oracle-on-linux 9000 üyeli bir mail group. J
http://www.blackdown.com/ Java Development for Linux
http://www.javasoft.com/ SUN Java Home
http://www.ibm.com/java IBM Java Home
Celal ÜNALP
24 Mayıs 2001 - Başarı Telekom
Ankara - TÜRKİYE