Merhaba arkadaşlar bu yazımda Linux üzerine ASM mimarisiyle Oracle 11gR2 kurulumunu anlatmaya çalışacağım.Bu yazıyı okudugunuza göre ASM hakkında az çok fikir sahibinizi oldugunuzu düşünüyorum ama adet yerini bulsun diye ASM hakkında kısa bir tanım yapacak olursak.
ASM(Automatic Storage Management) yani Oracle’ın Otomatik Depolama Yönetim sistemidir.ASM’in avantajları nedir neden bunu kullanmak lazım dersek de ;
- Blok seviyesinde okuma yazma işlemi yapabilir
- Veriyi fiziksel diskler üzerinde dagıtır
- I/O’u mevcut disklere dağıtarak performansı arttırma
- Yeni disk ekleme, mevcut alanı değiştirme gibi işlemleri kesilme süresi olmadan yapabiliyoruz.
İleriki yazılarımda ASM mimarisi ile ilgili daha ayrıntılı yazılar yazmaya çalışacagım ama şimdi Linux işletim sisteminde ASM mimarisi üzerine Oracle 11gR2 kuralım bunun için bize ne lazım sıralayacak olursak ;
- Kurulu bir Linux işletim sistemi(Ben VMware üzerine Red hat enterprise linux 5.5 kurdum)
- ASM mimarisi kullanacagımız için birden fazla diske ihtiyacımız var(Ben VMware’de 3 adet sanal disk oluşturdum)
- Oracle 11gR2 veritabanı kuracagımız için Oracle Grid Infrastructure yazılımına ihtiyacımız var.(Oracle Grid Infrastructure)
- Haliyle bir de Oracle 11gR2 veritabanının olması lazım.(Oracle 11gR2)
Linux üzerine ASM mimarisiyle Oracle 11gR2 veritabanı kurulumunu anlaşılır olması açısından 4 adıma bölüp anlatmak daha dogru olur düşüncesi ile aşagıda ki adımları sırası ile yapacagız;
- Linux işletim sisteminin Oracle veritabanı kurulumuna hazırlanması,
- VMware’den disk eklemek ve ASM disklerin yapılandırılması,
- Oracle Grid Infrastructure yazılımının kurulması,
- Oracle 11gR2 veritabanının kurulması
a-)Linux işletim sisteminin Oracle veritabanı kurulumuna hazırlanması
1.Host dosyasını aşagıdaki gibi düzeltiriz.
$ vi /etc/hosts
127.0.0.1 localhost.localdomain localhost 192.168.1.125 test.localdomain test
2.Kernel parametrelerini aşagıda ki gibi set ederiz.
NOT : Kernel parametrelerinin set edilmesi sırasında, yapmamız gereken birkaç ufak hesaplama olacak. Öncelikle bunlar kernel.shmmax ve kernel.shmall parametrelerinin hesaplanması.
kernel.shmmax değeri toplam bellek(ram) değerinin yarısının byte cinsinden yazımıdır. (Sunucumuzda 8GB RAM var ise, 8*1024*1024*1024/2 işlemini yaparak shmmax parametresini ayarlamamız gerekiyor.)-(Sunucumuzda ki toplam bellek miktarını ise grep MemTotal /proc/meminfo bu komutla ögrenebiliriz)
kernel.shmall parametresi için ise oracle’in kullanacağı değerin page size’a bölünmesiyle bulunur. (Sunucumuzda 8GB RAM var ise ve bunun 6GB sini Oracle kullanacaksa, 6*1024*1024*1024/4096 olacaktır.)-(Sunucumuzda ki page size’ı getconf PAGESIZE komutuyla ögrenebiliriz)
$ vi /etc/sysctl.conf
fs.suid_dumpable = 1 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096 # semaphores: semmsl, semmns, semopm, semmni kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default=4194304 net.core.rmem_max=4194304 net.core.wmem_default=262144 net.core.wmem_max=1048586
3.Degişikliklerin uygulanması için işletim sistemini yeniden başlatmalıyız ama yeniden başlatılmadan da aşağıda ki komut çalıştırılarak yeniden başlatılmaya gerek kalmadan degişiklikleri uygulayabiliriz.
/sbin/sysctl –p
4.Oracle veritabanının üzerinde çalışacağı işletim sistemi oracle kullanıcısı için limit değerleri aşağıdaki gibi set edilmelidir.
$ vi /etc/security/limits.conf
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
5.Selinux’u aşagıda ki gibi disable yaparız.
$ vi /etc/selinux/config
SELINUX=disabled
6.Oracle’ın ihtiyaç duydugu rpm’leri yükleriz.Bunun için de Linux cd’mizi mount eder ve aşagıdaki scripti çalıştırırız.
cd /media/RHEL_5.5\ x86_64\ DVD/Server/
rpm -Uvh binutils-2*x86_64* rpm -Uvh glibc-2*x86_64* nss-softokn-freebl-3*x86_64* rpm -Uvh glibc-2*i686* nss-softokn-freebl-3*i686* rpm -Uvh compat-libstdc++-33*x86_64* rpm -Uvh glibc-common-2*x86_64* rpm -Uvh glibc-devel-2*x86_64* rpm -Uvh glibc-devel-2*i686* rpm -Uvh glibc-headers-2*x86_64* rpm -Uvh elfutils-libelf-0*x86_64* rpm -Uvh elfutils-libelf-devel-0*x86_64* rpm -Uvh gcc-4*x86_64* rpm -Uvh gcc-c++-4*x86_64* rpm -Uvh ksh-*x86_64* rpm -Uvh libaio-0*x86_64* rpm -Uvh libaio-devel-0*x86_64* rpm -Uvh libaio-0*i686* rpm -Uvh libaio-devel-0*i686* rpm -Uvh libgcc-4*x86_64* rpm -Uvh libgcc-4*i686* rpm -Uvh libstdc++-4*x86_64* rpm -Uvh libstdc++-4*i686* rpm -Uvh libstdc++-devel-4*x86_64* rpm -Uvh make-3.81*x86_64* rpm -Uvh numactl-devel-2*x86_64* rpm -Uvh sysstat-9*x86_64* rpm -Uvh compat-libstdc++-33*i686* rpm -Uvh compat-libcap*
7. Oracle veritabanının işletim sisteminde çalışacağı kullanıcı ve grupları aşagıda ki gibi oluştururuz ve parolalarımızı belirleriz.
groupadd oinstall groupadd dba groupadd oper groupadd asmadmin useradd -g oinstall -G dba,oper,asmadmin oracle passwd oracle
8. Oracle software in kurulacağı dizin oluşturur ve yetkileri veririz.
mkdir -p /u01/app/oracle/product/11.2.0/db_1 chown -R oracle:oinstall /u01 chmod -R 775 /u01
9.Oracle kulanıcısının .bash_profile’ını düzeltiriz bunun için oracle kullanıcısından giriş yapılır ve aşagıda ki adımları uygularız.
$ vi /home/oracle/config
# Oracle Settings TMP=/tmp; export TMP TMPDIR=$TMP; export TMPDIR ORACLE_HOSTNAME=test.localdomain; export ORACLE_HOSTNAME ORACLE_UNQNAME=ORCL; export ORACLE_UNQNAME ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME ORACLE_SID=ORCL; export ORACLE_SID PATH=/usr/sbin:$PATH; export PATH PATH=$ORACLE_HOME/bin:$PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
b-)VMware’den disk eklemek ve ASM disklerin yapılandırılması
Senaryomuza göre 2 adet ASM sanal disk grubu oluşturacagız.Bunlar için de 3 adet sanal disk oluşturacagız ilk disk grubumuzda 2 adet sanal disk ve bu disk grubunda data file’larımız,ikinci disk grubumuzda ise 1 adet sanal disk olacak ve içinde de flashback için gerekli dosyaları tutacak.
1.VMware’den sanal disk eklemek için VMware’de kurulu olan Linux işletim sistemimizi kapatıyoruz ve işletim sistemize tıklayarak oradan da “Edit virtual machine settings => Add” seçerek disk eklemeye başlayabiliriz.
2. “Hard Disk” seçenegini seçerek devam ediyoruz.
3. “Create a new virtual disk” seçenegini seçerek devam ediyoruz.
4. “SCSI(Recommended)”,”Independent”,”Persistent” seçeneklerini seçerek devam ederiz.
5. Sanal diskimizin boyutunu belirleriz ve “Allocate all disk space now” seçerek devam ederiz.
6. Sanal diskimizin ismini belirleriz benim ilk sanal diskimin ismi asm1.vmdk.Finish diyerek ilk sanal diskimizi oluşturmuş olduk.
7. Aynı adımları ikinci ve üçüncü sanal diskimizi oluşturmak için tekrardan yaparız ama bu defa ikinci sanal diskimizin ismi asm2.vmdk,üçüncü sanal diskimizin ismi reco1.vmdk.
8. fdisk komutu ile disklerimiz üzerinde partition(bölüm) oluşturmamız gerekiyor. /dev/sdb1 bölümü oluşturmak için aşagıda ki komutu çalıştırır ve resimde kare içine alınmış soruların cevaplarını resimdeki gibi cevaplarız.(root kullanıcısı ile)
fdisk /dev/sdb
9. /dev/sdc1 bölümü oluşturmak için aşagıda ki komutu çalıştırır ve resimde kare içine alınmış soruların cevaplarını resimdeki gibi cevaplarız.(root kullanıcısı ile)
fdisk /dev/sdc
10. /dev/sdd1 bölümü oluşturmak için aşagıda ki komutu çalıştırır ve resimde kare içine alınmış soruların cevaplarını resimdeki gibi cevaplarız.(root kullanıcısı ile)
fdisk /dev/sdd
11. Oracle kullanıcımızın oluşturulan sdb1, sdc1 ve sdd1 partitionlarındaki ASM disk gruplarında veritabanı dosyalarını kurabilmesi ve yazabilmesi için sahiplik ve erişim izinleri vermemiz gerekmektedir. Bu amaçla /etc/rc.local dosyasını açarak içine aşağıdaki satırları ekliyoruz.(root kullanıcısı ile)
$ vi /etc/rc.local
chown oracle:oinstall /dev/sdb1 chown oracle:oinstall /dev/sdc1 chown oracle:oinstall /dev/sdd1 chmod 600 /dev/sdb1 chmod 600 /dev/sdc1 chmod 600 /dev/sdd1
12. Makinemizi yeniden başlatıyoruz.
13. ASM için gerekli rpm paketlerini yüklemeliyiz.(root kullanıcısı ile)
rpm -Uvh oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64.rpm rpm -Uvh oracleasmlib-2.0.4-1.el5.x86_64.rpm rpm -Uvh oracleasm-support-2.1.7-1.el5.x86_64.rpm
14. Veritabanı kurulumuzu işletim sisteminde ki oracle kullanıcısıyla yapacagımız için ASM kütüphane sürücüsünde(library driver) bu kullanıcıya ve bu kullanıcının birincil oinstall grubuna aşagıda ki gibi sahiplik(owner) verelim ve bu sırada bize birtakım sorular soracak bunlarıda aşagıdaki resimdekiler gibi cevaplayalım. (root kullanıcısı ile)
service oracleasm configure
15. Aşagıdaki komutları çalıştırarak da disklerimize etiket veririz. (root kullanıcısı ile)
service oracleasm createdisk DATA1 /dev/sdb1 service oracleasm createdisk DATA2 /dev/sdc1 service oracleasm createdisk RECO1 /dev/sdd1
16. Makinemizi yeniden başlatıyoruz.
c-)Oracle Grid Infrastructure yazılımının kurulması
1. Indirdigimiz grid infrastructure yazılımını aşagıda ki kod ile zip’ten çıkartırız.(oracle kullanıcısı ile)
unzip linux.x64_11gR2_grid.zip
2. Zip’ten çıkan grid adlı dosyaya cd grid/ komutu ile girer ve aşagıda ki kod ile kurulumu başlatırız.(oracle kullanıcısı ile)
./runInstaller
3. Karşımıza gelen pencereden “Install and Configure Grid Infrastructure for a Standalone Server” seçenegini seçerek devam edelim.
4. Kurulum dilini “English” olarak seçip ilerleriz.
5. Disk grubumuz için bir isim veriyoruz DATA1 ve DATA2 ‘yi seçip ilerliyoruz.RECO’yu seçmememizin sebebi onu ilerde flashback için kullanacak olmamamız.
6. ASM için SYS ve ASMSNMP şifresini belirleyelim.
7. Şifre için uyarı gelirse Yes diyerek devam edelim.
8. Gruplarımızı aşagıdaki gibi seçip ilerleyelim.
9. Gruplarımız için uyarı gelirse Yes diyerek devam edelim.
10. Yazılımımızın Oracle Base ve Oracle Home dizinini seçelim ve ilerleyelim.
11. Yazılımımızın Inventory dizinini seçelim ve ilerleyelim.
12.Sistem son kez kontrol edilecek ve hatalı bir durum varsa gösterecektir bu aşamada beklemeliyiz.
13. Herşeyin yolunda oldugunu gösteriyor Finısh diyerek devam ediyor ve kuruluma başlıyor.
14. Kuruluma devam ediyor.
15. Kurulumda son aşamaya geldiginde çalıştırmamız için 2 tane script veriyor bu scriptleri root kullanıcısıyla çalıştırırız.
16. Kurulum başarı ile bitmiştir Close diyerek pencereyi kapatıyoruz.
Yazının devamı Linux üzerine ASM mimarisiyle Oracle 11gR2 Kurulumu-2
Yararlı olması Dilegiyle…
Yazar : Mustafa Bektaş Tepe
Java && Oracle
Kaynaklar ;
www.uguroracle.blogspot.com
www.taliphakanozturk.wordpress.com
www.cagataycebi.com
http://www.datadisk.co.uk/html_docs/oracle/asm.htm
http://docs.oracle.com/cd/B28359_01/server.111/b31107/asmcon.htm
Aralık 30th, 2012 on 18:11
Cox gozel izah elemisiz,Tesekkurler Mustafa muellim
Aralık 30th, 2012 on 20:56
Yararlı olmasına çok sevindim Murat.
Kasım 20th, 2014 on 13:15
Merhabalar,
root kullanıcısı ile fdisk /dev/sdb yaptığımızda
unable to open /dev/sdb yapıyor.
Kasım 20th, 2014 on 15:59
Merhaba problemi daha iyi anlayabilmek adına aşagıda ki komutları tek tek çalıştırıp(root ile) çıktılarını gönderebilir misin?
fdisk -l
rpm -qa|grep asm
oracleasm scandisks
oracleasm listdisk
cat /etc/ftsab
ls -l /dev/sd*
blkid |grep oracleasm
Ağustos 22nd, 2015 on 15:37
hocam ubuntu için aynı şeyleri yapabilirmiyiz.oracle icin ideal linux dagitimi konusunada deginebilirmisiniz
Ağustos 26th, 2015 on 11:47
Desteklenen versiyonların tam listesi linkte mevcut.
İnternete bakınca azda olsa daha çok test amaçlı ubuntu yada ASM mimarisiyle veritabanı kuruldugun gördüm.
Ama bence enterprise bir ürün ve arkasında güçlü firmalar(support) olduğu için redhat yada oracle ideal olabilir diye düşünüyorum.
Bunların dışında bir toplulugun geliştrirdigi red hat tabanlı centosu da önerebilirim.
Oracle veritabanı sunucusu için deb tabanlı linux işletim sisteminin kullanıldığını çok görmedim.