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');

Hiç yorum yok:

Yorum Gönder