Oracle 12c – Container Database Restore – Recover Işlemleri

Oracle 12c versiyonunda container ve pluggable database’ lerin backuplarını nasıl alabileceğimizden bahsetmiştik. Şimdide almış olduğumuz bu backupları ihtiyaç olması durumunda nasıl kullanabileceğimizden bahsedelim. Bir önceki yazıda olduğu gibi yine sık karşılaşılacak senaryoları çıkartmaya çalıştım. Bol örnekli bir yazı oldu. Loglar çok fazla olduğundan dolayı kısaltarak ekledim.

Container veya pluggable database’ in backupını almak veya restore etmek için SYSBACKUP veya SYSDBA yetkilerine sahip olmak gerektiğini unutmayalım.

Örnek senaryolarımız ;

• Full database restore / recover,
• Full pluggable database restore / recover,
• Root database restore / recover,
• Archivelog restore,
• Pluggable database’ e ait olan tablespace’ in restore / recover,
• Pluggable database’ e ait olan bir tablespace’ e ait datafile’ in restore / recover işlemi,
• Container Database, Point In Time Recovery,
• Pluggable Database , Point In Time Recovery

tablo bazında restore-recover işleminden daha önce bahsetmiştik.
(http://www.kamilturkyilmaz.com/2015/07/20/oracle-12c-new-features-tablo-bazinda-recover-islemi/)

Şimdi sırayla testlerimize başlayalım ;

• Full database restore / recover,
Container database’ i (dolayısıyla container içerisinde yer alan tüm pluggable db’ leri) kaybettiğimiz de nasıl son backupdan dönebiliriz onu test ediyor olacaz. Öncelikle container db’ imiz içerisindeki tüm datafile, controlfile, pfile, spfile ve redolarımızı silip ve test senaryomuzu oluşturalım ve sonrasında restore’ umuzu başlatalım;

Öncelikle spfile’ i restore ediyoruz;

Control file’ i restore ediyoruz ;

Artık database’ i mount moda alabiliriz;

RMAN> alter database mount ;
Statement processed

Datafile’ lerimizi restore / recover edelim ;

Recover işlemi de bittiğine göre artık database’ i açabiliriz.

RMAN> alter database open ;
Statement processed

• Full pluggable database restore / recover,

Container database’ i full olarak restore ettikden sonra şimdi container içerisinde yer alan birden fazla pluggable database’ lerden sadece birini restore etmeyi deneyelim. Bu arada backuplar full container db backup’ ı olacak şekilde alındı yani sadece restore etmeye çalıştığımız db’ nin backupını almadık.

Aşağıdaki pluggable database’ lerden PLUG1_DB’ yi restore edelim ;

Şimdi kaybettiğimiz bu database’ i restore edelim;

• Root database restore / recover,

Container database’ i restore etmeye çalışalım;

• Archivelog restore,

Archivelog restore için 12c ve önceki versiyonlar arasında bir fark bulunmamaktadır. Örnek olarak aşağıdaki scripti verebiliriz.

• Pluggable database’ e ait olan tablespace’ in restore / recover edilmesi ,

PLUG1 pluggable database’ in DATA1 isimli tablespace’ ini restore etmeyi deneyelim;

• Pluggable database’ e ait olan bir tablespace’ e ait datafile’ in restore / recover işlemi,

PLUG1 pluggable database’ indeki data1_01.dbf datafile’ ini restore etmeyi deneyelim ;

• Container Database Point In Time Recovery,

Point in time recovery çalışmasını yine bir örnek üzerinden açıklamaya çalışalım. Kamil userı altına PITR_TEST adında bir tablo oluşturalım ve database’ i bu tablonun oluşturulduğu anın hemen sonrasına dönmeye çalışalım.

Yukarıdaki kriterleri kullanarak point in time recovery yaptığımız da PITR_TEST tablosunun 2.338 data ile gelmesini ancak 14:14 de oluşturulmuş olan kamil.PITR_TEST2 tablosunun gelmemesini bekliyorum;

Bu işlem için yukarıdaki 3 farklı set until opsiyonundan birini kullanabilriz. Biz SCN ile yapmayı deneyelim ;

Şimdi tablolarımızı kontrol edelim ;

Beklediğimiz sonucu yakalamış olduk.

• Pluggable Database Point In Time Recovery

Pluggable database üzerinde point in time recovery işlemi yapmadan önce mutlaka FRA alanının set edilmesi gerekecektir. Eğer bu işlem sırasında FRA’ yı kullanmak istemiyorsanız o zamanda restore komutu içerisinde AUXILARY DESTINATION’ ı set etmeniz gerekecektir.

AUXILARY DESTINATION kullanımına örnek olarak da aşağıdaki scripti verebiliriz.

RUN {
set until sequence 15;
ALLOCATE CHANNEL ch1 DEVICE TYPE sbt_tape ;
ALLOCATE CHANNEL ch2 DEVICE TYPE sbt_tape ;
ALLOCATE CHANNEL ch3 DEVICE TYPE sbt_tape ;
ALLOCATE CHANNEL ch4 DEVICE TYPE sbt_tape ;
ALLOCATE CHANNEL ch5 DEVICE TYPE sbt_tape ;
ALLOCATE CHANNEL ch6 DEVICE TYPE sbt_tape ;
ALTER PLUGGABLE DATABASE PLUG1_DB CLOSE immediate ;
RESTORE PLUGGABLE DATABASE PLUG1_DB;
RECOVER PLUGGABLE DATABASE PLUG1_DB auxiliary destination =’/u05/restore/plug_dba1′;
release channel ch1;
release channel ch2;
release channel ch3;
release channel ch4;
release channel ch5;
release channel ch6;
ALTER PLUGGABLE DATABASE PLUG1_DB OPEN RESETLOGS;
}

Reference;
https://oracle-base.com/articles/12c/multitenant-rman-backup-recovery-cdb-and-pdb-12cr1#pdb-backup

Be Sociable, Share!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


iki − = 0