Oracle 12c – Rman ile Container/Pluggable Db’ lerin Backup’ ını Almak

Öncelikle nasıl ve hangi detayda backup alabiliyoruz, container ve pluggable database’ lerin backuplarını ayrı ayrı veya tek bir scriptte alabiliyormuyuz ona bakalım.

Konunun daha iyi anlaşılabilmesi için aşağıdaki senaryolar yardımıyla anlatmayı planlıyorum. Sık karşılaşılabilecek senaryoları eklemeye çalıştım;

• Full database backup
• Full pluggable database backup (veya tüm pluggable db’ lerin full backupını almak);
• Root database’ inin backupı
• Sadece archivelogların backupını almak için
• Bir pluggable database’ e ait olan tablespace’ in backupı ;
• Pluggable database’ e ait olan bir tablespace’ e ait datafile’ in backupını almak

Öncelikle container database’ imiz içinde hangi plugabble database’ lerimiz var ona bakalım ;

Full backup aldığımız da container db + bu 3 pluggable database’ in backupının alınıyor olması gerekiyor.

• Full database backup ;
Full database backup ile kastedilen database içerisinde yer alan tüm bileşenlerin tek bir script ile backupının alınması demek aslında, en sık kullanaılacak olan backup alma opsiyonuda bu olacaktır diye düşünüyorum.

Container içerisinde yer alan tüm instance’ ların backupını almış olduk.

• Full pluggable database backup (veya tüm pluggable db’ lerin full backupını almak);

Bizim test database’ imiz de yer alan 3 tane pluggable database’ imiz var. Sadece bu 3 pluggable database’ in backupını alalım ;

• Root database’ inin backupı ;

Pluggable db’ lerin backupını aldırmadan sadece root database’ in backupını almak istersek ;

• Sadece Archivelogların backupını almak için ;

Database’ deki sadece archivelogların backupını almak istersek ;

• Bir pluggable database’ e ait olan tablespace’ in backupı ;

PLUG1_DB database’ indeki data1 tablespace’ inin backupını almaya çalışalım ;

Öncelikle burada yapılması muhtemel bir hatadan bahsedelim. Rman’ e aşağıdaki gibi bağlanırsanız container db’ in rman’ nine bağlanmış olursunuz, dolayısıyla burda çalıştırdığınız tüm komutlarda container db seviyesinde çalışacaktır. Örneğin aşağıdaki komut container db’ nin tablespace’ i olan USERS tbs’ inin backupını alır.

Bu ekrandan bir pluggable database’ e ait bir tablespace’ in backupını almaya çalışırsanız ;

RMAN> run
2> {
3> backup tablespace DATA1 ;
4> }

Starting backup at 01-SEP-15
using target database control file instead of recovery catalog
allocated channel: ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: SID=364 device type=SBT_TAPE
channel ORA_SBT_TAPE_1: Veritas NetBackup for Oracle – Release 7.5 (2013061020)
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 09/01/2015 10:31:34
RMAN-20202: Tablespace not found in the recovery catalog
RMAN-06019: could not translate tablespace name “DATA1”
RMAN>

hatasını alırsınız. Pluggable database’ e ait bir tbs’ in backupını almak içinse rman’ e aşağıdaki şekilde bağlanmak gerekiyor ;

• Pluggable database’ e ait olan bir tablespace’ e ait datafile’ in backupını almak

Burdaki durumun aynısı, tablespace ‘ in backupını alırkenki durum ile aynı aslında, rman’ e connect olurken yine hangi pluggable database’ e connect olacağımızı belirtmemiz gerekiyor.

Aynı backupı datafile numarasını vererek de alabiliriz ;

Tablo seviyesinde nasıl backup alabileceğimiz den ve yine tablo bazında nasıl restore edebileceğimiz den aşağıdaki yazımda bahsetmiştim ;
http://www.kamilturkyilmaz.com/2015/07/20/oracle-12c-new-features-tablo-bazinda-recover-islemi/

Yine almış olduğumuz bu backupları nasıl restore edebileceğimiz ile ilgili örneklere de aşağıdaki yazımda anlatmaya çalışmıştım;
http://www.kamilturkyilmaz.com/2016/03/07/oracle-12c-container-database-restore-recover-islemleri/

Be Sociable, Share!

Bir cevap yazın

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


3 + altı =