Bu makalemizde “Oracle Real Application Cluster” kurulumu inceleyeceğiz. Kurulum Oracle Enterprise Linux 6.x işletim sisteminde Oracle Real Application Cluster 11.2.0.3.0 üzerine Patchset Update 11.2.0.3.5 uygulanarak yapılmıştır. Kurulumu işletim sisteminden veritabanı oluşturulmasına kadar inceleyeceğiz. Aşağıdaki kurulum parametrelerinin doğruluğu ya da güncelliği “Oracle Tahiti” sitesinden kontrol edilmelidir. Bu makale hazırlandıktan sonra kurulum parametrelerinde bir güncelleme yada değişiklik olmuş olabilir. Kurulum adımlarımızı Linux İşletim Sistemi Kurulumu ve Oracle Real Application Cluster Kurulumu olarak iki başlıkta toplayacağız.
Oracle Real Application Cluster Nedir?
Genel tanımı itibariyle birden fazla bilgisayarın Oracle Clusterware ve Oracle RDBMS yazılımlarını kullanarak, tek bir veritabanı üzerinde ve aynı zamanda (aktif/aktif) işlem yapabilmesine olanak sağlayan teknolojiye Oracle Real Application Cluster denir. Oracle RAC yapısının çekirdeğini yine Oracle tarafından geliştirilen “Cache Fusion” teknolojisi oluşturmaktadır. “Cache Fusion” teknolojisi kısaca, birden fazla instance’a ait buffer cache memory alanlarının birleştirerek, tek bir buffer cache memory alanı şeklinde kullanılmasıdır. Sonuç itibariyle “Cache Fusion”ın görevi veritabanının tek bir instance tarafından yönetiliyormuş gibi davranmasını sağlamaktır.
Oracle Real Application Cluster teknolojisi 3 ana konunun çözümüne odaklanmış bir yapıdır. Bunlar sırasıyla fault tolarance (redundancy), load balancing ve scalability. Kısaca açıklamak gerekirse;
- Fault Tolarance (Erişebilirlik)
Uygulamaları veya servisleri birden fazla sunucu üzerine yayarak, donanım kaynaklı oluşabilecek sorunlara karşı sistemin kesintisiz hizmet vermesini sağlamaktır.
- Load Balancing (Yük dağıtma)
Yük paylaşımı anlamına gelir. Amaç aktif cluster düzeneğinde çalışan sunucuların toplam iş yükünü, mümkün olduğu kadar eşit biçimde istenilen sunucular (node) üzerine dağıtmaktır.
- Scalability (Ölçeklenirlik)
Oracle RAC vb. cluster yapılarında, “çalışan sistemin yapısını bozmadan” cluster yapısına yeni sunucular veya cihazlar eklenebilmesine scalibility denir.
Kurulum Senaryosu
Kurulum işlemini 2 Adet sunucu üzerinde yapacağız. Kurulum için sunucularımızda en az 2 adet ağ kartına ihtiyacımız bulunmaktadır. Senaryomuzdaki sunucularımızda toplam 4 adet ağ kartı bulunmaktadır. Bu kartların 2 tanesini Public Ağ için “Linux Bonding” işlemi yapacağız. (Sistemimizde 2 adet ağ kartı varsa Bonding işlemine gerek yoktur. Böyle bir durumda bu adımı atlayabiliriz.) Kalan 2 tane ağ kartımızı Private Ağ (Interconnect) bağlantısı için kullanacağız. Public Ağ kullanıcılara hizmet verecek, Private Ağ (Interconnect) cluster yapımızdaki sunucuların birbirleriyle konuşması için hizmet verecektir. Interconnect için bağlantı kuracak kartlarımızı ayrı bir switch cihazına bağlayacağız ve bağlayacağımız iki ağ kartımızı Oracle HAIP (High Availability IP) yapısı ile bonding işlemi uygulamadan yapılandıracağız. Oracle HAIP (High Availability IP) Oracle 11g R2 (11.2.0.2.0) versiyonu ve sonrasında kullanıma sunulmuştur. Bu yapıda çalışabilmek için Interconnect bağlantımızı sağlayacak switch üzerinde Multicast özelliğinin açılması gerekmektedir. Aksi takdirde Cluster’a dahil sunucular birbirleri ile konuşamazlar. Ayrıca bilmemiz gereken bir konuda Interconnect bağlantısını yapacağımız Ethernet kartları arasında kesinlikle “cross” kablo ile direk bağlantı yöntemini kullanmamalıyız. Oracle böyle bir durumda sistemine destek vermeyecektir. Bunun sebebi son yıllarda üretilen ağ kartlarında “clock” çipseti bulunmamasıdır. Bu özellik switch üzerinden kullanıldığından cross yapıda cluster senkronizasyonu bozulabilir ve bu durumda üyeler arasında iletişim gittiğinde ayaktaki diğer üyeyide veri tutarlılığı açısından aşağı indirerek sistemi kullanılmaz hale getirecektir. Girdiğim “1Z0-058 Oracle RAC 11g Release 2 and Grid Infrastructure Administration” sınavında sorulardan biride bu konudan gelmişti. Ayrıca dikkat edilmesi gereken bir diğer konuda Oracle Real Application Cluster teknolojisi yukarıdaki 3 konuda hizmet etmek için tasarlanmıştır. Bir çok kişinin aklına “Ben üyelerimden birini farklı lokasyonda tutsam yedeklilikte olmaz mı?” sorusu gelir. Oracle Real Application Cluster teknolojisi böyle bir durum için tasarlanmamıştır. Interconnect bağlantıları Oracle RAC teknolojisinde çok önemlidir bu bağlantıda gecikme (latency) çok düşük olmalıdır. Ayrı lokasyonlarımızda üyeleri birbirleriyle konuştursak bile oluşabilecek bir “heartbeat” paketi kaybında Cluster ortamı duracaktır. Ayrıca Oracle böyle bir yapıda sorun olduğunda (Oracle SR Açıldığında) destek vermeyecektir. Farklı lokasyonlarda yedekleme düşünülüyorsa bunun çözümü “Oracle Dataguard” teknolojisi olmalıdır. ASM için disk yapılandırmamız Storage ünitemizden Storage Administrator tarafından toplam 4 adet birebir aynı büyüklükte disk sunucularımıza ortak atanmış şekildedir. Her iki sunucumuzda aynı anda bu diskleri (okuma/yazma) kullanacakdır. Oracle 10g de olduğu gibi kümeleme kaydının ve ayarlarının tutulduğu “OCR” ve “VOTE” gibi ayrı bir alan yaratmamıza gerek yoktur. Oracle 11g de bu alanlar “ASM” de yapılandıracağımız “DATA” diskimizde depolanabilmektedir. İşletim Sistemi kurulumu yapan OS Administrator veya Storage Administrator tarafından multipath vb. ayarların yapıldığını varsayıyoruz. Bununla ilgili yazımızıda “Linux İşletim Sistemlerinde Multipath Yapılandırması” makalemizde bulabilirsiniz. Şimdi kurulum işlemlerimize geçebiliriz.
A-) Linux İşletim Sistemi Kurulumu
1. DVD’den önyükleme yaparak “Install or upgrade an existing system” seçeneği seçiliyken “Enter” tuşuna basıyoruz. Kümele ortamına dahil edeceğimiz tüm sunucularımızı aşağıdaki adımlara göre kuruyoruz.
2. DVD’de bulunan dosyalarının kontrol edilmesi ekranında “Skip” tuşuna basarak bu adımı atlıyoruz. “Ok” seçeneği ile devam edersek kurulum dvd’sinde bulunan tüm dosyaları kontrol edecek ve uzun sürecektir. Eğer DVD’mizin okuma problemi ya da doğru yazıldığından eminsek zaman kazanmak için bu adımı atlamalıyız.
3. Hoşgeldiniz ekranındayken “Next” düğmesine basarak kuruluma başlıyoruz.
4. Kendimize uygun dil seçeneğini seçerek “Next” düğmesine tıklıyoruz. Eğer bir sunucu sistemi veya Oracle Veritabanı sunucusu kuracaksak sistemimizin “English” dil seçeneğinde olması tercih edilmelidir.
5. Kullanmış olduğumuz klavye düzenine uygun seçeneği seçerek “Next” düğmesine tıklıyoruz. Bu seçenekte “Turkish” klavye seçmemizde herhangi bir sakınca yoktur.
6. İşletim sistemi kurulumunu yapacağımız depolama seçeneğini seçiyoruz eğer işletim sistemi kurulumu bir BootSAN vb. değil yerel disk üzerinde olacaksa “Basic Storage Devices” kutucuğu işaretliyken “Next” düğmesine tıklıyoruz.
7. Kurulumu VMware Sanallaştırma ortamında yaptığım için bana diske gerekli değişiklikleri uygulayacağı ile ilgili uyarı veriyor bu adımda “Yes, discard any data” düğmesine tıklayarak devam ediyoruz. Eğer bir sunucu üzerinde kurulum yapılıyorsa bu uyarı ekranını görmeyeceksiniz.
8. Sistemimizin sunucu ismini FQDN (Domain dahil) olarak yazıyoruz. Ardından “Configure Network” tuşuna basarak ağ ayarlarımızı yapmaya başlıyoruz. Ben birinci üye için “kryrac1.localdomain” ikinci üye içinde “kryrac2.localdomain” ismini kullandım sizlerde bu isimleri kendi isimlendirme standartınıza göre yapılandırınız.
9. Sunucu açıldığında ağ bağlantısının otomatik başlaması için “Connect automatically” onay kutusunu işaretliyoruz. Sonrasında kartlarımızda “Linux Bonding” ve “Oracle HAIP” yapılandırması kullanacağımızdan “IPv4 Settings” sekmesinde Ip Adresi için “Method” seçeneğini sonra yapılandırmak üzere “Disabled” olarak seçiyoruz. Bu işlemi sistemimizdeki tüm ağ kartlarında yapıyoruz. Çünkü ortamda bir DHCP sunucusu varsa kartlarımız otomatik IP Adresi alacaktır. Bu durum daha sonra yapılandırmamızda sorun çıkartabilir. Benim kurduğum sistemde 4 adet ağ kartı olduğu için aynı işlemi 4 ağ kartında da uyguladım. İşletim sistemi kurulumu bittikten sonra “Bonding” yapılandırmasını gerçekleştireceğiz.
1o. Bize uygun bölgesel zaman ayarını seçiyoruz. Ülkemiz için Turkey/Istanbul seçeneği seçilmelidir. Seçmek için harita ekranı üzerindeki noktalardan İstanbul üzerindeki sarı noktaya tıklanarak yada liste menüden Europe/Istanbul seçeneği bulunarak seçilebilir.
11. İşletim sistemi için “root” yönetici hesabının parolasını atayarak “Next” düğmesine tıklıyoruz.
12. Mevcutta bölümlenmiş bir disk alanımız olmadığı için diskimizi yapılandırmak için “Create Custom Layout” kutucuğunu işaretleyerek “Next” düğmesine tıklıyoruz.
13. Kullanılabilir disk ya da birden fazla ise disklerimizin ham hallerini görüyoruz ve artık diskimizi yapılandırmaya başlayabiliriz. İşletim sistemimiz sunucumuza atanmış olan diskleri bize gösteriyor. Burada “sda” olarak etiketlenmiş diskimiz sunucumuz üzerinde bulunan fiziksel sabit diskimizdir burayı işletim sistemi kurmak için kullanacağız. Diğer etiketlemiş “sdb” “sdc” “sdd” ve “sde” disklerimiz depolama ünitemizden (storage) atanmış disklerdir. Bu diskleri Oracle ASM için atayacağız. Bu disklere bu aşamada kesinlikle dokunmamız gerekiyor. İşletim sistemimizi kurmak için “sda” diskimizi yapılandırmaya başlayabiliriz. Ekranda “sda” diskimiz işaretliyken “Create” düğmesine tıklıyoruz.
14. Öncelikle boot dosyaları için 500 MB bir alan yaratıyoruz. İşletim sistemimiz ön yükleme dosyalarını diğer bölümlemelerden hariç burada depolamasını sağlıyoruz. Zorunlu bir durum değil ama düzen ve boot bölümünün yönetimi açısından bu şekilde oluşturmak daha kullanışlı olacaktır. Bunun için “Create” düğmesine tıklayarak gelen ekrandan “Standart Partition” kutucuğu işaretlenerek “Create” düğmesine tıklanmalıdır. Ardından aşağıdaki resimde görüldüğü gibi ayarlar yapılmalı ve “Ok” düğmesine tıklanmalıdır.
15. Açılan ekrandan “Mount Point” olarak “/boot” seçeneğini seçiyoruz. “Allowable Drivers” seçeneklerinden sadece “sda” diskimizi seçiyoruz. “Size (MB)” alanına “500” değerini giriyoruz. “Additional Size Options” seçeneklerinden “Fixed size” kutucuğunu işaretliyoruz ve “OK” düğmesine tıklıyoruz.
16. İşletim sistemimiz için 500 MB büyüklüğünde boot bölümü oluşmuş durumdadır. Şimdi swap ve root dosya sistemini yapılandırmak için “Free” alanımız işaretliyken “Create” düğmesini tıklıyoruz.
17. Karşımıza çıkan “Create Storage” ekranında “LVM Physical Volume” seçeneği işaretliyken “Create” düğmesine tıklıyoruz.
18. Açılan pencerede “Add Partition” ekranında “Allowable Drivers” seçeneklerinden sadece “sda” diskimizi seçiyoruz. “Additional Size Option” seçeneklerinden “Fill to maximum allowable size” kutucuğunu işaretleyip “OK” düğmesine tıklıyoruz.
19. İşletim sistemimiz için “physical volume (LVM) olarak yapılandırılmış durumdadır. Şimdi bu bölüm altında “Logical Volume” lerimizi oluşturmak için “physical volume (LVM)” seçiliyken “Create” düğmesine tıklıyoruz.
20. Karşımıza çıkan “Create Storage” ekranında “LVM Volume Group” seçeneği işaretliyken “Create” düğmesine tıklıyoruz.
21. İşletim sistemimiz için “swap” ve “root file system – /” bölümelerini oluşturabiliriz. “Volume Group Name” ismini istediğimiz gibi çok uzun ve sorun çıkartacak karekterler kullanmadan isimlendiriyoruz. “Logical Volumes” seçeneğinde “Add” düğmesini tıklıyoruz.
22. Bölüm oluşturma penceresinde öncelikle swap size oluşturmalı ve ardından kalan alanı istediğimiz gibi yapılandırmalıyız. Eğer sunucumuz Oracle Veritabanı kurulumu için kullanılacaksa aşağıdaki gibi swap alanı oluşturmalıyız. Bu değer sunucunun belleğine göre değişkenlik göstermektedir. Oracle tarafından istenilen değerler
Sunucumuzda;
0 MB ile 256 MB arasında RAM varsa RAM boyutunun 3 katı,
256 MB ile 512 MB arasında RAM varsa RAM boyutunun 2 katı
512 MB ile 2GB arasında RAM varsa RAM boyutunun 1,5 katı
2 GB ile 16 GB arasında RAM varsa RAM boyutu kadar,
16 GB dan fazla RAM varsa 16GB swap alanı oluşturulmalıdır. (Güncel değerler için kurulum aşamasında “Oracle Tahiti” sitesinden kontrol edilmelidir.)Alanı oluştururken “Logical Volume Name” olarak “lv_swap” kullanabiliriz Size kutucuğuna ise atayacağımız swap alanını miktarını megabayt cinsinden yazıyoruz. Buradaki alanı hesaplarken örneğin 4 GB swap alanı atayacaksak 1024×4=4096MB olarak belirlemeliyiz. Diğer türlü istenilenden az atanması durumunda Oracle Veritabanı kurulumunda hata alabiliriz. Gerekli alan miktarını atadıktan sonra “Ok” düğmesine tıklayarak bir önceki pencereye dönüyoruz.
23. İşletim sistemimiz için “swap” alanımız oluşmuş durumdadır. Şimdi diğer dosya sistemlerini oluşturmak için tekrar “Add” düğmesine tıklıyoruz.
24. İsteğimize bağlı olarak “/”, “tmp” vb. alanları oluşturabiliriz. Ben kalan diskin tamamını “/” olarak atayacağım için bir tek onu oluşturdum ve geri kalan tüm alanları “/” kök diski üzerinde oluşmasını sağladım. Eğer ayrı ayrı oluşturacaksak dikkat etmemiz gereken “tmp” alanının 10 GB olması bu değerde Oracle Veritabanı kurulumu için gerekli olacak alan miktarıdır. “Logical Volume Name” olarak “lv_root” yazıyoruz ve kalan disk alanının tamamını buna atıyoruz. İstersek bu aşamada “/u01″ gibi diskler oluşturabiliriz. Bunun içinde aynı adımları izleyerek “Mount Point” kutucuğuna /u01 gibi isim vermek ve böyle bir alanı bu aşamada oluşturacaksak “/” oluştururken tüm alanı değil ”/u01″ içinde boş alan bırakmaya dikkat etmeliyiz. Sıralama da önce “/” oluşturulmalı sonrasında “/u01″ oluşturulmalıdır.
25. LVM oluşturma işlemi bittiğinde oluşturulan “Volume Group” üzerinde hangi ”Logical Volumes” oluştuğunu görüyoruz ve değişiklik yapmayacaksak “Ok” düğmesine tıklayarak değişiklikleri uyguluyoruz.
26. Değişiklikleri uyguladıktan sonra oluşan tüm bölümleri aşağıdaki gibi görüyoruz ve kuruluma devam etmek için “Next” düğmesine tıklıyoruz.
27. Ekranda değişikliklerin partition table yazılacağını ve bölümlerin formatlanacağını gösteren uyarı çıkıyor ve “Format” düğmesine basarak devam ediyoruz.
28. Diskler formatlandıktan sonra bütün değişikliklerin uygulanacağı ile ilgili uyarıyı “Write changes to disk” düğmesine tıklayarak onaylıyoruz.
29. Disklerimiz tercihimize göre yapılandırılırken bekliyoruz.
30. Kurulumun bu adımında Boot Loader önyükleme dosyalarının nereye yazılacağını belirtiyoruz. Disk bölümlerimizi oluştururken Boot önyükleme alanı için 500 MB yer ayırmıştık şimdi onu seçeceğiz.”Install boot loader on /dev/sda.” kutucuğu seçiliyken “Change Device” düğmesine tıklıyoruz.
31. Karşımıza gelen ekranda “First sector of boot partition-/dev/sda1″ kutucuğunu işaretleyerek “Ok” düğmesine tıklıyoruz.
32. Önyükleme seçeneğini ayarladıktan sonra “Next” düğmesine tıklayarak bir sonraki adıma geçiyoruz.
33. İşletim sistemine kurulacak paketleri seçiyoruz bu adımda “Customize Now” kutucuğu işaretliyken “Next” düğmesine tıklıyoruz ve kuracağımız tüm paketleri Oracle Veritabanı kurulum gereksinimlerine göre elle seçiyoruz.
34. Oracle Veritabanı sunucusu için gerekli olan paketler aşağıda yazıldığı gibidir. Paket kurulumları yapılırken Oracle Veritabanı kurulumunda sorun çıkmaması için paket üzerinde sağ tıklayarak “Select all optional packages” ile seçmeliyiz. Bağımlılıklarla birlikte o seçeneğe ait gerekli tüm paketleri kurmaktadır.
Seçilecek Paketler;
Base System > Base
Base System > Compatibility libraries
Base System > Console Internet Tools
Base System > Debugging Tools
Base System > FCoE Storage Client
Base System > Hardware monitoring utilities
Base System > Java Platform
Base System > Large Systems Performance
Base System > Network file system client
Base System > Performance Tools
Base System > Perl Support
Base System > iSCSI Storage Client
Servers > Server Platform
Servers > System administration tools
System Management > System Management
Desktops > Desktop
Desktops > Desktop Debugging and Performance Tools
Desktops > Desktop Platform
Desktops > Fonts
Desktops > General Purpose Desktop
Desktops > Graphical Administration Tools
Desktops > Input Methods
Desktops > Legacy X Window System Compatibility
Desktops > Remote Desktop Clients
Desktops > X Window System
Applications > Internet Browser
Development > Additional Development
Development > Development Tools
Development > Server Platform Development
Paket seçim işlemi tamamlandıktan sonra “Next” düğmesine tıklıyoruz
35. Kurulum sihirbazı paket kurulumları için gerekli hazırlığı yaparken bekliyoruz.
36. Kurulum işlemi paket miktarına ve sunucu hızımıza göre yaklaşık 15 dakika ile 30 dakika arasında tamamlanacaktır. Ekrandan kurulumun hangi aşamada olduğu takip edilebilir.
37. Kurulum işlemi tamamlandıktan sonra “Reboot” düğmesine tıklanarak sunucumuzu yeniden başlatıyoruz.
38. Sunucu yeniden başladıktan sonra son ayarları yapacağımız kurulum ekranı gelmektedir. ”Forward” düğmesine tıklayarak başlıyoruz.
39. Lisans anlaşmasını “Yes, I agree to the Licence Agreement” seçeneğini işaretleyerek kabul ediyoruz.
40. Eğer bir ”Unbreakable Linux Network” hesabımız yoksa “No, I prefer to register at a later time” seçeneğini seçerek ”Forward” düğmesine tıklıyoruz.
41. Kullanıcı hesabı girmediğimiz için bizi uyarak bu pencerede “No thanks, I’ll connect later.” düğmesine tıklayarak devam ediyoruz.
42. Güncelleme ayarlarını bitirdikten sonra “Forward” düğmesine tıklayarak ilerliyoruz.
43. Bu aşamada kullanıcı yaratmayacağımız için “Forward” düğmesine tıklayarak ilerliyoruz.
44. Sunucumuz için tarih ve zaman ayarlarını yapıyoruz. Eğer ortamda bir zaman sunucusu varsa yada internet ortamındaki bir sunucuyu kullanacaksak “Synchronize date and time over the network” kutucuğunu işaretliyoruz ve “Forward düğmesine tıklıyoruz.
45. İnternet ortamındaki sunuculara erişebilmek için sunucumuzun internet çıkışlarını ayarlamamız gerekmektedir. ağ ortamımızda bir zaman sunucusu varsa aşağıdaki ekranda görüldüğü gibi onun adresini yazarak sunucumuzda zamanın buradan eşitlenmesini sağlıyoruz.
46. Bu ayarla birlikte işletim sistemindeki “NTP Service” başlamış olacaktır. Özellikle Oracle RAC gibi cluster olan ortamlarda senkronizasyon için zaman sunucusu kavramı önemlidir.
47. Kdump (Kernel Crash Dump) Kernel hatalarında devreye giren bir mekanizmadır. Çalışması için sunucuda yeterli bellek olmalı ve kullanacağı bellek miktarı seçilmelidir. Bu adımı kurulumlarda genelde kapalı bırakıyoruz. Kurulumu bitirmek için “Finish” düğmesine tıklıyoruz ve sunucumuz bir kere daha yeniden başlıyor.
48. Sunucumuz açıldıktan sonra kullanıcı giriş ekranı bizi karşılıyor.
49. Kullanıcı giriş ekranında “Other” seçeneğini seçerek “root” kullanıcısı ile oturum açıyoruz. İlk ekranda kullanıcı adı olarak “root” giriyoruz.
50. Kurulum aşamasında “root” kullanıcısı için atamış olduğumuz parolamızı giriyoruz.
51. Oturum açıldığında bizi bir uyarı ekranı karşılıyor. Root kullanıcısı ile işletim sistemi ve programlar üzerinde onarılamaz zararlar verebileceğimiz vb. uyarı veriyor bu ekranın bir daha gözükmesini istemiyorsak “Do not show me this again” kutucuğunu işaretleyerek “Close” düğmesini tıklıyoruz.
52. Artık masaüstümüz hazır masaüstü rengimiz günü saatlerine göre renk değiştirmektedir. Öğlen öncesi Kırmızı bir ekran varken öğlen sonrası gri bir ekran bizi karşılamaktadır.
53. Terminal ekranında komutlar ile çalışmak için aşağıdaki adımları izleyerek boş bir komut satırı açabiliriz.
54. Terminal Ekranında komutlar ile çalışabiliriz.
55. Sunucumuzu Oracle Veritabanı sunucusu olarak yapılandıracağımız için oracle gereksinimi olarak öncelikle Firewall ayarlarımızı kapatmalıyız bunun “System>Administrator>Firewall” menüsüne girerek Firewall ayar arayüzünü açmalıyız.
56. Güvenlik duvarı ile ilgili bizi uyaran ekranı “Close” düğmesine tıklayarak kapatıyoruz.
57. Pencere üzerinde bulunan “Disable” ardından da “Apply” düğmelerine basıyoruz. Firewall özelliğinin kapatılacağını söyleyen uyarı ekranında “Yes” düğmesini tıklayarak onaylıyoruz.
58. Artık Firewall kapalı durumdadır.
59. Yine bir Oracle Veritabanı sunucusu kurulumu için gerekli olan “SELinux Management” seçeneğini yapılandıracağız. “System>Administrator>SELinux Management” adımları izleyerek SELinux yönetim arayüzünü açıyoruz.
60. Açılan arayüzde “System Default Enforcing Mode” seçeneğini “Disabled” duruma getiriyoruz. Herhangi bir onay istemeyecektir. Bu ayarı seçtikten sonra direk pencereyi kapatmanız yeterlidir.
61. Tüm bu ayarları yaptıktan sonra “System>Shutdown” adımları izleyerek sistemi yeniden başlatmalıyız.
62. Çıkan pencereden “Restart” düğmesine tıklayarak sistemi yeniden başlatıyoruz.
63. Sistem yeniden başladıktan sonra oturum açarak çalışabiliriz. Masaüstünde boş bir yerde sağ tıklayıp “Open in Terminal” seçeneğini seçerek boş bir terminal açıyoruz ve diğer yapılandırma aşamamıza geçiyoruz.
Sunucumuzda kurulum sonrası işletim sistemi güncellemesi yapabilmek için “Linux İşletim Sistemlerinde Yum Paket Yönetimi ve İşletim Sistemi Güncelleme” makalemizi inceleyebilirsiniz.
Bond işlemi öncesi sunucumuzda kullanacağımız IP Adresleri ihtiyacımızı inceleyelim.
Oracle 11g R2 itibariyle “SCAN IP” adı verilen ve istemcilerin kümeye servis erişimini sağlayan yeni bir sanal network arayüz yöneticisi gelmiştir. SCAN farklı 3 adet IP adrese sahiptir ve Cluster ismi ile tanımlanmaktadır. Düğüm mantığı yerine cluster katmanında hizmet vermektedir. İstemci bağlantı talebinde bulunduğunda, bu istemciye vekaleten SCAN IP adres üzerinden dinlemede olan “SCAN Listener ve bu scan listenerın portu üzerinden bu talep karşılanır. Cluster içindeki tüm servisler, “SCAN Listener”a kayıtlı olduğundan, istemcinın bu bağlantı talebini cluster üzerindeki en az yük olan düğüme ait lokal listenere yönlendirerek bu hizmeti sağlar. Yeni düğümler eklendiğinde ve mevcut düğümlerden biri erişilemez olduğunda yeni yük dengesini SCAN hesaplar ve değişikliğe paralel olarak istemci bağlantı durumunu günceller. Oracle SCAN IP adreslerini DNS sunucumuza ekleyeceğiz veya sistem yöneticisinden eklenmesini isteyeceğiz. Buradaki dikkat edeceğimiz konu DNS Sunucumuzun “Round-robin” istekleri destekliyor olmasıdır. Sebebiyse Oracle SCAN yapısı istemcilerden gelen talepleri “Round-robin” algoritmasına göre sunuculara dağıtmaktadır. Bu yüzden DNS Sunucumuzun durumu çok önemlidir eğer servis durursa istemcilerimiz veritabanımıza erişemeyebilir. Böyle bir durumda ilk kontrol edeceğimiz DNS servisimizin durumu olmalıdır. Eğer DNS Servisi kullanmayacaksak “GNS” dediğimiz “Grid Naming Service” kullanabiliriz. Bu teknoloji Oracle tarafından geliştirilmiş bir yapıdır. Cluster mimarilerinde Plug & Play dahil bir çok özellik sağlamaktadır. Bu konuyu daha sonraki makalelerimizde inceleyeceğiz. Ortamımızda bir DNS Sunucusu yoksa “Linux İşletim Sistemlerinde Oracle RAC Scan IP Kullanımı için DNS Yapılandırması” makalemizi inceleyebilirsiniz
- Oracle Real Application Cluster Yapısına göre IP Adresi Gereksinimleri
Burada dikkat edeceğimiz Public, Virtual ve SCAN IP Adresleri aynı ağ segmentinde olacaktır. Private IP Adresimiz diğerlerinden farklı ağ segmentinde olacaktır. Üye 1 Public Interface (Bond0) IP Adresi : 192.168.2.121 Alt Ağ Maskesi : 255.255.255.0 Varsayılan Ağ Geçidi : 192.168.2.1 Virtual Interface (Bond0 üzerine otomatik bind edilecek) IP Adresi : 192.168.2.131 Private Interface 1 (eth2 - Oracle HAIP) IP Adresi : 192.168.117.141 Alt Ağ Maskesi : 255.255.255.0 Private Interface 2 (eth3 - Oracle HAIP) IP Adresi : 192.168.117.143 Alt Ağ Maskesi : 255.255.255.0 Üye 2 Public Interface (Bond0) IP Adresi : 192.168.2.122 Alt Ağ Maskesi : 255.255.255.0 Varsayılan Ağ Geçidi : 192.168.2.1 Virtual Interface (Bond0 üzerine otomatik bind edilecek) IP Adresi : 192.168.2.132 Private Interface 1 (eth2 - Oracle HAIP) IP Adresi : 192.168.117.142 Alt Ağ Maskesi : 255.255.255.0 Private Interface 2 (eth3 - Oracle HAIP) IP Adresi : 192.168.117.144 Alt Ağ Maskesi : 255.255.255.0 Oracle SCAN IP (Aynı isimle 3 farklı IP adresi DNS Sunucumuza kayıt edilecek) DNS Kayıt İsmi : kryrac-scan IP Adresi : 192.168.2.125 DNS Kayıt İsmi : kryrac-scan IP Adresi : 192.168.2.126 DNS Kayıt İsmi : kryrac-scan IP Adresi : 192.168.2.127
64. İşletim sistemimiz hazır şimdi sunucularımızda bulunan ağ (ethernet) kartlarında “Bonding” yapılandırmasını yapmaya başlıyoruz. Aşağıdaki adımları her iki sunucumuzda da uyguluyoruz. Bonding adımları çok dikkatli yapılandırılmalıdır. Oluşacak bir problemde ayarları geri almak biraz sıkıntılı bir durumdur. O yüzden iyi okuyarak ilerleyelim.
- Bond işlemi için bir bond0 adında sanal interface oluşturuyoruz. Bond yapılandırılması yapılmadan önce ağ kartlarına atanmış bir TCP/IP adresi varsa bunlar temizlenmelidir. Biz kurulum aşamasında bunu kapattığımız için direk yapılandırmaya geçebiliriz. İşletim sisteminde “root” kullanıcısı ile oturum açtıktan sonra;
# vim /etc/sysconfig/network-scripts/ifcfg-bond0
-- Dosyamızı oluşturuyoruz ve aşağıdaki değişkenleri kendi ağ yapımıza göre
yapılandırıyoruz. Bonding modu olarak "BONDING_OPTS="mode=6" kullandım
bunların hangisinin sistemimize uygun olduğunu "Bonding" makalemizden
seçebilirsiniz.
-- Üye'1 de yapılacak yapılandırma
DEVICE="bond0"
IPADDR=192.168.2.121
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
DNS1=192.168.2.1
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS="mode=6 miimon=100"
-- Üye'2 de yapılacak yapılandırma
DEVICE="bond0"
IPADDR=192.168.2.122
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
DNS1=192.168.2.1
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS="mode=6 miimon=100"
- Oluşturduğumuz “bond0” arayüzüne dahil edeceğimiz bond üyesi kartları yapılandırıyoruz. Bizim senaryomuzda 2 ağ kartını yapılandıracağımız için “eth0” ve “eth1” ağ kartlarında bu yapılandırmayı yapıyoruz.
-- Her iki üyede yapılacak yapılandırma -- Birinci ağ kartımız için (eth0) # vim /etc/sysconfig/network-scripts/ifcfg-eth0 -- Dosyamıza aşağıdaki değişkenleri giriyoruz. Dikkat edeceğimiz nokta bazı değişkenler dosyamızda mevcut olabilir bunları kontrol ederek olmayanları eklemeliyiz. "HWADDR" değişkeni yerine kartlarımızın "MAC" adreslerini yazmalıyız. HWADDR=XX:XX:XX:XX:XX:XX DEVICE="eth0" ONBOOT=yes BOOTPROTO=none MASTER=bond0 SLAVE=yes USERCTL=no -- İkinci ağ kartımız için (eth1) # vim /etc/sysconfig/network-scripts/ifcfg-eth1 -- Dosyamıza aşağıdaki değişkenleri giriyoruz. Dikkat edeceğimiz nokta bazı değişkenler dosyamızda mevcut olabilir bunları kontrol ederek olmayanları eklemeliyiz. "HWADDR" değişkeni yerine kartlarımızın "MAC" adreslerini yazmalıyız. HWADDR=XX:XX:XX:XX:XX:XX DEVICE="eth1" ONBOOT=yes BOOTPROTO=none MASTER=bond0 SLAVE=yes USERCTL=no
- Bond interface kartı için alias ve diğer ayarları yazacağımız conf dosyasını oluşturuyoruz.
# vim /etc/modprobe.d/bonding.conf -- Dosyasına aşağıdaki değişkenleri giriyoruz. alias bond0 bonding alias netdev-bond0 bonding
- Bu işlemler tamamlandıktan sonra bonding işleminde oluşan default gateway sorununu “Static Route” parametresi ekleyerek çözüyoruz. Genelde ortamlarda birden fazla Vlan var ve her Vlanda tanımlanmış farklı bir gateway varsa sunucuya kendi Vlan’ı dışındanda makinelerin erişebilmesi için aşağıdaki ayarları giriyoruz. Eğer birgün sunucumuzda varsayılan ağ geçidi (default gateway) değişirse bu ayarıda değiştirmeyi unutmamalıyız.
# vim /etc/rc.d/rc.local
-- Dosyamıza aşağıdaki gibi ağ geçidi adresimizi giriyoruz.
/sbin/route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.2.1
gw olarak Vlanınızda bulunan Default Gateway adresi girilmelidir.
Ben 192.168.2.1 adresini senaryomuza göre yazdım.
- Sunucumuzda Cluster ortamının haberleşmesi için interconnect bağlantıları için ip adreslerini bu aşamada atayalım sunucumuzu kurarken otomatik IP adresi almaması için kartlarımızı kapatmıştık ancak “bonding” yapılandırmamız sonrası network servisimizi yeniden başlatmamız gerekeceğinden interconnect kartlarımızı otomatik IP adresi alabilir. Bunu önlemek için sırasıda gelmişken interconnect bağlatılarımız için IP adreslerini atıyoruz. Kalan 2 ağ kartımızı “Oracle HAIP” mimarisi ile yapılandıracağımızdan her sunucuda bulunan 2 karta 2 ayrı IP adresi atamamız gerekiyor.
-- Aşağıdaki değişkenleri ilgili dosyalarımıza giriyoruz. Dikkat edeceğimiz nokta bazı değişkenler dosyamızda mevcut olabilir bunları kontrol ederek olmayanları eklemeliyiz. "HWADDR" değişkeni yerine kartlarımızın "MAC" adreslerini yazmalıyız. -- Üye 1'de yapılacak yapılandırma # vim /etc/sysconfig/network-scripts/ifcfg-eth2 HWADDR=XX:XX:XX:XX:XX:XX DEVICE="eth2" IPADDR=192.168.117.141 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none DEFROUTE=no # vim /etc/sysconfig/network-scripts/ifcfg-eth3 HWADDR=XX:XX:XX:XX:XX:XX DEVICE="eth3" IPADDR=192.168.117.143 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none DEFROUTE=no -- Üye 2'de yapılacak yapılandırma # vim /etc/sysconfig/network-scripts/ifcfg-eth2 HWADDR=XX:XX:XX:XX:XX:XX DEVICE="eth2" IPADDR=192.168.117.142 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none DEFROUTE=no # vim /etc/sysconfig/network-scripts/ifcfg-eth3 HWADDR=XX:XX:XX:XX:XX:XX DEVICE="eth3" IPADDR=192.168.117.144 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none DEFROUTE=no
- Sunucumuzda Bonding işleminin aktif olabilmesi için modülün kernele yüklenmesini sağlıyoruz. Sonrasında değişikliklerin uygulanabilmesi için servisimizi yeniden başlatıyoruz. Sunucumuzun açılışında bir problem olmadığından emin olmak için sunucularımızı yeniden başlatıyoruz.
# modprobe bonding
# service network restart
# shutdown -r now
Sunucumuzu başladıktan sonra yapılandırmamızı kontrol ediyoruz. Aşağıdaki ekranda görüldüğü gibi artık “Bond0”, “eth2” ve “eth3” olmak üzere ağ bağlantılarımız hazır.
İşletim Sistemi kurulumumuz bitti bu adımları her iki üye sunucuda birebir aynı olacak şekilde yapılandırmalıyız. Yazımızın ikinci aşaması olan “Oracle Real Application Clusters (Oracle RAC) Kurulumu” bölümüne geçebiliriz.
B-) Oracle Real Application Clusters (Oracle RAC) – (Grid Infrastracture & Database) Kurulumu
1. Oracle kurulumuna başlamadan önce sunucumuz internete çıkıyorsa öncelikle işletim sistemi güncellememizi yapabiliriz. Eğer internete çıkmıyorsa veya herhangi bir güncelleme yapmayacaksak bu adımı atlayabiliriz. Bu işlem zorunlu bir Oracle gereksinimi değildir.
# yum -y update
2. Sunucumuz internete çıkıyor ise Oracle veritabanı kurulumu için gerekli olan ön gereksinimler paketini kurabilir ve gerekli paketlerle ayarların otomatik şekilde yapılanmasını sağlayabiliriz. Eğer içimiz rahat etmezse aşağıdaki adımları da izleyerek ayarları kontrol edebiliriz. Yada kendimiz elle yapılandırabiliriz. Oracle Enterprise Linux 6.4 işletim sisteminde bu paket otomatik yüklenmiş halde gelmektedir. Sadece “Oracle Tahiti” adresindeki kurulum dökümanından parametreler kontrol edilebilir. Elle yapılandırıcaklar için bu adımlarıda inceleyceğiz.
-- Otomatik paketlerin ve ayarların kurulumu için aşağıdaki komutu “root” kullanıcı ile çalıştırıyoruz. # yum install oracle-rdbms-server-11gR2-preinstall
3. Ayarlarımızı elle kendimiz yapmak için aşağıdaki adımları izlememiz gerekiyor.
- Kernel Parametre dosyasında gerekli düzenlemeyi yapıyoruz.
# vim /etc/sysctl.conf -- Dosyasına aşağıdaki parametreleri giriyoruz. # Oracle Database Kernel Parameters fs.file-max = 6815744 kernel.sem = 250 32000 100 128 kernel.shmmni = 4096 kernel.shmall = 1073741824 kernel.shmmax = 4398046511104 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 fs.aio-max-nr = 1048576 net.ipv4.ip_local_port_range = 9000 65500 -- Bu parametreleri girdikten sonra değişikliklerin uygulanabilmesi için # /sbin/sysctl -p komutunu çalıştırıyoruz.
- Limitlerin belirlendiği dosyada gerekli düzenlemeyi yapıyoruz.
# vim /etc/security/limits.conf -- Dosyasına aşağıdaki parametreleri giriyoruz. # Oracle Database Limit Parameters oracle soft nofile 1024 oracle hard nofile 65536 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft stack 10240 oracle hard stack 32768
- Veritabanı kurulumu için gereken paket grupları ve paketleri kuruyoruz. Sistemimizde mevcut olan paketler varsa kurma isteğimizde “Nothing to do” uyarısı alacağız. Bu uyarıyı alıyorsak paket zaten sistemimizde kurulu demektedir. Bir çok paketin mevcut olduğunu söyleyecek ve olmayan bir kaç paketi sisteme kuracaktır.
-- Sunucumuz İnternete çıkıyorsa paketleri direk "yum install" komutu ile kurabiliriz. yum install binutils-2*x86_64* yum install glibc-2*x86_64* nss-softokn-freebl-3*x86_64* yum install glibc-2*i686* nss-softokn-freebl-3*i686* yum install compat-libstdc++-33*x86_64* yum install glibc-common-2*x86_64* yum install glibc-devel-2*x86_64* yum install glibc-devel-2*i686* yum install glibc-headers-2*x86_64* yum install elfutils-libelf-0*x86_64* yum install elfutils-libelf-devel-0*x86_64* yum install gcc-4*x86_64* yum install gcc-c++-4*x86_64* yum install ksh-*x86_64* yum install libaio-0*x86_64* yum install libaio-devel-0*x86_64* yum install libaio-0*i686* yum install libaio-devel-0*i686* yum install libgcc-4*x86_64* yum install libgcc-4*i686* yum install libstdc++-4*x86_64* yum install libstdc++-4*i686* yum install libstdc++-devel-4*x86_64* yum install make-3.81*x86_64* yum install numactl-devel-2*x86_64* yum install sysstat-9*x86_64* yum install compat-libstdc++-33*i686* yum install compat-libcap* -- Sunucumuz internete çıkmıyorsa paketlerin kurulması için sunucumuzdaki Kurulum DVD'sini takarak paketleri kuruyoruz. -- Oracle Linux 6 DVD # cd /media/cdrom/Server/Packages 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* # cd / # eject
- Oracle için kullanıcıları ve kullanıcı gruplarını yaratıyoruz.
# groupadd -g 501 oinstall # groupadd -g 502 dba # groupadd -g 503 oper # groupadd -g 504 asmadmin # groupadd -g 506 asmdba # groupadd -g 505 asmoper # useradd -u 502 -g oinstall -G dba,asmdba,oper oracle # passwd oracle -- Burada database, asm vb. için ayrı ayrı kullanıcılar yarattık eğer her iş için kullanıcı ve grupları ayırmayacaksak sadece oinstall ve dba grubu yaratarakta devam edebiliriz. Bu bizim sistem politikamıza göre değişebilir.
Oracle öngereksinim paketi kullanmadan elle kurulum yapmak için gerekli işlemlerin neler olduğunu ve yapmamız gereken ayarları inceledik. Şimdi sistemimizde diğer ayarların yapılmasına geçelim. Oracle Enterprise Linux 6.4 kurulumunda Oracle öngereksinim paketi otomatik olarak kurulu geliyor bu paketle birlikte gerekli olan parametre ayarları, kullanıcı grupları ve kullanıcılar otomatik olarak ayarlanmış ve yaratılmış olarak geliyor.
4. Oracle ön gereksinim paketi kurulu gelmişse Oracle Kullanıcısı için parola belirliyoruz.
# passwd oracle Changing password for user oracle. New password: Retype new password: passwd: all authentication tokens updated successfully.
5. Yerel isim çözümleme dosyasına gerekli IP Adreslerini ve makine isimlerini giriyoruz.
# vim /etc/hosts -- Dosyasına aşağıdaki satırları kendi ağ yapılandırmamıza göre ekliyoruz. # Local 127.0.0.1 localhost.localdomain.com localhost # Public 192.168.2.121 kryrac1.localdomain kryrac1 192.168.2.122 kryrac2.localdomain kryrac2 # Virtual 192.168.2.131 kryrac1-vip.localdomain kryrac1-vip 192.168.2.132 kryrac2-vip.localdomain kryrac2-vip # Private 192.168.117.141 kryrac1-priv.localdomain kryrac1-priv 192.168.117.143 kryrac1-priv2.localdomain kryrac1-priv2 192.168.117.142 kryrac2-priv.localdomain kryrac2-priv 192.168.117.144 kryrac2-priv2.localdomain kryrac2-priv2
6. Zaman sunucusu (NTP) ayarlarımızı yapıyoruz. Oracle RAC ortamlarında Cluster senkronizasyonu çok önemli bir konudur. Üyeler arasında zaman farklı olduğunda sistemimizde sorunlar çıkacaktır. Bu yapılandırmayı “Oracle Cluster Time Synchronization Service (ctssd)” kullanmayacaksak yapıyoruz. Bizim senaryomuzda kullanmayacağımız için ortamdaki zaman sunucusunu (NTP Server) kullanacağımız için aşağıdaki ayarları yapıyoruz. Bu konuyla ilgili daha detaylı bilgileri “Linux İşletim Sistemlerinde NTP Yapılandırması” makalemizde bulabilirsiniz.
# vim /etc/sysconfig/ntpd dosyasında bulunan parametre aşağıdaki gibi düzenlenmelidir. OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid" -- Ardından da servis yeniden başlatılmalıdır. Bu ayar cluster ortamlarında zaman senkronizasyonu bozulduğunda zamanı geri ya da ileri almak yerine bekletecektir. Bu şekilde senkronizasyonun bozulmasını engelleyecektir. # service ntpd restart # chkconfig ntpd on
7. Yine kurulum aşamasında veya yüksek miktarda “memory_target” parametresi atandığında “ORA-00845 : MEMORY_TARGET” hatası almaktayız bu sorunu engellemek için aşağıdaki “shmfs” parametresi ayarlanmalıdır. Bu dosyada yapılan değişiklikler bir sonraki yeniden başlatma sırasında geçerli olacaktır. Hemen devreye almak için aşağıdaki “mount” komutu çalıştırılmalıdır. Ayarlayacağımız miktarı “MEMORY_TARGET” paremetresine atayacağımız miktardan 1 GB kadar fazla atamakta fayda var. Bazen aynı olduğunda sorun çıkabiliyor.
# vim /etc/fstab -- Dosyasında tmpfs satırının altına aşağıdaki gibi bir satır eklenmelidir. Burada belirtilen "size=16g" boyutu en az atayacağımız "memory_target" parametresi kadar olmalıdır. -- Örneğin "memory_target" parametremiz 16 GB olacaksa burada atayacağımız değer aşağıdaki gibi olmalıdır. Fazla atanması sorun değildir. Önemli olan "memory_target" değerinden düşük olmamasıdır. shmfs /dev/shm tmpfs size=3g 0 -- Değişikliği hemen devreye almak için # mount /dev/shm/ komutunu çalıştırıyoruz.
8. Eğer kurulum bitiminde “Secure Linux” ve “Firewall” özelliğini kapatmamışsak bunları kapatıyoruz.
# vim /etc/selinux/config -- dosyasında bulunan SELINUX=disabled -- parametresini yukarıdaki gibi kapalı duruma getiriyoruz. -- Firewall Servisini kapatmak için aşağıdaki komutları çalıştırıyoruz. # service iptables stop # chkconfig iptables off
9. Oracle kurulumlarını yapabilmek, kurulum ve patch dosyalarımızı koyabilmek için gerekli olan dizinleri yaratıp hakları atıyoruz.
# mkdir -p /u01/app/11.2.0.3/grid # mkdir -p /u01/app/oracle/product/11.2.0.3/db # mkdir -p /u01/orainstall # mkdir -p /u01/orainstall/opatch # mkdir -p /u01/orainstall/patchset # chown -R oracle:oinstall /u01 # chmod -R 775 /u01/ /u01/app/11.2.0.3/grid Grid Infrastructure kurulum dizini. /u01/app/oracle/product/11.2.0.3/db Oracle Database kurulum dizini /u01/orainstall Oracle kurulum dosyalarını atacağımız dizin. -- Dikkat etmemiz gereken önemli noktalardan biri Grid dizininin /u01/app/oracle/ dediğimiz "Oracle Base" dizininden farklı bir yerde olması. Aksi takdirde kurulum aşamasında uyarı verecektir. -- Oracle 11.2.0.2.0 versiyonundan sonra ayrı bir dizine kurulum yapılarak upgrade etme imkanı getirdi. Yani mevcut oracle dizinleri haricinde bir dizine kurulum yapılarak mevcut dizinleri bozmadan yükseltme imkanımız oluyor bu yüzden dizinler oluşturulurken "/u01/app/oracle/product/11.2.0.3/db" gibi versiyon isimlerinide koydum yeni bir versiyon çıktığında yükseltme işlemi yapılırken "/u01/app/oracle/product/11.2.0.4/db" gibi dizin yaratarak mevcut dizinlere dokunmadan upgrade işlemini yapabiliriz.
10. Oracle Veritabanı için değişkenlerimizi “.bash_profile” dosyamıza yazıyoruz.
-- "root" kullanıcısının clusterware araçlarını kullanması profil dosyasını düzenliyoruz. # cd # vim .bash_profile -- dosyasına aşağıdaki değişkenleri her iki üyede ekliyoruz. # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs GRID_HOME=/u01/app/11.2.0.3/grid; export ORACLE_HOME PATH=$PATH:$HOME/bin:$PATH:$GRID_HOME/OPatch export PATH LD_LIBRARY_PATH=$GRID_HOME/lib export LD_LIBRARY_PATH -- Oracle kullanıcısına geçiş yapıyoruz. # su - oracle $ vim /home/oracle/.bash_profile -- dosyasına aşağıdaki değişkenleri her iki üyede ekliyoruz. -- Üye'1 de bulunan .bash_profile dosyasına aşağıdakileri yazıyoruz. # Oracle Settings TMP=/tmp; export TMP TMPDIR=$TMP; export TMPDIR ORACLE_HOSTNAME=kryrac1.localdomain; export ORACLE_HOSTNAME ORACLE_UNQNAME=rac; export ORACLE_UNQNAME ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE GRID_HOME=/u01/app/11.2.0.3/grid; export GRID_HOME DB_HOME=$ORACLE_BASE/product/11.2.0.3/db; export DB_HOME ORACLE_HOME=$DB_HOME; export ORACLE_HOME ORACLE_SID=rac1; export ORACLE_SID ORACLE_TERM=xterm; export ORACLE_TERM BASE_PATH=/usr/sbin:$PATH; export BASE_PATH PATH=$ORACLE_HOME/bin:$PATH:$ORACLE_HOME/OPatch:$BASE_PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi alias grid='. /home/oracle/.grid' alias db='. /home/oracle/.db' -- Üye 2'de bulunan .bash_profile dosyasına aşağıdakileri yazıyoruz. # Oracle Settings TMP=/tmp; export TMP TMPDIR=$TMP; export TMPDIR ORACLE_HOSTNAME=kryrac2.localdomain; export ORACLE_HOSTNAME ORACLE_UNQNAME=rac; export ORACLE_UNQNAME ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE GRID_HOME=/u01/app/11.2.0.3/grid; export GRID_HOME DB_HOME=$ORACLE_BASE/product/11.2.0.3/db; export DB_HOME ORACLE_HOME=$DB_HOME; export ORACLE_HOME ORACLE_SID=rac2; export ORACLE_SID ORACLE_TERM=xterm; export ORACLE_TERM BASE_PATH=/usr/sbin:$PATH; export BASE_PATH PATH=$ORACLE_HOME/bin:$PATH:$ORACLE_HOME/OPatch:$BASE_PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi alias grid='. /home/oracle/.grid' alias db='. /home/oracle/.db'
11. Sunucumuzda Grid ve Database değişkenleri arasında geçiş yapabilmek için gerekli profil dosyalarımızı oluşturuyoruz.
-- Grid değişkenleri için aşağıdaki dosyamızı oluşturuyoruz. -- Üye 1'de dosyamızı yaratıyoruz. $ vim /home/oracle/.grid ORACLE_SID=+ASM1; export ORACLE_SID ORACLE_HOME=$GRID_HOME; export ORACLE_HOME PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH -- Üye 2'de dosyamızı yaratıyoruz. $ vim /home/oracle/.grid ORACLE_SID=+ASM2; export ORACLE_SID ORACLE_HOME=$GRID_HOME; export ORACLE_HOME PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH Database değişkenleri için aşağıdaki dosyamızı oluşturuyoruz. $ vim /home/oracle/.db -- Üye 1'de dosyamızı yaratıyoruz. ORACLE_SID=rac1; export ORACLE_SID ORACLE_HOME=$DB_HOME; export ORACLE_HOME PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH $ vim /home/oracle/.db -- Üye 2'de dosyamızı yaratıyoruz. ORACLE_SID=rac2; export ORACLE_SID ORACLE_HOME=$DB_HOME; export ORACLE_HOME PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
12. Şimdi ASM için atayacağımız disklerimizi yapılandıracağız. ASM ortamına atayacağımız diskleri iki yöntem ile yapılandırabiliriz. “Oracle ASM Library” dediğimiz Oracle tarafında sağlanan araç ile ya da elle “UDEV” dediğimiz Linux yapılandırması ile “UDEV” ile yapılandırma “Oracle ASM Library” göre daha zor ve karmaşıktır. Bu makalemizde “Oracle ASM Library” kullanarak disklerimizi ASM için yapılandırıp damgalayacağız. ASM için oluşturacağımız disk grubundaki diskler birebir aynı boyutta olmalıdır. Ayrıca disklerimiz kesinlikle formatlanmamış ve kullanılmamış olmalıdır. Aşağıdaki işlemlerin tamamını “root” kullanıcısı ile yapacağız. Burada uyguladığımız adımlara çok dikkat edilmelidir. Çünkü bazı adımlar sadece bir üye üzerinde yapılmaktadır. Ayrıca her iki üyede bulunan disklerimizde yapılandırmalarımızın farklı olduğunu görürsek “Linux İşletim Sistemlerinde Disk Header ve ASM Disk Header Yapılandırması” makalemizden yararlanarak her iki üyede disklerimizi eşitleyebiliriz.
-- Aşağıdaki işlemleri yapabilmek için yeniden "root" kullanıcısına geçiyoruz. $ su - root -- Aşağıdaki komut ile sistemimizdeki diskleri listeliyoruz. # ll /dev/sd* brw-rw---- 1 root disk 8, 0 Mar 29 02:28 /dev/sda brw-rw---- 1 root disk 8, 1 Mar 29 02:28 /dev/sda1 brw-rw---- 1 root disk 8, 2 Mar 29 02:28 /dev/sda2 brw-rw---- 1 root disk 8, 16 Mar 29 02:28 /dev/sdb brw-rw---- 1 root disk 8, 32 Mar 29 02:28 /dev/sdc brw-rw---- 1 root disk 8, 48 Mar 29 02:28 /dev/sdd brw-rw---- 1 root disk 8, 64 Mar 29 02:28 /dev/sde -- İşletim sistemi disklerimiz aşağıdaki gibi, brw-rw---- 1 root disk 8, 0 Mar 29 02:28 /dev/sda brw-rw---- 1 root disk 8, 1 Mar 29 02:28 /dev/sda1 brw-rw---- 1 root disk 8, 2 Mar 29 02:28 /dev/sda2 -- ASM için kullanacağımız disklerimizse aşağıdaki gibidir. brw-rw---- 1 root disk 8, 16 Mar 29 02:28 /dev/sdb brw-rw---- 1 root disk 8, 32 Mar 29 02:28 /dev/sdc brw-rw---- 1 root disk 8, 48 Mar 29 02:28 /dev/sdd brw-rw---- 1 root disk 8, 64 Mar 29 02:28 /dev/sde
13. Disklerimiz için partition table oluşturuyoruz.
-- Buradaki işlemler tek bir üye üzerinden yapılmalıdır. Kesinlikle her iki üyede uygulanmamalıdır. # fdisk /dev/sdb WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-1305, default 1): Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): Using default value 1305 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. 1. soruda "n" seçeneğini veriyoruz. 2. soruda türünü soruyor “p” seçeneğini veriyoruz primary olarak oluşturuyoruz. 3. soruda "1" diyerek default seçeneği veriyoruz. 4. Dördüncü ve 5. soruları "enter" tuşuna basarak default seçeneğinde bırakıyoruz. 6. soruda "w" tuşuna basarak değişiklikleri uyguluyoruz. -- Aynı işlemi diğer "sdc" "sdd" "sde" disklerimiz içinde yapıyoruz. -- Artık disklerimiz hazır. # ll /dev/sd* brw-rw---- 1 root disk 8, 0 Mar 29 03:59 /dev/sda brw-rw---- 1 root disk 8, 1 Mar 29 03:59 /dev/sda1 brw-rw---- 1 root disk 8, 2 Mar 29 03:59 /dev/sda2 brw-rw---- 1 root disk 8, 16 Mar 29 04:18 /dev/sdb brw-rw---- 1 root disk 8, 17 Mar 29 04:27 /dev/sdb1 brw-rw---- 1 root disk 8, 32 Mar 29 04:18 /dev/sdc brw-rw---- 1 root disk 8, 33 Mar 29 04:27 /dev/sdc1 brw-rw---- 1 root disk 8, 48 Mar 29 04:18 /dev/sdd brw-rw---- 1 root disk 8, 49 Mar 29 04:27 /dev/sdd1 brw-rw---- 1 root disk 8, 64 Mar 29 04:19 /dev/sde brw-rw---- 1 root disk 8, 65 Mar 29 04:28 /dev/sde1 değimizde "sdb1" "sdc1" "sdd1" ve "sde1" olarak disklerimizin oluştuğunu görüyoruz. -- Değişikliklerin geçerli olması için sistemimizi yeniden başlatıyoruz. # shutdown -r now
14. Artık “Oracle ASM Library” yapılandırıp disklerimizi ASM için damgalayabiliriz.
-- Aşağıdaki işlemleri her iki üyede uyguluyoruz. -- Öncelikle ASM Library için güncelleme, yetkilendirme ve yapılandırma ayarımızı yapıyoruz. -- Oracle ASM Library sürücümüzün güncelliğini kontrol ediyoruz. # oracleasm update-driver Kernel: 2.6.39-400.17.2.el6uek.x86_64 x86_64 Driver name: oracleasm-2.6.39-400.17.2.el6uek.x86_64 Driver for kernel 2.6.39-400.17.2.el6uek.x86_64 does not exist -- Oracle ASM Yetkilendirme işlemlerini yapıyoruz. # oracleasm configure -I Configuring the Oracle ASM library driver. This will configure the on-boot properties of the Oracle ASM library driver. The following questions will determine whether the driver is loaded on boot and what permissions it will have. The current values will be shown in brackets ('[]'). Hitting <ENTER> without typing an answer will keep that current value. Ctrl-C will abort. Default user to own the driver interface []: oracle Default group to own the driver interface []: dba Start Oracle ASM library driver on boot (y/n) [n]: y Scan for Oracle ASM disks on boot (y/n) [y]: y The next two configuration options take substrings to match device names. The substring "sd" (without the quotes), for example, matches "sda", "sdb", etc. You may enter more than one substring pattern, separated by spaces. The special string "none" (again, without the quotes) will clear the value. Device order to scan for ASM disks []: Devices to exclude from scanning []: Use device logical block size for ASM (y/n) [n]: y Writing Oracle ASM library driver configuration: done 1. soruda "oracle" yazıp enter tuşuna basıyoruz. 2. soruda "dba" yazıp enter tuşuna basıyoruz. 3. soruda "y" yazıp enter tuşuna basıyoruz. 4. soruda "y" yazıp enter tuşuna basıyoruz. 5. ve 6. sorularda hiçbirşey yazmadan enter tuşuna basıyoruz. -- Şimdi Oracle ASM Kernel modülünü aktif edip "/dev/oracleasm" altında Oracle Mount Point'i oluşturalım. # oracleasm init Creating /dev/oracleasm mount point: /dev/oracleasm Loading module "oracleasm": oracleasm Configuring "oracleasm" to use device logical block size Mounting ASMlib driver filesystem: /dev/oracleasm -- Bu işlemlerden sonra artık ASM için disklerimizi oluşturup damgalayabiliriz. -- Buradaki işlemler tek bir üye üzerinden yapılmalıdır. Kesinlikle her iki üyede uygulanmamalıdır. # oracleasm createdisk data1 /dev/sdb1 Writing disk header: done Instantiating disk: done # oracleasm createdisk data2 /dev/sdc1 Writing disk header: done Instantiating disk: done # oracleasm createdisk fra1 /dev/sdd1 Writing disk header: done Instantiating disk: done # oracleasm createdisk fra2 /dev/sde1 Writing disk header: done Instantiating disk: done -- Oluşturduğumuz disklerimizi listelemek için # ll /dev/oracleasm/disks/ brw-rw---- 1 oracle dba 8, 17 Mar 29 04:27 DATA1 brw-rw---- 1 oracle dba 8, 33 Mar 29 04:27 DATA2 brw-rw---- 1 oracle dba 8, 49 Mar 29 04:27 FRA1 brw-rw---- 1 oracle dba 8, 65 Mar 29 04:28 FRA2 veya # oracleasm listdisks DATA1 DATA2 FRA1 FRA2 -- Yukarıda görüldüğü gibi "DATA" ve "FRA" adında 4 diskimiz oluşmuş ve ASM için damgalanmış durumda. -- Oluşturulan ASM disklerin tüm düğümler üzerinde görülebilmesini sağlamak amacıyla scandisks komutunu diğer üyede çalıştırıyoruz. Bu işlem sonunda tüm düğümler bu paylaşımlı ASM disklerine erişebilecektir. # oracleasm scandisks Reloading disk partitions: done Cleaning any stale ASM disks... Scanning system for ASM disks... Instantiating disk "DATA1" Instantiating disk "DATA2" Instantiating disk "FRA1" Instantiating disk "FRA2"
15. Kuruluma geçebilmemiz için ftp yada başka bir yöntem ile kurulum dosyalarımızı oluşturduğumuz “/u01/orainstall/” dizini altına atıyoruz. Eğer sunucumuzda ftp server özelliği aktif edilmemişse “Linux İşletim Sistemlerinde FTP Server Yapılandırması” makalemizden faydalanarak gerekli ayarları yapabiliriz. Kurulum tek bir üye üzerinden her iki üyeyede yapılacağından kurulum dosyalarını bir üye üzerine koymanız yeterli olacaktır.
16. Oracle kullanıcısı ile kopyalama işlemimiz bittiğinde kurulum dosyalarımızı kontrol ediyoruz. Eğer veritabanımıza Patch Set Update uygulamadan kuracaksak “OPatch” ve “Patchset Update” dosyalarına ihtiyacımız yok.
-- Kurulum için; $ cd /u01/orainstall/ $ ls p10404530_112030_Linux-x86-64_1of7.zip p10404530_112030_Linux-x86-64_2of7.zip p10404530_112030_Linux-x86-64_3of7.zip -- OPatch Güncellemesi için $ cd /u01/orainstall/opatch $ ls p6880880_112000_Linux-x86-64.zip -- Grid & Database Patch Set Update için $ cd /u01/orainstall/patchset $ ls p14727347_112030_Linux-x86-64.zip
17. Oracle Grid Infrastructure ve Oracle Database kurulumları için ilk 3 .zip dosyasına ihtiyacımız var. Bu kurulum dosyalarımızı OTN veya MOS hesaplarımız ile indirebiliriz. Eğer son versiyon kurulumu yapabilmek istiyorsak (11.2.0.3.0 gibi) MOS dediğimiz Oracle Support üyeliğimizin olması gerekmektedir. Eğer buna sahip değilsek o zaman OTN hesabımız ile çıkmış olan ilk versiyonu (11.2.0.1.0 gibi) indirebiliriz. Şimdi bu sıkıştırılmış dosyalarımızı oracle kullanıcısı ile sırasıyla açıyoruz.
$ unzip p10404530_112030_Linux-x86-64_1of7.zip $ unzip p10404530_112030_Linux-x86-64_2of7.zip $ unzip p10404530_112030_Linux-x86-64_3of7.zip
18. Ayıklama işlemi tamamlandığında yer kaplamaması için istersek .zip dosyalarını temizleyebiliriz.
$ rm -f p10404530_112030_Linux-x86-64* -- Aşağıdaki komut ile "database" ve "grid" kurulum dizinlerimizi görebiliriz. $ ls database grid -- Bu aşamada "Cluster Verification Utility" aracını kullandığımızda ve kurulum aşamasında öngereksinim kontrolü yapılırken disklerimizi denetlemesi için "cvuqdisk" paketimizi kuruyoruz ve CVU (SSH) için gerekli olan sembolik linkleri yaratıyoruz. -- Disk kontrol paketini kuruyoruz. $ su - root # cd /u01/orainstall/grid/rpm # rpm -Uvh cvuqdisk* Preparing... ########################################### [100%] Using default group oinstall to install package 1:cvuqdisk ########################################### [100%] -- Diğer üyeye dosyamızı kopyalıyoruz. # scp cvuqdisk* kryrac2.localdomain:/u01/orainstall/ The authenticity of host 'kryrac2.localdomain (192.168.2.122)' can't be established. RSA key fingerprint is ff:d5:3d:69:e9:93:04:a8:6b:ae:0d:88:d3:ea:a2:ef. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'kryrac2.localdomain' (RSA) to the list of known hosts. root@kryrac2.localdomain's password: cvuqdisk-1.0.9-1.rpm 1. soruda "yes" yazıp enter tuşuna basıyoruz. 2. soruda "root" kullanıcısının parolasını yazıyoruz. -- Şimdi karşı diğer üyeye bağlanıp paketimizi kuralım. # ssh kryrac2 root@kryrac2's password: ********** # cd /u01/orainstall/ # rpm -Uvh cvuqdisk* Preparing... ########################################### [100%] Using default group oinstall to install package 1:cvuqdisk ########################################### [100%] Paketimiz kuruldu. -- Aşağıdaki işlemi her iki üyede yapmalıyız. CVU için gerekli olan sembolik linkleri yaratıyoruz. # ln -s /usr/bin/ssh /usr/local/bin/ssh # ln -s /usr/bin/scp /usr/local/bin/scp
19. Kurulum sunucu üzerinde değilde uzaktan kendi bilgisayarmızda yapılacaksa ekranı export edebiliriz. Bunun için “Xmanager” vb. emülatör yazılımları kullanılabilir. Bu yazılımı bilgisayarımıza kurduğumuzda “Xmanager – Passive” programını çalıştırmalıyız. Görev çubuğunda yazılım çalışacak ve export ettiğimiz ekranı kendi bilgisayarımızdan yönetebileceğiz. Bununla beraber “VNC Server” aracılığı ile de sunucuya bağlanabilir ve kurulumu direk sunucu üzerinden yapabiliriz. Bunun için “Linux İşletim Sistemlerinde VNC Server Yapılandırması” makalemizden yararlanabilirsiniz. Önerilen eğer işletim sistemimizde masaüstü yazılımı (KDE, Gnome vb) varsa kurulumu VNC Server veya sunucu üzerinden yapmanız çünkü kurulum aşamasında network vb. kesintisinde kurulumunuz yarım kalabilir.
-- Öncelikle Xmanager vb. Emülatör programını bilgisayarımızda çalıştırmalıyız.Ardından aşağıdaki komut ile görüntüyü export etmeliyiz. $ DISPLAY=<machine-name>:0.0; export DISPLAY Örnek; $ DISPLAY=192.168.2.83:0.0; export DISPLAY Test için; $ xclock -- Yazdığımızda ekranımızda bir saat yazılımının çalıştığını görmeliyiz. Eğer açılmıyorsa ayarlarda bir sorun var demektir. Firewall vb. ayarlarımızı kontrol etmeliyiz.
20. Bu işlemlerin tamamı bittiğinde üyelerimizin ağ üzerinden konuştuklarını “ping” komutu ile test ediyoruz.
-- Yapılandırmamız sonunda üyelerimizin ağ üzerinden iletişimini
test ediyoruz.
-- Üye 1 üzerinden 2. Üyeye ping atıyoruz.
$ ping -c 3 kryrac2
$ ping -c 3 kryrac2-priv
$ ping -c 3 kryrac2-priv2
-- Üye 2 üzerinden 1. Üyeye ping atıyoruz.
$ ping -c 3 kryrac1
$ ping -c 3 kryrac1-priv
$ ping -c 3 kryrac1-priv2
-- Bu işlemler sonucunda tüm üyeler birbirlerini görüyorsa "ping"
isteğine cevap veriyorsa sorun yok demektir.
21. Bu işlemlerin tamamı bittiğinde kuruluma geçebiliriz. Öncelikle “Oracle Grid Infrastructure” yazılımının kurulumuna başlıyoruz.
-- Oracle kullanıcısı ile sistemimize bağlıyken $ cd /u01/orainstall/grid/ kurulum dizininde bulunan $ ./runInstaller uygulamasını çalıştırıyoruz.
22. Açılan karşılama ekranında güncellemeler için bizden “Oracle Support MOS” hesabını istiyor bu adımı “Skip software updates” seçeneğini seçerek “Next” düğmesine tıklıyoruz.
23. Kurulumumuzu “Cluster” olarak yapacağımız için “Install and Configure Oracle Grid Infrastructure for a Cluster” seçeneğini seçerek “Next” düğmesine tıklıyoruz.
24. Kurulum seçeneği olarak bütün seçenekleri kendimiz yapılandıracağımız için “Advanced Installation” seçeneğini seçiyoruz ve “Next” düğmesine tıklıyoruz.
25. Dil seçeneğimizi varsayılan olarak “English” olarak seçili bırakıyoruz ve “Next” düğmesine tıklıyoruz.
26. Oluşturduğumuz “Cluster” mimarisinin isimlendirmesini yapıyoruz. Burada isimlendirme yaparken aşağıdaki gibi sadeleştirerek yapmamız daha kullanışlı olacaktır. İsimlendirme işlemimiz bittiğinde GNS ve GPnP kullanmayacağımız için “Configure GNS” seçeneğinin işaretini kaldırıp “Next” düğmesine tıklıyoruz.
27. Kümeye dahil edilecek üyelerin seçileceği ekranda ikinci üyeyi dahil etmek için “Add” düğmesine tıklıyoruz.
28. Kümemize dahil edeceğimiz ikinci üyenin bilgilerini giriyoruz. Burada Public ve Virtual ağ bilgilerimizi giriyoruz sonrasında “OK” düğmesine tıklıyoruz.
29. Kümemize ikinci üyeyide dahil ettikten sonra üyelerin aralarında güvenli bir şekilde şifresiz konuşmasını sağlmak üzere “SSH” yapılandırmasını yapmak üzere “SSH Connectivity” düğmesine tıklıyoruz.
30. Her iki üyeyi seçtikten sonra oracle kullanıcısı için atamış olduğumuz parolayı yazıyoruz ve “Setup” düğmesine tıklıyoruz.
31. Kurulum sihirbazımız “SSH” yapılandırmamızı yaparken bekliyoruz.
32. Yapılandırmamız başarılı olduğunda aşağıdaki uyarıyı alacağız. Kuruluma devam edebilmek için önce “OK” düğmesine ardından “Next” düğmesine tıklayarak bir sonraki adıma geçiyoruz.
33. Kümeleme işlemimiz için en önemli adımlardan biri olan ağ yapılandırmasına geldik. Burada “eth0” ve “eth1” isimli kartlarımız “bond0” kartında toplanmış public ağ kartlarımızdır. İşletim sistemi kurulumundan sonra bonding işlemi yaptığımızdan “eth0” ve “eth1” kartlarımızı “Do Not Use” olarak işaretliyoruz. Public ağ kartımız olan “bond0” sanal kartımızıda “Public” olarak seçiyoruz. Kümeye dahil sunucuların birbirleri ile konuşması için gerekli olan “Interconnect” bağlantısını Oracle HAIP mimarisine göre yapılandıracağımızdan bunun için ayırdığımız “eth2” ve “eth3” isimli ağ kartlarımızı “Private” olarak seçiyoruz ve kuruluma devam etmek için “Next” düğmesine tıklıyoruz.
34. Depolama seçeneği olarak “Oracle Automatic Storage Management (Oracle ASM) kullanacağımız için bu seçeneğini işaretliyoruz ve “Next” düğmesine tıklıyoruz.
35. Verilerimizi depolayacağımız alanımız olan “DATA” diskimizi yapılandırıyoruz. Kurulum sihirbazının diskleri görebilmesi için “Change Discovery Path” düğmesine tıklıyoruz.
36. Daha önce oluşturduğumuz ASM Disklerimizi burada kullanıma sunuyoruz. Asm Library altında oluşan disklerin yolunu sisteme tanıtıyoruz “Change Discovery Path” düğmesine tıklayarak açılan pencerede disklerin yolu olan “/dev/oracleasm/disks” yolunu yazıyoruz. “Disk Group Name” olarak DATA yazıyoruz ve “Redundancy” olarak “External” seçiyoruz bu seçenekleri biraz açacak olursak;
External : Yedeği yoktur. Ancak en performanslı moddur. Genelde hardware mirror varsa kullanılır ve varsayılan seçenektir. Burada şöyle düşünebiliriz. Bir veri depolama (storage) ünitemiz var ve oradan sunucumuza disk atanıyor ve mirror orada veri depolama ünitesi katmanında yapıldığı için bizim ayrıca oracle asm tarafında bir mirror oluşturmamıza gerek kalmıyor.
Normal : ASM’nin 2 yönlü mirroring yaptığı konfigürasyondur. Bu durumda veri tutarlılığı artar ancak disk alanından taviz verilir.
High : ASM’nin 3 yönlü mirroring yaptığı konfigürasyondur. Bu durumda veri tutarlılığı artar ancak disk alanından taviz verilir. Daha fazla veri sağlamlığı tesis edilmektedir.
37. Sistemimizdeki Oracle ASM damgalı üye diskleri artık ”Candidate Disks” seçeneği seçiliyken görebiliyoruz. “DATA” disk grubunu yapılandırdığımız için aşağıdaki alandan “DATA1 ve DATA2″ yazılı diskimizi seçiyoruz. “FRA” için disklerimizi ileriki aşamalarda yapılandıracağız. ASM “Allocation Units” konusundan bahsedecek olursak eğer bunları veritabanı instance’ının blokları veya extent’leri olarak düşünebilirsiniz. Amaçları bu miktar kadar alanın tahsis edilerek ilerlenmesini göstermektir. Disk grupları yaratılırken tanımlanabilirler ve varsayılan olarak 1 MB olurlar. 11g ile birlikte bu miktar da değişebilmektedir ve 2, 4, 8, 16, 32 ve en fazla 64 MB olarak yeniden tanımlanabilmektedirler. Aynı db_block_size’da olduğu gibi düşük olursa daha hızlı cache’lenecek ve büyük olursa da arka arkaya okuma yapıldığı zaman daha efektif olacaktır. VLDB (Very Large Database) tipi veri ambarlarında yüksek AU kullanmak faydalı olacaktır. AU’nun miktarını disk grup yaratılırken gösterebiliyoruz ancak sonradan değiştiremiyoruz. ASM “Files” ise AU’lardan oluşan extent’lerdir. Dosya adları + ile başlarlar ve ASM instance’ı tarafından yönetilirler. Dosya isimleri genelde değişken sayılardan oluşmaktadır ancak bu dosya isimlerine (örneğin bir datafile) alias verme şansımız bulunmaktadır. Bu dosya isimleri benzersizdir ve hiçbir zaman başka bir datafile ismi ile çakışmaz. Bu da yine ASM’nin bize sağladığı faydalardan yalnızca bir tanesidir. ASM’nin yönettiği dosyalar disk’ler üzerinde SAME metodolojisi ile tutulmaktadır (Stripe-And-Mirror Everything). ASM dosyalarından kastımız nedir? Datafile, kontrol dosyası, redolog dosyası, RMAN yedekleri gibi. Burası önemli, 11g Release 2′ye kadar ASM, OCR dosyaları, cluster-voting disk, alert log dosyaları, trace dosyaları ve Oracle binary’leri gibi dosyaları desteklemiyordu ancak 11g R2 bu kısıtı ortadan kaldırarak, bu tipte dosyaların da ASM tarafından desteklenmesini sağladı. 11g R2′yi tercih etmek ve kullanmak için yine çok ufak ama büyük bir neden. Birde “Extent Map” ile ilgili de şunları ifade edebilirim. Extent map, ASM’nin yönettiği dosyaların disk üzerinde nerede olduğu bilgisine sahiptir. Tabii tabloların veya objelerin nerede olduğundan öte bu objelerin bulunduğu extent’lerin nerede durduğunun bilgisine sahiptir.
38. Oracle ASM kullanıcıları için bir parola belirliyoruz. Bu parolayı asla unutmamalıyız. Daha sonra veritabanı kurulum aşamasında bu parola ASM disk grubuna erişebilmek için gerekli olacaktır. Her iki kullanıcıya aynı parolayı atamak için “Use same passwords for these accounts” seçeneğini seçerek her iki kullanıcıya aynı parolayı atıyoruz.
39. Atamış olduğumuz parola eğer oracle önerilen parola politikasına uygun değilse aşağıdaki gibi uyarı veriyor. Burada “Yes” düğmesine tıklayarak devam ediyoruz.
40. Hata izalasyonu ile ilgili bir arayüzümüz kullanmayacağımız için “Do not use Intelligent Platform Management Interface” seçeneğini seçip “Next” düğmesine tıklıyoruz.
41. Kurulumların ve yönetimin hangi işletim sistemi grupları ile yapılacağını soruyor burada “oinstall” veya “dba” grupları seçilerek kurulum yapılabilir. Tek olması düşüncesiyle “dba” olarak seçiyoruz ve “Next” düğmesine tıklıyoruz.
42. Kurulum sihirbazı bu seçimlerinde standart dışı olduğunu söylüyor burada verdiği uyarıya ekranına ”Yes” düğmesini tıklayarak devam ediyoruz.
43. Oracle grid kurulumunun yapılacağı dizinleri seçiyoruz. Dizinleri aşağıdaki ekran görüntüsündeki gibi seçiyoruz ve daha önce yarattığımız dizinlere kurulumun yapılmasını sağlıyoruz. Bu dizinleri daha önceki kurulum aşamalarımızda oluşturmuş gerekli hakları vermiştik.
44. Kurulum sihirbazı sunucularımızı kontrol ederek öngereksimin olarak bir eksiklik olup olmadığıyla ilgili kontrolleri yapıyor.
45. Kurulumumuzda herhangi bir sorun yoksa öngereksinimlerin tamamı uygunsa kurulum için özet bilgi ekranı karşımıza gelecektir. Kuruluma başlamak için “Install” düğmesini tıklıyoruz. Herhangi bir sorun varsa oradaki maddeleri inceliyoruz ve kritiklik durumuna göre gidermeye çalışıyoruz. “Warning” konular ignore edilebilir ancak başka bir uyarı varsa onu gidererek kuruluma devam etmek sorunsuz kurulum açısından önemlidir. Aksi takdirde kurulum işlemi belli bir aşamaya geldiğinde hata verebilir.
46. Kurulum aşamalarını aşağıdaki ekrandan takip edebiliriz.
47. Kurulum sonuna doğru bizden “root” kullanıcısı ile 2 adet .sh scripti çalıştırmamızı istiyor. Bu scriptler Inventory ve hakların ayarlanması için gerekli eğer atlarsak kurulum başarısız olacaktır. Yine aynı ekranda hangi scriptin hangi üyede çalıştırlacağız ile ilgili bilgiyide görüyoruz.
Scriptleri ”root” kullanıcısı ile açılmış bir terminal penceresinden çalıştırmalıyız. Scriptleri çalıştırdığımızda aşağıdaki gibi çıktılar oluşacaktır. Scriptleri önce 1. üyede burada bittikten sonra 2. üyede çalıştıracağız. Aynı anda çalıştırdığımızda kurulumumuz hata verebilir. Gerekli script’leri çalıştırdıktan sonra “OK” düğmesine tıklayarak devam ediyoruz. Scriptlerin çalıştırılması aşamasında hata verirse ve yeniden kurma işlemi yapacaksak hatalı kurulumun temizlenmesiyle ilgili “Oracle Grid Infrastructure Kurulumunun Başarısız Olması Durumunda Sistemin Temizlenmesi” makalemizi inceleyebilirsiniz.
-- Üye 1 # cd /u01/app/oraInventory/ # ./orainstRoot.sh Changing permissions of /u01/app/oraInventory. Adding read,write permissions for group. Removing read,write,execute permissions for world. Changing groupname of /u01/app/oraInventory to oinstall. The execution of the script is complete. # cd /u01/app/11.2.0.3/grid/ # ./root.sh Performing root user operation for Oracle 11g The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/11.2.0.3/grid Enter the full pathname of the local bin directory: [/usr/local/bin]: Copying dbhome to /usr/local/bin ... Copying oraenv to /usr/local/bin ... Copying coraenv to /usr/local/bin ... Creating /etc/oratab file... Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root script. Now product-specific root actions will be performed. Using configuration parameter file: /u01/app/11.2.0.3/grid/crs/install/crsconfig_params Creating trace directory User ignored Prerequisites during installation OLR initialization - successful root wallet root wallet cert root cert export peer wallet profile reader wallet pa wallet peer wallet keys pa wallet keys peer cert request pa cert request peer cert pa cert peer root cert TP profile reader root cert TP pa root cert TP peer pa cert TP pa peer cert TP profile reader pa cert TP profile reader peer cert TP peer user cert pa user cert Adding Clusterware entries to upstart CRS-2672: Attempting to start 'ora.mdnsd' on 'kryrac2' CRS-2676: Start of 'ora.mdnsd' on 'kryrac2' succeeded CRS-2672: Attempting to start 'ora.gpnpd' on 'kryrac2' CRS-2676: Start of 'ora.gpnpd' on 'kryrac2' succeeded CRS-2672: Attempting to start 'ora.cssdmonitor' on 'kryrac2' CRS-2672: Attempting to start 'ora.gipcd' on 'kryrac2' CRS-2676: Start of 'ora.cssdmonitor' on 'kryrac2' succeeded CRS-2676: Start of 'ora.gipcd' on 'kryrac2' succeeded CRS-2672: Attempting to start 'ora.cssd' on 'kryrac2' CRS-2672: Attempting to start 'ora.diskmon' on 'kryrac2' CRS-2676: Start of 'ora.diskmon' on 'kryrac2' succeeded CRS-2676: Start of 'ora.cssd' on 'kryrac2' succeeded ASM created and started successfully. Disk Group DATA created successfully. clscfg: -install mode specified Successfully accumulated necessary OCR keys. Creating OCR keys for user 'root', privgrp 'root'.. Operation successful. CRS-4256: Updating the profile Successful addition of voting disk 6be2687c8fe54f6abfc9cd01ac5c4a70. Successfully replaced voting disk group with +DATA. CRS-4256: Updating the profile CRS-4266: Voting file(s) successfully replaced ## STATE File Universal Id File Name Disk group -- ----- ----------------- --------- --------- 1. ONLINE 6be2687c8fe54f6abfc9cd01ac5c4a70 (/dev/oracleasm/disks/DATA1) [DATA] Located 1 voting disk(s). CRS-2672: Attempting to start 'ora.asm' on 'kryrac2' CRS-2676: Start of 'ora.asm' on 'kryrac2' succeeded CRS-2672: Attempting to start 'ora.DATA.dg' on 'kryrac2' CRS-2676: Start of 'ora.DATA.dg' on 'kryrac2' succeeded Configure Oracle Grid Infrastructure for a Cluster ... succeeded -- Üye 2 # cd /u01/app/oraInventory/ # ./orainstRoot.sh Changing permissions of /u01/app/oraInventory. Adding read,write permissions for group. Removing read,write,execute permissions for world. Changing groupname of /u01/app/oraInventory to oinstall. The execution of the script is complete. # cd /u01/app/11.2.0.3/grid/ # ./root.sh Performing root user operation for Oracle 11g The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/11.2.0.3/grid Enter the full pathname of the local bin directory: [/usr/local/bin]: The contents of "dbhome" have not changed. No need to overwrite. The contents of "oraenv" have not changed. No need to overwrite. The contents of "coraenv" have not changed. No need to overwrite. Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root script. Now product-specific root actions will be performed. Using configuration parameter file: /u01/app/11.2.0.3/grid/crs/install/crsconfig_params Creating trace directory User ignored Prerequisites during installation OLR initialization - successful Adding Clusterware entries to upstart CRS-4402: The CSS daemon was started in exclusive mode but found an active CSS daemon on node kryrac1, number 1, and is terminating An active cluster was found during exclusive startup, restarting to join the cluster Configure Oracle Grid Infrastructure for a Cluster ... succeeded
48. Kurulum işleminin kalan aşması devam ediyor. Bu işlemler tamamlanana kadar bekliyoruz.
49. Kurulum başarılı bir şekilde tamamlandıktan sonra “Close” düğmesine basarak kurulumu bitiriyoruz.
50. Kurulum sırasında “DATA” disk grubumuzu oluşturmuştuk. Şimdi “asmca” komutunu kullanarak “FRA” disk grubumuzu oluşturacağız.
-- Oracle kullanıcısı ile açılmış bir terminal ekranında daha önce oluşturmuş olduğumuz "grid" değişken dosyamızı çalıştırıyoruz. $ DISPLAY=192.168.2.83:0.0; export DISPLAY $ cd $ . .grid -- Ardından aşağıdaki komutu çalıştırarak "ASM Configuration Assistant" açıyoruz. $ asmca
51. Açılan pencerede “Create” düğmesine tıklıyoruz ve aşağıdaki pencerede gösterildiği gibi “FRA” disk grubumuza ekleyeceğimiz disklerimizi dahil ediyoruz. Ardından “OK” düğmesine tıklayarak “FRA” diskimizi oluşturuyoruz.
52. Disk grubumuzu başarılı bir şekilde oluşturduğumuzda aşağıdaki gibi uyarı alıyoruz.
53. Aşağıdaki ekranda görüldüğü gibi artık “DATA” ve “FRA” disk gruplarımız hazır durumdadır. Artık veritabanı kurulumumuzda bu disklerimizi kullanabileceğiz.
54. ASM yapılandırma ekranından çıkmak için “Exit” düğmesine basıyoruz ardından gelen ekrandaki uyarıya “Yes” düğmesini tıklayarak çıkıyoruz.
55. Oracle Grid Infrastructure ve disk yapılandırma kurulumumuz tamamlandı artık veritabanı kurulumuna geçebiliriz. Daha önce sunucumuza koymuş olduğumuz kurulum dosyamızın bulunduğu dizine giderek kurulum scriptini çalıştırıyoruz.
$ cd /u01/orainstall/database/ $ ./runInstaller
56. Bizden Oracle Support (MOS) hesabımızın e-posta adresimizi ve parolamızı istiyor. Bu adımda kutucuktaki işareti kaldırıyoruz ve “Next” düğmesine tıklıyoruz.
57. Oracle Support (MOS) Kullanıcı adı ve Parolasını girmediğimiz için bizi uyarıyor “Yes” düğmesine tıklayarak kuruluma devam ediyoruz.
58. My Oracle Support aracılığı ile otomatik olarak güncelleme indirme ayarını yapmamızı istiyor bu adımda “Skip software updates” seçeneğini seçerek “Next” düğmesine tıklıyoruz.
59. Kurulum seçeneklerinde “Install database software only” seçeneğini seçerek devam ediyoruz. “Create and configure a database” seçeneği ile ilerlersek kurulum aşamasında veritabanıda oluşturabiliyoruz. Ancak biz veritabanımızı “Custom” olarak oluşturacağımız ve veritabanı kurulumu yapmadan önce çıkmış olan son patchset update paketini uygulayacağımızdan yalnızca veritabanı yazılımını kuracağız. Sonrasında ise elle veritabanımızı kendimiz oluşturacağız.
60. Bu ekranda bir cluster ortamı kuracağımızdan “Oracle Real Application Cluster database installation” seçeneğini seçip kümeye üye yapacağımız sunucularımızı işaretliyoruz.
61. Veritabanımızın kurulumunda varsayılan olarak “English” seçeneğini seçili bırakıyoruz ve “Next” düğmesine tıklayarak devam ediyoruz.
62. Lisans seçeneğimize göre kurulum yapacağımız opsiyonu seçiyoruz. Bu kurulumda “Enterprise Edition” seçeneğini seçiyoruz ve “Select Options” düğmesine tıklayarak kurmak istediğimiz opsiyonları seçiyoruz veya kaldırıyoruz.
63. Oracle Veritabanı yazılımını kuracağımız dizinleri aşağıdaki gibi yazıp ardından “Next” düğmesini tıklıyoruz. Bu dizinleri daha önceki kurulum aşamalarımızda oluşturmuş gerekli hakları vermiştik.
64. Veritabanı kurulumu ve yönetimi için işletim sistemi gruplarını seçiyoruz. Özel bir yetki yapılandırmamız yoksa aşağıda görüldüğü gibi “dba” grupları atayarak “Next” düğmesine tıklıyoruz.
65. Kurulum sihirbazı Veritabanı kurulumumuz için sistemimizin uygunluğunu kurulum öncesi denetleyecektir. Eğer bir sorun varsa bizi uyaracak ve bu sorun giderildikten sonra kuruluma devam etmemizi tavsiye edecektir. Bizim sistemimizde herhangi bir eksik olmadığı için otomatik olarak diğer adıma geçecektir.
66. Kurulum özet ekranı çıktıktan sonra “Install” düğmesine tıklayarak kurulumu başlatıyoruz.
67. Kurulum sihirbazı kurulum aşamalarını bize adım adım gösterecektir. Bu işlemler tamamlanana kadar bekliyoruz.
68. Kurulumun sonuna doğru daha önce olduğu gibi bizden bir scriptin “root” kullanıcısı ile çalıştırılmasını isteyecektir. “root” kullanıcısı ile açılmış bir terminal ekranında aşağıdaki gibi komutları çalıştırıyoruz. Scriptleri önce 1. üyede burada bittikten sonra 2. üyede çalıştıracağız. Aynı anda çalıştırdığımızda kurulumumuz hata verebilir. Gerekli script’leri çalıştırdıktan sonra “OK” düğmesine tıklayarak devam ediyoruz.
# cd /u01/app/oracle/product/11.2.0.3/db/ # ./root.sh Performing root user operation for Oracle 11g The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/11.2.0.3/db Enter the full pathname of the local bin directory: [/usr/local/bin]: The contents of "dbhome" have not changed. No need to overwrite. The contents of "oraenv" have not changed. No need to overwrite. The contents of "coraenv" have not changed. No need to overwrite. Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root script. Now product-specific root actions will be performed. Finished product-specific root actions.
69. Kurulumumuz başarılı bir şekilde tamamlandı “Close” düğmesine tıklayarak kurulumu sonlandırıyoruz.
70. Veritabanı yazılımımızın kurulumu tamamlandı. Şimdi Oracle tarafından yayınlanmış olan “Patchset Update 11.2.3.0.5″ güncellemesini kurup daha sonra veritabanımızı yaratacağız. Bu şekilde kurulum yaptığımızda veritabanımız son güncellemeler işlenmiş haliyle yaratılacaktır. Öncelikle grid ve veritabanı kurulumlarımız için patch geçme işlemine başlıyoruz. Patch geçebilmemiz için “OPatch” yazılımının son versiyonunu Oracle Support (MOS) sitesinden indiriyoruz. İndirmiş olduğum OPatch ve Patchset update yazılımlarını “/u01/orainstall/” klasörü altına koydum. Şimdi OPatch yazılımızı günceleyip Patchset Update geçeceğiz. Eğer veritabanımıza herhangi bir patch geçmek istemiyorsak bu adımı atlayıp direk veritabanı oluşturma işlemine geçebiliriz.
-- Patch dosyalarımızı kopyaladığımız dizinlere geçiyoruz ve sıkıştırılmış dosyalarımızı açıyoruz. -- Aşağıdaki işlemleri her iki üyede uyguluyoruz. -- OPatch yazılımını "unzip" komutu ile açıyoruz. $ cd /u01/orainstall/opatch $ unzip p6880880_112000_Linux-x86-64.zip -- Patchset yazılımını "unzip" komutu ile açıyoruz. $ cd /u01/orainstall/patchset $ unzip p14727347_112030_Linux-x86-64.zip "root" kullanıcısına geçiyoruz. $ su - root -- Güncellemeyi uygulamak için "root" kullanıcısına geçiş yapıyoruz. Daha sonra OPatch yazılımının yeni versiyonunu Grid ve Database Home dizinlerinde yerlerine taşıyoruz. Sonrasında otomatik patch geçebilmek için Auto Response dosyamızı oluşturuyoruz. -- Grid dizini için OPatch yazılımını güncelliyoruz. # cd /u01/app/11.2.0.3/grid/ # mv OPatch OPatch_x # cd /u01/orainstall/opatch # mv OPatch/ /u01/app/11.2.0.3/grid # cd /u01/app/11.2.0.3/grid/OPatch/ocm/bin/ # ./emocmrsp OCM Installation Response Generator 10.3.4.0.0 - Production Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. Provide your email address to be informed of security issues, install and initiate Oracle Configuration Manager. Easier for you if you use your My Oracle Support Email address/User Name. Visit http://www.oracle.com/support/policies.html for details. Email address/User Name: You have not provided an email address for notification of security issues. Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]: y The OCM configuration response file (ocm.rsp) was successfully created. -- Grid dizini için OPatch yazılımını güncelleyip Auto Response dosyamızı oluşturduk. -- Eğer Database dizini içindeki "OPatch" yazılımını güncelleyceksek aynı işlemi onun içinde yapıyoruz. -- Dosyalarda yetki problemi yaşamamak için oracle kullanıcısına geçiyoruz. # su - oracle $ cd /u01/orainstall/opatch $ unzip p6880880_112000_Linux-x86-64.zip -- "root" kullanıcısına geçiyoruz. $ su - root # cd /u01/app/oracle/product/11.2.0.3/db # mv OPatch OPatch_x # cd /u01/orainstall/opatch # mv OPatch/ /u01/app/oracle/product/11.2.0.3/db # cd /u01/app/oracle/product/11.2.0.3/db/OPatch/ocm/bin # ./emocmrsp OCM Installation Response Generator 10.3.4.0.0 - Production Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. Provide your email address to be informed of security issues, install and initiate Oracle Configuration Manager. Easier for you if you use your My Oracle Support Email address/User Name. Visit http://www.oracle.com/support/policies.html for details. Email address/User Name: You have not provided an email address for notification of security issues. Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]: y The OCM configuration response file (ocm.rsp) was successfully created. -- Patch işlemini uyguluyoruz. -- Grid & Database Yazılımını güncelliyoruz. 1. Üyede çalıştırıyoruz. Bittiğinde 2. Üyede çalıştırıyoruz. # cd /u01/app/11.2.0.3/grid/OPatch # ./opatch auto /u01/orainstall/patchset -ocmrf /u01/app/11.2.0.3/grid/OPatch/ocm/bin/ocm.rsp -- İşlemlerimiz bu kadar veritabanımızı oluşturmadan "Patch" işlemini yaptığımızda "Patch Post-Installation" işlemini geçiyoruz.
71. Oracle kullanıcısı ile açılmış bir terminal penceresinde aşağıdaki Database Configuration Assistant yazılımını çalıştırıyoruz. Bu işlemden önce patchset update sonrası sunucumuzu yeniden başlatmalıyız. Yeniden başlatma sonrası sunucu üzerinden kurulum yapmıyorsak ekranımızı yeniden export etmeliyiz.
Örnek; $ DISPLAY=192.168.2.83:0.0; export DISPLAY Test için; $ xclock
$ cd $ . .db $ dbca
72. Hoşgeldiniz ekranınıda “Oracle RAC” veritabanı kuracağımız için “Oracle Real Application Cluster (RAC) database seçeneğini işaretliyoruz” ve “Next” düğmesine tıklıyoruz.
73. Yeni veritabanı oluşturacağımız için “Create Database” seçeneğini seçerek “Next” düğmesine tıklıyoruz.
74. Veritabanımızı özelleştirilmiş olarak kuracağımız için “Custom Database” seçeneği seçiliyken “Next” düğmesine tıklıyoruz.
75. Veritabanımızın “Global Database Name” ve “SID” isimlerini yazıyoruz. Kümeleme ortamı için yapılandırdığımız üyelerimizi eklemek üzere seçtikten sonra “Next” düğmesine tıklıyoruz.
76. Veritabanımızın web arayüzünden yönetimi için gerekli olan “Enterprise Manager” konsolunu kuracaksak “Configure Enterprise Manager” seçeneğini işaretliyoruz. “Oracle RAC” ortamlarında bir üyede “Enterprise Manager” çalırken diğer üyede bilgileri toparlayacak “agent” yazılımı çalışacaktır. Bundan dolayı “Enterprise Manager” yazılımını kullanacağımız zaman her üyede “start duruma getirmeliyiz. Ayrıca bir yedek alma işlemi oluşturacaksak bununla ilgili ayarlarıda yapıp diğer sekmedeki ayara geçiyoruz.
77. Veritabanımızda otomatik bakım özelliğini aktif edebilmek için “Automatic Maintenance Tasks” sekmesine geçerek “Enable automatic maintenance tasks” seçeneğini işaretliyoruz. Bu özellik veritabanımızda günlük olarak belli iyileştirme bakımları yapacaktır. Örneğin bir tablonun %10′dan fazlası değişmişse analiz edecektir. Bu özellik sayesinde çok değişen tablolarda elle istatistik toplama vb. işlemleri yapmamıza gerek kalmayacaktır. Gerekli seçimi yaptıktan sonra “Next” düğmesine tıklıyoruz.
78. Veritananımızda oluşan kullanıcılara parola atayacağız eğer bütün kullanıcılarda aynı parolayı kullanacaksak “Use the Same Administrative Password for All Accounts” seçeneğini seçip sys, system vb. kullanıcılar için tek bir parola yazıyoruz ve ardından “Next” düğmesine tıklıyoruz.
79. Vermiş olduğumuz parola oracle standartları dışındaysa bununla ilgili uyarı ekranı gelecektir. Bu ekranda “Yes” düğmesine tıklayarak devam ediyoruz.
80. Veritabanı veri dosyalarının (datafile) nasıl tutulacağı ile ilgili ayarları bu aşamada yapıyoruz. Bizler ASM hazırlığı yaptığımız için ilgili menüden “Automatic Storage Management (ASM)” seçeneğini seçiyoruz. Veri dosyalarımızın oracle tarafından yönetilmesini istediğimiz için “Use Oracle-Managed Files” seçeneğini seçip “Browse” düğmesine tıklıyoruz ve gelen ekrandan “DATA” disk grubumuzu seçiyoruz. Sonrasında “Next” düğmesine tıklayarak kuruluma devam ediyoruz.
81. ASM dosya sistemine bağlanabilmek için bizden ASM kurulumu aşamasında vermiş olduğumuz parolayı istiyor. Burada dikkatli bir şekilde parolayı girmeliyiz. Çünkü hatalı yazımlarda bizi uyarmıyor ve sonrasında kurulumun yarım kalmasına sebep olabiliyor. Parolamızı girdikten sonra “OK” düğmesini tıklayarak devam ediyoruz.
82. Bu ekranda bize FRA dediğimiz “Fast Recovery Area” disk grubumuzu atamamızı istiyor. Bu alan yedekleme ve eğer aktif edilmişse “Archive Log” dosyalarımızın tutulacağı alandır. Biz Grid kurulumu sırasında bu disk grubumuzuda hazırladığımız için “Browse” düğmesine tıklayarak açılan pencereden “FRA” disk grubumuzu seçiyoruz. “Fast Recovery Area Size” olarak da en büyük kullanılabilir alan kadar miktar atıyoruz. Eğer tamamını atayacaksak “Free (MB)” yazan alandaki miktarı buraya girmeliyiz. Gerekli ayarları yaptıktan sonra “Next” düğmesini tıklayarak devam ediyoruz.
83. Veritabanımıza kurulacak opsiyonları seçiyoruz. Burada kullanacağımız ya da daha sonra kullanmayı düşündüğümüz opsiyonları seçiyoruz. Burada dikkat edilmesi gerekenler bir opsiyon diğer bir opsiyon ile bağımlı olabilir.
84. Gerekli seçimleri yaptıktan sonra “Standart Database Components” düğmesine tıklıyoruz. Burada gerekli olan opsiyonları seçiyoruz. Dikkat etmemiz gereken bir opsiyon kurulurken Standart Database Components’lerden birine ihtiyaç duyabilir. O yüzden dikkatli bir şekilde seçim yapmalıyız. Örneğin “Oracle Spatial” kullanacaksak “Oracle Multimedia” opsiyonunuda kurmamız gerekir. Bu seçimleri yaptıktan sonra “OK” düğmesini tıklayarak kuruluma devam ediyoruz.
85. Eğer veritabanı kurulumumuzda bir script çalıştıracaksak “Custom Script” sekmesinden gerekli seçimleri ve ayarları yapıyoruz eğer çalıştırmayacaksak hiçbir ayara dokunmadan “Next” düğmesini tıklayıp kuruluma devam ediyoruz.
86. Bu aşamada artık veritabanımızın kullanacağı bellek boyutunu ve bu seçeneğin nasıl yönetileceği ile ilgili seçimleri yazıyoruz. Kısaca bahsetmek gerekirse atayacağımız bellek boyutu sistemin toplan bellek boyutunun 3/2′sini geçmeyecek şekilde ayarlanmalıdır. Birde çok yüksek bellekli makinelerde data boyutu ihtiyaç olan bellek boyutu vb. tespitleri yaparak atama yapmalıyız. Birde SGA ve PGA boyutunun oracle tarafından yönetilmesi için “Use Automatic Memory Management” seçeneğini seçiyoruz. Bu seçenek ile atanacak bellek miktarlarını oracle kendi mekanızması içerisinde ayarlıyor. Bu ayarlarımızı yaptıktan sonra “Sizing” sekmesine geçiyoruz.
87. Veritabanı “Block Size” boyutunu ayarlıyoruz. Bu özellik çok önemlidir. Çünkü veritabanı kurulum aşamasında atandığında bir daha değiştirilememektedir. Sonrasında ancak diğer “Block Size”larda tablespace’ler yaratılabilir. Bunlar içinde Shared Pool’da yaratılan “Block Size” lar için ayarlamalar yapılması gerekmektedir. Yani veritabanı “Block Size” ayarımız 8K ise istersek 16K tablespace yaratabiliriz. Bu ihtiyacı belirlerken veri boyutumuzu okuma ihtiyacımızı vb. durumları iyi analiz etmemiz gerekmektedir. Eğer bir veriambarı ortamı söz konusu ise 16K ve daha yüksek miktarlar tercih edilebilir. Genelde kurulumlarda varsayılan olarak 8K Block Size tercih edilmektedir. Diğer bir seçenek olan “Proceses” ayarını yapıyoruz. Burada veritabanımıza oturum açacak “Session” sayısına göre ayarlamalar yapıyoruz. Bu seçenek daha sonrada arttırılıp azaltılabilir.
88. Veritabanı karakter ayarını yapıyoruz. Türkçe için genelde “W8ISO8859P9″ karakter seti seçilmelidir. Bu sekmedeki ayarları yaptıktan sonra bağlantı türünü belirlemek için “Connection Mode” sekmesine geçiyoruz.
89. Bağlantı türünü seçeceğiz eğer veritabanımızda her bir session dedicated olarak bağlantı kuracaksa “Dedicated Server Mode” seçeneğini seçiyoruz. Burada varsayılan seçenek budur. Bu ayarı yaptıktan sonra eğer veritabanı parametrelerinden kurulum aşamasında ayarlamak istediklerimiz varsa “All Initialization Parameters” düğmesine tıklıyoruz.
90. Kurulum aşamasında ayarlamak istediğimiz veritabanı parametrelerini aşağıdaki ekrandandan ayarlıyoruz ve sonrasında “Close” düğmesine basıyoruz. Bu adımdaki ayarlarımız bitti şimdi kuruluma devam etmek için “Next” düğmesine tıklıyoruz.
91. Kurulumun bu aşamasında sol taraftaki ağaç menüden Tablespace boyutlarımızı Redo Log boyutları ve sayısı gibi seçenekleri ayarlıyoruz.
92. Önereceğim Redo Log dosyalarının sayısı ve boyutları kurulumdan sonra ayarlanması zor ya da zahmetli gelebilir bu aşamada Redo Log dosya sayımızı ve alan boyutlarımızı belirleyebiliriz. Bu boyut yazılan veri miktarı vb. durumlara göre belirlenmelidir. Oracle varsayılan olarak 50 MB atamaktadır. biz ihtiyacımıza göre bu miktarı 256, 512, 1024 MB gibi miktarlarda ayarlayabiliriz. Gerekli ayarları yaptıktan sonra “Next” düğmesine tıklayarak kuruluma devam ediyoruz.
93. Bu kurulum seçeneklerimizi daha sonra veritabanı yaratma işlemlerinde kullanmak üzere kaydedebiliriz. Ben bu seçeneklerimize “rac” adını verip kaydediyorum. Bu işlemler bittikten sonra “Finish” düğmesine tıklayarak kuruluma devam ediyoruz.
94. Oluşturmuş olduğumuz “rac” örnek dosyasının kaydedildiği ile ilgili uyarı veriyor. Bu ekranda “OK” düğmesine tıklayarak kuruluma devam ediyoruz.
95. Yapmış olduğumuz tercihlerle ilgili özet bilgi ekranı çıkıyor burada gerekli incelememiz bittikten sonra “OK” düğmesine tıklayarak veritabanı oluşturma işlemimizi başlatıyoruz.
96. Veritabanı oluşturma işleminin aşamalarını aşağıdaki bilgi ekranından takip ediyoruz. Bu işlem seçmiş olduğumuz seçenekler ve sunucumuzun özelliklerine göre biraz zaman alabilir.
97. Kurulum tamamlandığında özet bilgi ekranı karşımıza çıkacaktır. Burada istersek veritabanında yaratılan kullanıcıların parolalarınıda belirleme imkanımız var bunun için “Password Management” düğmesine tıklayarak gerekli ayarları yapabiliyoruz. İşlemimiz bittikten sonra “Exit” düğmesine tıklayarak veritabanı oluşturma işlemini bitiriyoruz.
98. Sunucu üzerinden veritabanımıza oturum açarak geçmiş olduğumuz pathsetlerin olup olmadığına bakalım.
SQL> select * from dba_registry_history;
Gördüğümüz gibi Patchset Update 11.2.0.3.5 uygulanmış şekilde veritabanımız oluşmuş durumdadır.
99. Veritbanımız kurulu ve hazır durumdadır. Eğer istersek web arayüzlü yönetim konsolu olan “Enterprise Manager” ı başlatıp veritabanı ayar ve monitör işlemlerimizi yapabiliriz.
-- Enterprise Manager konsolumuzu heriki üyede başlatmalıyız. $ cd $ . .db $ emctl start dbconsole Oracle Enterprise Manager 11g Database Control Release 11.2.0.3.0 Copyright (c) 1996, 2011 Oracle Corporation. All rights reserved. https://kryrac1.localdomain:1158/em/console/aboutApplication Starting Oracle Enterprise Manager 11g Database Control ...... started. ------------------------------------------------------------------ Logs are generated in directory /u01/app/oracle/product/11.2.0.3/db/kryrac2_rac/sysman/log -- Gördüğümüz gibi https://kryrac1.localdomain:1158/em/ adresinden Enterprise Manager konsolumuza erişebiliriz. -- Artık veritabanımıza oturum açabilir istediğimiz işlemleri yapabiliriz. $ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Sat Mar 30 12:22:26 2013 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL> select inst_name FROM v$active_instances; INST_NAME ------------------------------------------------------------ kryrac1.localdomain:rac1 kryrac2.localdomain:rac2 -- Grid ile ilgili komutlarımızı kullanacağımızda bu değişkenleri kullanmak için $ cd $ . .grid -- Database ile ilgili komutlarımızı kullanacağımızda bu değişkenleri kullanmak için $ cd $ . .db Ayrıca Cluster Yönetim komutlarını "root" kullanıcısı ile kullanabilmek için "root" kullanıcısının .bash_profile dosyasındaki "PATH" değişkenini aşağıdaki gibi düzenliyoruz. Bu işlemi her iki üyede yapıyoruz. PATH=$PATH:$HOME/bin:/u01/app/11.2.0.3/grid/bin/ -- Küme durumumuzu monitör edebilmek için "root" kullanıcısı ile aşağıdaki komutu kullanabiliriz. # crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora.DATA.dg ora....up.type ONLINE ONLINE kryrac1 ora.FRA.dg ora....up.type ONLINE ONLINE kryrac1 ora....ER.lsnr ora....er.type ONLINE ONLINE kryrac1 ora....N1.lsnr ora....er.type ONLINE ONLINE kryrac2 ora....N2.lsnr ora....er.type ONLINE ONLINE kryrac1 ora....N3.lsnr ora....er.type ONLINE ONLINE kryrac1 ora.asm ora.asm.type ONLINE ONLINE kryrac1 ora.cvu ora.cvu.type ONLINE ONLINE kryrac1 ora.gsd ora.gsd.type OFFLINE OFFLINE ora....SM1.asm application ONLINE ONLINE kryrac1 ora....C1.lsnr application ONLINE ONLINE kryrac1 ora....ac1.gsd application OFFLINE OFFLINE ora....ac1.ons application ONLINE ONLINE kryrac1 ora....ac1.vip ora....t1.type ONLINE ONLINE kryrac1 ora....SM2.asm application ONLINE ONLINE kryrac2 ora....C2.lsnr application ONLINE ONLINE kryrac2 ora....ac2.gsd application OFFLINE OFFLINE ora....ac2.ons application ONLINE ONLINE kryrac2 ora....ac2.vip ora....t1.type ONLINE ONLINE kryrac2 ora....network ora....rk.type ONLINE ONLINE kryrac1 ora.oc4j ora.oc4j.type ONLINE ONLINE kryrac1 ora.ons ora.ons.type ONLINE ONLINE kryrac1 ora.rac.db ora....se.type ONLINE ONLINE kryrac1 ora.scan1.vip ora....ip.type ONLINE ONLINE kryrac2 ora.scan2.vip ora....ip.type ONLINE ONLINE kryrac1 ora.scan3.vip ora....ip.type ONLINE ONLINE kryrac1 -- RAC veritabanının ve küme servislerin sağlıklı çalışıp çalışmadığının kontrolünü yapmak için "oracle kullanıcısıyla aşağıdaki komutları çalıştırabiliriz. $ srvctl config database -d RAC Database unique name: rac Database name: rac Oracle home: /u01/app/oracle/product/11.2.0.3/db Oracle user: oracle Spfile: +DATA/rac/spfilerac.ora Domain: Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Server pools: rac Database instances: rac1,rac2 Disk Groups: DATA,FRA Mount point paths: Services: Type: RAC Database is administrator managed $ srvctl status database -d RAC Instance rac1 is running on node kryrac1 Instance rac2 is running on node kryrac2
100. Yukarıdaki ekranlarda görüldüğü gibi “Enterprise Manager” konsolu ile veritabanımız izlenebilir. İstenirse gerekli değişiklikler yapılabilir.
101. Oracle Real Application Cluster (RAC) sisteminde sunucumuz açıldığında “cluster” ve “database” servislerimiz otomatik olarak başlamaktadır. Sunucumuzu kapatmak istediğimizde bu servislerimizi durdurup sistemi kapatabiliriz. Kapattığımızda sunucumuz açıldığında otomatik yeniden başlayacaktır.
-- Cluster ve Veritabanı Servislerimizi Durdurma -- Aşağıdaki işlemleri "root" kullanıcısı ile yapıyoruz. # crsctl stop has -- Bu komut her iki üyede çalıştırılacaktır. Bu komut sonrası sistemimizi kapatıp açtığımızda otomatik açılacaktır. Bu işlem sonrası sistemimize "reboot" veya "shutdown" komutu verilebilir. -- Cluster ve Veritabanı Servislerimizi sunucumuzu yeniden başlatmadan açmak için aşağıdaki komutu kullanıyoruz. # crsctl start has
Bu makalemizde Oracle Enterprise Linux 6.4 64 Bit üzerine Oracle Real Application Cluster Database 11.2.0.3.0 with Patchset Update 11.2.0.3.5 dahil kurulum yapmayı gördük.
Bir sonraki makalemizde görüşmek dileğiyle…