Oracle Prosesleri
Merhaba,
Bir oracle veritabanı arka plan görevi olan LGWR'ın (log writer) amacı log buffer'daki bulunan ve online redo log'lara yazılmayı bekleyen bilgileri online redo log'lara aktarmaktır. LGWR görevi bu işlemi 4 farklı aşama tetiklendiği zaman gerçekleştirmektedir;
1) Her 3 saniyede bir redo log buffer'ı, 2) Redo log buffer'ın 1/3'ü dolduğu zaman, 3) Redo log buffer 1 megabyte olduğu zaman, 4) Herhangi biri "commit" ederse,
Redo log buffer boşaltılır ve online redo log'lara veriler aktarılır. Online redo log gruplarının boyutlandırması ne kadar önemli ise redo log buffer'ın da boyutlandırılması o kadar önemlidir. Hatalı boyutlandırıldıkları durumlarda veritabanın bekleme olayları meydana gelmektedir. Aslında DBWR ve LGWR birbiri ile senkronize çalışmaktadır diyebiliriz zira bir transaction içerisinde iken devreye ilk giren görev LGWR'dır. LGWR'ın online redo log'lara yazdığı transaction kayıtları CKPT görevinin tetiklenmesi ve DBWR aracılığı ile fiziksel veri dosyalarına yazılmaktadır. Dolayısıyla bu döngü içerisinde bir aksama meydana geliyorsa, diğerleri de mutlaka etkilenecek demektir. LGWR'ı CKPT ve DBWR'dan ayıran bir özellik ise yukarı saydığım 4 maddenin değiştirilemez ve değiştirilmesi de teklif edilemez olmasıdır :)
Bu işleyişe log writer'ın kendine özel hareketleri de diyebiliriz ancak CKPT ve DBWR için aynı şey geçerli değildir. CKPT ve DBWR görevlerinin tuning'i yapılabilir ve belirli durumlarda da yapılması gerekmektedir. Örneğin CKPT görevini elle çalıştırabilirsiniz;
SQL> ALTER SYSTEM CHECKPOINT [GLOBAL]; Aynı şekilde bir veritabanı üzerinde ne kadar DBWR çalışabileceğini sisteme gösterebilirsiniz; SQL> ALTER SYSTEM SET DB_WRITER_PROCESSES=CPU_COUNT/8 SCOPE=SPFILE; Veritabanının üzerinde bulunduğu sistemin CPU adedi bölü 8 bize kaç adet DBWR görevi olabileceğini göstermektedir. Bu sayıdan fazla da DBWR görevi tanımlanabilir.
İyi çalışmalar. oganozdogan
Cluster File System(Küme Dosya Sistemi)/Küme Veritabanı işlemi
Selamlar...
Rac ile ilgili ne kadar çok şeyden bahsedersek edelim aslında iş dönüp dolaşıp mimariye geliyor. Ve ben de aklıma geldikçe mimari ile ilgili yazılarımı paylaşmayı düşünüyorum. Çünkü işin özü mimaride...
Aslında database ve özellikle Datawarehouse zaten mimari ile güçlenmişlerdir.Zaten bu işin Dünyada onlardan sorulduğu kişi bu şekilde(modelleme üzerine) çalışmalarla ön plana çıkmışlardır.
Onlardan biri olan Dr. Kimball incelemek isterseniz:
http://www.rkimball.com/ tavsiye ederim.
her neyse konumuza dönecek olursak:
Recovery Manager, Online Yedeklemeler ve Arşivleme
Real Application Clusters, Recovery Manager(RMAN)’ın ve Oracle Enterprise Manager’ın tüm fonksiyonelliğini destekler.Ayrıca, Real Application Clusters tek Oracle instance’ına sahip Oracle veritabanlarında bulunan bütün Oracle yedekleme ve arşivleme özelliklerini destekler.Bu; bütün veritabanının veya tek bir tablo alanın hem on-line hem de off-line yedeklerini içermektedir.
Eğer Oracle’ı ARCHIVELOG modunda çalıştırıyorsanız , log dosyası dolduğu zaman Oracle bu log dosyasının üzerine herhangi bir bilgi yazılmadan bir arşiv dosyasına dönüştürür.Real Application Cluster’larda , her Oracle instance’ı kendi redo log dosyalarını otomatik olarak arşivler, veya bir yada daha fazla Oracle instance’ları redo log dosyalarını bazı Oracle instance’ları veya tüm Oracle instance’ları için arşivleyebilir.
Eğer veritabanınızı NOARCHIVELOG modunda çalıştırıyorsanız , sadece off-line yedeklemeler yapabilirsiniz.Eğer veri kaybetmek istemiyorsanız, Oracle ARCHIVELOG modunu kullanmanızı önemle tavsiye ediyor.
Bu bölümdeki diğer üniteler Real Application Cluster’ların Mimarisini ve onun ölçeklenirlik özelliklerini açıklamaktadır.
Recovery işlemi için örnek gösterim
REAL APPLICATION CLUSTERS SİSTEMLERİN MİMARİSİ
Bu bölüm pek çok cluster(küme) veritabanı ortamlarında benzer olan sistem bileşenlerini ve mimari modelleri tanımlar.Düğümler için gerekli donanım ile birlikte düğümleri küme veritabanı haline getiren yazılımı da tanımlar.
• Küme Veritabanı Sistem Bileşenlerini gözden geçirme
• Bellek, Interconnect ve Depolama
• Yüksek hızlı IPC Interconnect
• Paylaşılan Disk Deposu ve Cluster File System(Küme Dosya Sistemi) Avantajı
CLUSTER(küme) Veritabanı sistem Bileşenlerine Genel Bir bakış
Bir küme Veritabanı bir Interconnect ile bağlanan iki ya da daha fazla düğümden oluşur.Interconnect, küme Veritabanı içindeki her bir düğüm arasında iletişim yolu olarak görev yapar. Her Oracle instance’ı, her bir Oracle instance’ının paylaşılan kaynakları kullanımını senkronize eden mesajlaşma için Interconnect kullanır. Ayrıca; Oracle, Interconnect çoklu Oracle anlarının paylaştığı veri Bloklarını iletmek için kullanır. Kullanılan kaynağın ana tipi bütün düğümlerin eriştiği veri dosyalarıdır.
Şekil bir küme veritabanında Interconnect’ın düğümleri nasıl bağladığına ve kümenin depolama araçları üzerindeki paylaşılan veri dosyaları üzerindeki erişimine yüksek seviyede bir bakıştır.
Küme ve onun Interconnect’i depolama araçlarına yada paylaşılan disk alt-sisteme depolama alan ağı ile bağlıdır. Aşağıdaki bölümler düğümleri ve Interconnect’i daha detaylı bir biçimde tanımlar:
• Düğümler ve onların bileşenleri
• Cluster Interconnect ve Interprocess Communication(Düğümden düğüme)
Düğümler ve Onların bileşenleri
Bir düğümün ana bileşenleri şunlardır:
• CPU-Bilgisayarın ana belleğinden okuyan ve ana belleğine yazan bir ana işleme birimidir.
• Bellek – Veriyi arabelleğe alma ve programatik yürütme için kullanılan bileşendir.
• Interconnect – Düğümler arasındaki iletişim bağlantısıdır.
• Storage(Depolama sistemi) – Veriyi depolayan bir araçtır.Bu; içeriklerini değiştirmek için okuma-yazma işlemleri tarafından erişilmesi gereken genellikle kalıcı veri deposudur.
Bu bileşenleri çok farklı konfigürasyonlarla satın alabilirsiniz.Bu bileşenler düğümlerin veri depolarına ve anabelleğe nasıl erişeceğini belirler.
NOT: Oracle Corporation, Real Application Cluster’ı , Real Application Clusters veritabanları ile kullanmak için onaylanmış konfigürasyonlarla birlikte konuşlandırmanızı tavsiye eder.
Cluster Interconnect ve Interprocess Communication (düğümden Düğüme)
Real Application Clusters, düğümler arası iletişim için yüksek hızlı interprocess communication(IPC) bileşenlerini kullanır.IPC , Real Application Clusters ortamlarının Oracle instance’ları arası mesajların iletmesi için gerekli arabirim ve protokolleri tanımlar.Mesajlar, bu arabirimdeki temel iletişim birimleridir.IPC’nin ana fonksiyonu, asenkron ve mesaj kuyruğu modeli oluşturmasdır.
Bellek, Interconnect ve Depolama
Bütün veritabanları genelde aynı yolla CPU’ları kullanır. Fakat; Belleğin, depolamanın ve Interconnect’nın farklı konfigürasyonlarını farklı amaçlar için konuşlandırabilirsiniz. Real Application Clusters’ı konuşlandırdığınız mimari, sizin işleme amaçlarınıza bağlıdır.
Küme veritabnındaki her bir düğümün bir yada daha fazla CPU’ları vardır. Çoklu CPU’lu düğümler tipik olarak ana belleği paylaşmak için konfigüre edilmiştir. Bu size daha ölçeklenebilir bir sistem sağlar.
Yüksek hızlı IPC Interconnect
Yüksek hızlı Interprocess Communication(IPC) Interconnect’lı bir yüksek geniş bantlı, kümedeki düğümleri bağlayan düşük düşük gecikmeli bir iletişim kolaylığıdır.Interconnect her bir düğümün kaynaklara erişimini koordine etmek için mesajların ve diğer küme iletişimleri trafiğinin yönünü belirler.
Interconnect için Ethernet, bir Fiber Distributed Data Interface(FDDI), yada diğer uygun donanımları kullanabilirsiniz.Ana Interconnect’ınızda aksama olma durumları için, yedek bir Interconnect yüklenmesini de hesaba katmalısınız. Yedek Interconnect, Yüksek kullanılırlığı artırır, Interconnect’ın başarısızlıktaki tek nokta olma olasılığını azaltır.
Real Application Clusters’lar, user-mode(kullanıcı modlu) ve memory- mapped(eşlenmiş bellek) IPC’leri destekler. Bu tür IPC’ler, CPU tüketimini ve IPC gecikmelerini oldukça azaltır.
Paylaşılan Disk Deposu ve Cluster File System(Küme Dosya Sistemi) Avantajı
Real Application Clusters’lar , Oracle anlarına veritabanına eşzamanlı erişimi vermek için bütün düğümlerin aynı anda paylaşılan disklere erişimine ihtiyaç duymaktadır. Paylaşılan disk altsistemi gerçekleştirilmesi işletim sistemimize bağlıdır: bir cluster file system(küme dosya sistemi) kullanabilir veya dosyaları işlenmemiş makineler üzerine koyabilirsiniz. Cluster File System(küme dosya sistemi) , Real Application Clusters’ların kurulumunu ve yönetimini büyük ölçüde kolaylaştırır.
Real Application Clusters’lar için bellek erişim konfigürasyonları belirgin biçimde tekdüzedir.Bu , kümedeki her düğüm için belleğe erişimde gereken ek yükün aynı olduğu anlamına gelir. Bununla birlikte, tipik depo erişim konfigürasyonları hem birbiçimli hemde tersi olmaktadır. Kullandığınız depo erişim konfigürasyonu, bellek konfigürasyonunuzdan bağımsızdır.
Bellek konfigürasyonlarında olduğu gibi, çoğu sistemler Real Application Clusters veritabanları için tekdüze disk erişimini kullanırlar.Bir küme veritabanında tekdüze disk erişim konfigürasyonları, disk erişim yönetimini kolaylaştırır.
RAC(Real Application Cluster) ARCHITECTURE(MİMARİSİ) uygulama
Oracle'ın Yüksek Kullanılabilirliği(High Availability/HA) Çözüm Yığını
Paylaşılan Depolama Seçenekleri
- NFS Monte Depolama (Netapp)
- SCSI Paylaşılan depolama; OCFS, OFS, Raw Cihazlar ile
- Yapı Mimarisi ile Fiber Kanal depolama
11i ADIM-1
-
Tüm düğümlere RED HAT 2.1 yüklemek
-
11i Apps Tier tek bir düğüm olarak yüklemek
-
Paylaşılan Depolama Eklemek ve HBA için Sürücüler Yüklemek
11i ADIM -2 (OS Yamalar kurulum)
- rpm -Uv tar-1.13.25-9.i386.rpm
- Bu Tar(Technical Assistance Request )'ın güncel versiyonuna ulaşımı sağlar
- OCFS üzerinde çalışan bir veritabanından tar(Technical Assistance Request) dosyalarına bir kullanıcı sağlar
- Örnekler,
- tar --o_direct -cvf /tmp/backup.tar
11i ADIM -2 ( OS Yamalar Kurulum)
- rpm -Uv fileutils-4.1-4.2.i386.rpm
- Bu dd(default date) ve Cp(command with web logic) nin güncelleştirlmiş Sürümünü Sağlar
- OCFS üzerinde çalışan bir veritabanı dosyaları kopyalamak için bir kullanıcı sağlar
- examples :
- cp --o_direct /ocfs/quorum.dbf /tmp/backup/quorum.dbf
- dd o_direct=yes if=/ocfs/quorum.dbf of=/tmp/backup/quorum.dbf
11i ADIM -3 RPM(Remote Preemptive Monitor) nin Oracle Sağlayıcılıarını Yüklemek
- ocfs-support-1.0.9-11.i686.rpm
- ocfs-tools-1.0.9-11.i686.rpm
- j2sdk-1_3_1_09-linux-i586.rpm.bin
- unzip-5.50-30.i386.rpm
- zip-2.3-10.i386.rpm
- wu-ftpd-2.6.1-21.i386.rpm
- hangcheck-timer-2.4.9-e.10-0.4.0-2.i686.rpm
- hangcheck-timer-2.4.9-e.10-enterprise-0.4.0-2.i686.rpm
11i ADIM -4 Bağlantı ( interconnect)
- ifconfig eth0:0 192.168.2.100
- route add -host 192.168.2.100 dev eth0:0
- Do this on each node
- Create watchdog file (oracle installer checks for this to install cluster option) # touch /dev/watchdog
- Setup hangcheck-timer module -# vi /etc/modules.conf -- options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180 --# modprobe hangcheck-timer
11i ADIM -5 OCFS.conf – 5
- # ocfstool ( from x windows)
- # ocfs config
- # Ensure this file exists in /etc
- # node_name = linux3.home.com
node_number =
ip_address = 192.168.1.100
ip_port = 7000
comm_voting = 1
guid = 9D3B77AF2FF26E92E25D00E04CA44B58
11i ADIM -6 OCFS Kurulumu
- mkfs.ocfs -F -b 128 -L /s01 -m /s01 -u 500 -g 500 0755 /dev/sda1
- srvconfig_loc=/s01/oragsd-config ( touch this file)
11i ADIM -7 OCM
- $ ls
- If cmcfg.ora exists:
- $ cp cmcfg.ora cmcfg.ora.original
- If cmcfg.ora does not exist:
- $ cp cmcfg.ora.tmp cmcfg.ora
- $ echo HostName=dc1node3inter >> cmcfg.ora
- $ vi cmcfg.ora
- [comment out WatchdogSafetyMargin and WatchdogTimerMargin]
- PrivateNodeNames=linux22 linux33
- PublicNodeNames=linux2 linux3
- MissCount=210
- KernelModuleName=hangcheck-timer
- CmDiskFile=/u02/oracm-qourum
- $ vi ocmargs.ora
- [comment out first line, which contains the word “watchdogd”]
- $ cd ../bin
- $ cp ocmstart.sh ocmstart.sh.original
- $ vi ocmstart.sh
- [remove words “watchdog and” from line containing “Sample startup script...”]
- [remove every line containing “watchdogd”, uppercase or lowercase. If it’s in a if/then/fi then remove the whole if/then/fi.]
- $ su – root
- export ORACLE_HOME=/d02/oracle/proddb/9.2.0
- /d02/oracle/proddb/9.2.0/oracm/bin/ocmstart.sh
- Configure and Start Cluster Manager
- $ cd $HOME/product/9.2/oracm/admin
11i ADIM -8 ( cp/dd - DB files to shared storage )
- cp --o_direct /d03/oracle/proddata/* /s01/oracle/proddata/
- Kontrol Dosyaları Yenileme
11i ADIM -8 – init.ora / spfile
- Diğer örnekler için UNDO TBS Yaratmak
- Örnek-2 için örnekleme 1 ve yerine versa(Menagement Systems)'den thread aktif ve pasifleştirme
11i ADIM - 9 – Örnek 1
- # RAC-specific Parameters
- #
- #########
- cluster_database = true
- cluster_database_instances=2
- thread = 1
- instance_number = 1
- instance_name = PRODi1
- service_names = PROD
- local_listener = PRODi1
- remote_listener = PRODi2
11i ADIM -10 – Örnek 2
- cluster_database = true
- cluster_database_instances=2
- thread = 2
- instance_number = 2
- instance_name = PRODi2
- service_names = PROD
- local_listener = PRODi2
- remote_listener = PRODi1
11i Apps tier – 806/iAS tnsnames.ora
- PROD = (DESCRIPTION=
- (ADDRESS_LIST =
- (ADDRESS=(PROTOCOL=tcp)(HOST=linux1)(PORT=1521))
- (ADDRESS=(PROTOCOL=tcp)(HOST=linux2)(PORT=1521))
- )
- (CONNECT_DATA=(SERVICE_NAME=PROD)(SERVER=DEDICATED))
- )
- PRODi2 = (DESCRIPTION=
- (ADDRESS=(PROTOCOL=tcp)(HOST=linux2)(PORT=1521))
- (CONNECT_DATA=(INSTANCE_NAME=PRODi2)(SERVICE_NAME=PROD))
- )
- PRODi1 = (DESCRIPTION=
- (ADDRESS=(PROTOCOL=tcp)(HOST=linux1)(PORT=1521))
- (CONNECT_DATA=(INSTANCE_NAME=PRODi1)(SERVICE_NAME=PROD))
- )
Failover için DBC Dosya Düzeltme
- APPS_JDBC_DRIVER_TYPE=THIN
- FND_MAX_JDBC_CONNECTIONS=100
- # Setup at Apps Tier
- APPS_JDBC_URL=jdbc:oracle:thin:@(DESCRIPTION=
- (ADDRESS_LIST=(LOAD_BALANCE=ON)
- (ADDRESS=(PROTOCOL=TCP)(HOST=linux1)(PORT=1521))
- (ADDRESS=(PROTOCOL=TCP)(HOST=linux2)(PORT=1521)))
- (CONNECT_DATA=(SERVICE_NAME=prod)))
Failove ile ne Yapılabilir ve Ne Yapılamaz
- SQL* PLUS TAF kullanarak Bağlanabilir
- JDBC Failover ile Bağlanacak
- Formların Çalışma Zamanı Bağlantılandırması Yapılamaz , Kullanıcılar Bağlantı Koparabilir
Soru ve Görüşleriniz için:
Bu e-Posta adresi istek dışı postalardan korunmaktadır, görüntülüyebilmek için JavaScript etkinleştirilmelidir
Saygılarımla...
Datafile ve Tablespace Kavramları
DATAFILE VE TABLESPACE KAVRAMLARI
Oracle Veritabani üzerinde datalarin yani verilerin saklandigi yer fiziksel olarak DataFile mantiksal olarak ise TableSpace olarak ifade edilmektedir.
Bir veritabaninda verilerin nasil saklandiginin hiyerarsik yapisi asagidaki sekildeki gibidir :
Tablespace
Tablespace ler üzerinde ki islemler Tablespace online iken yapilmaktadir.
System Table space kesinlikle undo yada temp tablespace olarak kullanilmamalidir,
Tablespaceler read only yada normal mod arasinda çevrim yapilabilirler.
Not : Tablespace bir veya fazla datafile içierebilir fakat bir datafile ancak bir tablespace’e tahsis edilir.
DataFile
Bir DataFile yalnizca bir tablespace e verilebilir.
Büyüklügü ve optimizasyonu degistirilebilir
Segment
Bir Datafile bir yada birden fazla segment içerebilir,
Bir segment birden fazla Tablespace e dagilabilir
Extends
Bir Segment bir veya daha fazla extend ten olusur,
Bir segment yaratildiginda tek extend vardir ama daha sonra arttirilabilir,
DataBlocks
Extandler içinde bulunan en küçük birimdir,
Boyutu DB_BLOCK_SIZE ile Database yaratilirken belirlenir ve daha sonra degistirilemez.
Database bloklarinin büyüklügü isletim sistemi ile dogru orantilidir,
Oracle’ da bloklarin baslangiç boyutu DB_BLOCK_SIZE ile belirlenir. Bunun yanisira Oracle, standart olmayan bes farkli blok boyutu tanimlama olanagi sunar. Gereksiz I/O islemlerine engel olmak için veri blok uzunligu max sinirlar içinde isletim sisteminin blok uzunlugunun bir kaç kati olmalidir. Data bloklar, Oracle veritabaninin en küçük depolama birimidir.
Oracle Mantıksal Yapısı
LOGICAL YAPI
Sizlere basit olarak bir oracle veritabanındaki mantıksal yapıyı kısaca özetlemek istedim :
Oracle’ın logical yapısı hiyerarşik olarak Tablespace,bunun altında Segments bunun altında Extents bunun altında Bloklardan oluşur.
Veri blokları, extentler ve segmentlerden oluşan mantıksal saklama yapıları sayesinde Oracle'ın disk alanı üzerinde ayrıntılı bir kontrolü vardır.
Oracle Veri Blokları :
Oracle database üzerinde verinin saklandığı en küçük yapı birimidir. Fiziksel anlamda belirli sayıda byte ile temsil edilir. Standard blok büyüklüğü DB_BLOCK_SIZE başlangıç parametresiyle belirlenir.
Extentler : Mantıksal veritabanında blokların bir üst seviyesidir. Extendler belli sayılardaki ardışık bloklardan oluşur. Tek seferde alınır ve belirli bir tipteki veriyi tutar.
Segmentler : Extend’in bir üst seviyesi segmentlerdir. Bu depolama seviyesi belli bir mantıksal yapı için tahsis edilmiş extend kümesini ifade eder. Eğer bir segment içindeki extendlerin tümü dolarsa, Oracle dinamik olarak yeni yer tahsis eder. Extendler, ihtiyaç halinde tahsis edildiklerinden dolayı ardışık olma gibi bir zorunlulukları yoktur. Segment çeşitleri :
Veri Segmenti : Kümelenmemiş her tablo bir segmente sahiptir. Tablonun bütün verileri veri segmentinin extentlerinde saklanır.
Bölümlenmiş tablolarda, her parça için bir veri segmenti bulunur ve Her küme için bir veri segmenti vardır. Kümedeki her tablonun verisi kümeye ait olan veri segmentinde tutulur.
İndeks Segmenti : Her indeksin kendi verisinin tutulduğu bir indeks segment vardır. Bölümlenmiş bir indeksin her bölümüne ait bir indeks segment vardır.
Temporary segment : Bu alanlar herhangi bir SQL sorgusunun işinin tamamlanması için gerekli olan alan için Oracle tarafından oluşturulur. SQL cümlesinin işi bittiğinde temporary segment tekrar kullanım için sisteme iade edilir.
Rollback Segment : "Automatic Undo Management" modundayken, veritabanı sunucusu tablespaceleri kullanarak undo alanını yönetir. "Manual Undo Management" modundayken, veritabanı yöneticisi tarafından undo bilgisini geçici olarak tutması için rollback segmentler yaratılır. Rollback segmentlerdeki bilgi veritabanının kurtarılması sırasında kullanılır.