CDB etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
CDB etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

1 Ağustos 2013

Multitenant database/Container database ve pluggable database

Multitenant database yada Container database ve pluggable database mimarisi 11g ve öncesinde bildiğimiz birçok şeyi unutturacak gibi gözüküyor. 




12c Multitenant Container veritabanı mimarisi:




Yukarıdaki resimde bir instance görüyoruz. Bu instance veritabanını yaratırken container database seçildiği zaman oluşacak olan resimdir. Eğer container database seçmez isek ilk resim yani 12c öncesi resim hala geçerlidir. Eğer container database kurar isek bir tane root container ımız oluyor. Root container aslında bu containera dahil olacak olan bütün pluggable veritabanlarının metadatalarının, undo bilgilerinin, redolog, temp ve control file larının tutulduğu ortak alan olarak düşünülmelidir. Evet en büyük değişiklik aslında birçok PDB (pluggable database) var yani aslında birçok veritabanı var ama bu veritabanlarının undo, redo, temp ve controlfile ları ortak. PDB ise application container olarak geçiyor ki schema mantığı gibi kullanıdığını söyleyebiliriz. Root container en kritik yapı halinde çünkü bütün pluggable veritabanları bu container üzerinden çalışıyor.

PDB ler ise bir container içerisinde maximum 253 tane olabiliyor. PDB ler kendi aralarında database link kullanarak haberleşiyorlar. Zaten aynı instance ın birer parçası oldukları için db link biraz formalite, performans kaybı söz konusu olmayacaktır korkmayalım. TNS e eklenicek birer servis ile PDB ler birbirlerini görebileceklerdir. Yalnız yine bir kısıt var oda bir container için maximum 512 servis yaratılabiliyor olması. Her PDB nin kendi system ve sysaux tablespace leride oluyor fakat temp tablespace leri opsiyonel olarak ister kendi bünyesinde isterse root containerde tutabiliyor. Default olarak PDB lerin temp tablespace leri root containerdeki temp tablespace dir.

Gereksiz memory kullanımı ve background processleri artık olmayacak. Birçok PDB var fakat hepsinin background processleride ortak.

Dolayısıyla kaç tane container ımız var bilgisini 
select * from v$containers;
dan öğrenebiliriz.

1- Root container
2- Particular seed PDB (PDB$SEED) 
3- Pluggable database containers (Application container)

Particular seed PDB (PDB$SEED) ise PDB oluştururken clone db yapabilmemiz için var.
Aşağıdaki komut ile SEED in bir kopyası olan yeni bir PDB yaratabiliyoruz.

create pluggable database pdb1 admin user admin1 identified by p1 
roles=(connect) FILE_NAME_CONVERT = ('PDB$SEEDdir', 'PDB1dir');

31 Temmuz 2013

Oracle Database 12c Multitenant/Container veritabanı mimarisi ve mantığı

Oracle, 12 cloud veritabanını 25 Haziran 2013 itibari ile yayınlamış durumda. RMAN, ASM, RAC, Dataguard vb. birçok başlıkta yenilikler mevcut. Multitenant yani kiracılı veritabanı mimarisi ile konteynır mantığı 12c nin öne çıkan yeni özellikleri olarak görülüyor.

Konteynır mantığı ile bir çok pluggable veritabanını barındıran tek bir instance yaratılmış. Bundaki amaç her bir instance için kullanılmasa bile yaratılmakta olan background processlerinin kaynak kullanımını minumuma indirgemek. Tek bir instance altında yaratılan (konteynır) bir çok PDB (pluggable database) aynı background processlerini kullanıyor.

Tabiiki Non-CDB yani bildiğimiz instance mantığı hala geçerli.


CDB yani container database mimarisi kullanımı zorunlu değil fakat eğer kullanırsak getireceği artılardan birkaç tanesi:

1- Daha az kaynak kullanımı
2- Yüksek performans
3- Patch ve upgrade kolaylığı (Tek bir instance a geçilen patch yada upgrade bütün PDB leride etkiler, dolayısıyla 1 upgrade yada patch ile 10larca PDB yi aynı anda güncellemiş oluruz)
4- Tek instance altında schema mantığı yerine tek instance altında bir çok pluggable database (Yönetim açısından kolaylık)

Yönetim açısından kolaylık çünkü herbir pluggable database aslında tek bir konteynır altında toplanıp o konteynırın kaynaklarını kullansada, ayrı bir database gibi kapatılabilir, nomount, mount, open mode lara getirilebilir, backup/restore, export/import gibi yedekleme işlemleri gerçekleştirilebilir. Eğer konteynır kapatılırsa bütün PBD ler kapanır. Eğer konteynır açılırsa sadece konteynır açılır, PDB ler mount mode da kalır. Bu bir sorun gibi gözüksede bir event trigger ı yazarak konteynır açıldığı zaman PDB lerinde açılmasını sağlayabiliriz.

Daha sonraki yazılarımda CDB ve PDB mimarilerini örneklerlede anlatıyor olacağım.