ORACLE 8i R3 Enterprise (8.1.7) LINUX KURULUMU

 

Prepare yourself for a lot of pain.

celal.unalp@basari.com.tr

 

 

ORACLE 8i Release 3

 

            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!

Celak’ın Makinası

 

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.

 

 

Kurulum Öncesi ORACLE Gereksinimleri

 

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.

 

 

Kuruluma Başlıyoruz

 

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.)

 

JRE_LOCATION=../stage/Components/oracle.swd.jre/1.1.8/1/DataFiles/Expanded

 

Aynı dosyadaki

 

JRE_MEMORY_OPTIONS=" –mx256m"   satırını da şu şekilde değiştiriyoruz

 

JRE_MEMORY_OPTIONS=" -mx32m"

 

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.

ORACLE UNIVERSAL INSTALLER (OUI)

 

Welcome Screen

 

Next düğmesiyle geçiyoruz.

 

File Locations Screen           

           

Ü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

 

Available Products Screen

           

Server kurduğumuz için Oracle 8i Enterprise Edition 8.1.7 seçiyoruz.

 

Next

 

Installation Types Screen

 

 

Typical seçiyoruz.

 

Next

 

Database Identification Screen

           

            Global Database Name olarak test.basari.com.tr veriyorum.

            SID olarak daha önce belirttiğim gibi CLK giriyorum.

 

Next

           

JDK Location Screen

 

            /home/oracle/Oracle8iR3/stage/Components/oracle.swd.jre/1.1.8/1/DataFiles/Expand

 

            olarak giriyoruz.

 

Next

 

Summary Screen

 

            Bu aşamada kurulacak bütün programların ayrıntılı listesini görebilirsiniz.

 

End of Installation


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"

LD_OPT="-Wl,-h${CLNT_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