11 Şubat 2009 Çarşamba

Linux işletim sistemi üzerine Oracle kurulumu

Linux üzerine program kurmak çoğu zaman Windowstaki gibi kolay olmuyor. Oracle kurulumu için de aynı şey söz konusu. Kurulum öncesinde bir çok hazırlık yapılması gerekiyor. Sonrasında da bazı scriptlerin çalıştırılması gerekiyor.

Faydalı olması açısından bu yazıyı Red Hat Enterprise Linux 4 üzerine Oracle 11g kurulumu diye adlandırmak daha doğru olacaktır.
Fakat linuxun diğer dağıtımları veya Oracle'ın diğer sürümleri için de çoğu zaman aynı adımlar uygulanıyor.

Kurulum Öncesi Hazılık

Önce Linux üzerinde tüm haklara sahip olan root kullanıcısı ile sisteme girilmesi gerekiyor ki rahat rahat yeni paketler kuralım, istediğimiz dosyanın içine girip çıkalım, kısaca ortamda tüm yetkilere sahip olmanın özgürlüğünü kullanabilmemiz için
(çok uzattım, blog yazma konusunda çok yeniyim toparlamakta çoğu zaman güçlük çekebilirim :) Herneyse )

--> root kullanıcısı gibi login oluyoruz.

Ve gerekli donanımsal ortam ihtiyaçlarını şöyle bir gözden geçiyoruz.

--> 1 GB ram database instance kontrolü için
--> 1.5 GB disk alanı swap space için
--> 400 MB disk alanı /tmp klasörü için
--> 1.5 - 3 GB disk alanı Oracle yazılımı için
--> 1.2 GB database kurulum öncesi gerekli yazılımları için (tabi daha öncesinde kurulu olması söz konusu olduğu için gerekli olmayadabilir.)
--> 2.4 GB Flash Recorvery Area
(Burda biraz Flash Recorvery Area'dan Bahsetmek gerekirse; Oracle 10g ile gelen yeni bir özellik. Çok fazla datanın kullanıldığı veritabanlarında düzenli olarak gerçekleştirilen recorvery işlemlerin data kaybını önleyen güçlü bir tool.)

Yazılımsal İhtiyaçlar

Gerekli paketlerin kurulu olup olmadığını öğrenmek için rpm(Red Hat Package Manager) komutunu kullanacağız.

rpm -q binutils compat-db control-center gcc gcc-c++ \
glibc glibc-common gnome-libs libstdc++ libstdc++-devel \
make pdksh sysstat xscreensaver

aynı anda bir çok pakedin kontrolünü yapıyoruz bu komutla , sistemde yüklü değilse paket uyarı veriyor. Olmayan paketlerin yüklenmesinden sonra kuruluma devam ediyoruz.

Oracle Kullanıcı gruplarının ve kullanıcısının oluşturulması

root kullanıcısı olarak sisteme giriş yaptığımız için yeni bir grup yada kullanıcı oluşturmada sıkıntı yaşamayız.

-->/usr/sbin/groupadd oinstall
-->/usr/sbin/groupadd dba
-->/usr/sbin/useradd -m -g oinstall -G dba oracle

useradd komutunun -g ve -G parametreleri için
-g (primary group assigned to the users)
-G (Other groups the user belongs to)

oracle kullanıcısı için şifre oluşturuyoruz

-->passw oracle

Kurulumun yapılacağı dosya ve dosya yolunu oluşturup , sahiplendirme ve yetkilendirme işlemini yapıyoruz

-->mkdir -p /u01/app/oracle
-->chown -R oracle:oinstall /u01/app/oracle
-->chmod -R 775 /u01/app/oracle

Kernel parametrelerinin Yapılandırılması

Kernel parametrelerinin yeniden yapılandırılması; Oracle'dan en iyi şekilde performans sağlamak için yapılıyor. 60 ' tan fazla farklı OS 'de koşan Oracle'ın tümüyle örtüşmesi mümkün değil. Performansı açısından büyük farklılıklar var. Konuyla ilgili daha detaylı bilgi için:

http://www.dba-oracle.com/oracle10g_tuning/t_ios_kernel_parameters.htm



cat >> /etc/sysctl.conf << EOF
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 658576
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 1048536
net.core.wmem_max = 1048536
EOF



Değişen paremetrelere göre sistemin çalışması için;

/sbin/sysctl -p

Shell Limit Yapılandırması

Oracle kullanıcısı ve database ortam araçlarını (memory gibi) kullanım kısıtlamaları getiriyoruz ki kafasına göre takılmasın diye :P


cat >> /etc/security/limits.conf << EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
cat >> /etc/pam.d/login << EOF
session required /lib/security/pam_limits.so
EOF
cat >> /etc/profile << EOF
if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
EOF
cat >> /etc/csh.login << EOF
if ( \$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
EOF

Hangcheck Timer Yapılandırılması


modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
cat >> /etc/rc.d/rc.local << EOF
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
EOF

Burdaki parametreleri biraz açarsak;


hangcheck_tick ; sistemin sağlıklı bir şekilde çalışıp çalışmadığının kontrol edilme periyodunu tutuyor. Varsayılan değer 60 saniyedir.

hangcheck_margin ; maximum gecikme süresi ; varsayılan değer 30 saniyedir.

Çevresel Ayarların Yapılması

oracle user olarak yapılandırıyoruz. Çünkü oracle userı sisteme girdiğinde sadece kendisi için tanımlı değişkenlere ve path ayarlarına ihtiyacı var.

su oracle


cat >> /home/oracle/.bash_profile << EOF
# User specific environment and startup programs
umask 022
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
export LD_LIBRARY_PATH=/usr/lib:/usr/X11R6/lib
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/11.1.0/db_1
export ORACLE_SID=orcl
PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/jdk/jre/lib/i386/server:\
\$ORACLE_HOME/rdbms/lib:\$ORACLE_HOME/lib:\$LD_LIBRARY_PATH:\
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/sbin:\
/usr/sbin:/root/bin:\$PATH
PATH=\$PATH:\$HOME/bin
export PATH
unset USERNAME
EOF


Bu değerlerin aktif olabilmesi için;

--> source ~/.bash_profile

KURLUMA BAŞLAYABİLİRİZ

oracle kullanıcısının okuma hakkına sahip olduğu klasörde olduğunu varsayıyoruz 11g Setup dosyasının ve oracle kullanıcısı olarak kurulumu gerçekleştiriyoruz.

http://www.oracle.com/technology/obe/11gr1_db/install/dbinst/dbinst.htm

Bağlantısında screenshot ile oldukça faydalı anlatılmıştır. (Birazcıkta üşendim kabul ediyorum :D )

1 yorum:

turktelekomweb dedi ki...

Çok teşekkür ederim. Aradığım şey tam olarak buydu. Bu yazınız çok faydalı olacak. 10 numarasınız