28 Mart 2015 Cumartesi

ORACLE 12c RMAN ile Değişik Platformlardan Veri Taşıma (Cross Platform Data Transport)

Oracle 12 c ile gelenyeniliklerden biri; RMAN ile bir platformdan başka platforma yedek alınıp yedekden dönüş yapılabilmesidir. RMAN ile backup yapabildiği gibi aynı zamanda başka platformda backup edilmiş veritabanından (versiyon değişik de olsa) recover da edebilmektedir. Başka platformlardan alınmış full backup, incremental 0 ve 1 backuplar, recover from platform_adi ile recover edilmektedir. Aynı şekilde başka platform için yaptığımız backup’lar backup to platform_adi şeklinde backup alınabilmektedir.
Platform adını öğrenmek için;
SQL> SELECT PLATFORM_ID FROM V$DATABASE
İle alınan platform_id_sonucu nu
SQL> SELECT PLATFORM_NAME
        FROM V$TRANSPORTABLE_PLATFORM
        WHERE PLATFORM_ID = platform_id_sonucu
İle öğrenilebilmektedir. Kısaca
SQL> SELECT PLATFORM_NAME
        FROM V$TRANSPORTABLE_PLATFORM
        WHERE PLATFORM_ID =  ( SELECT PLATFORM_ID FROM V$DATABASE );
Kullanılacak backup komutu ise
RMAN> BACKUP TO PLATFORM platformadi DATABASE FORMAT ‘….’
Recover komutu;
RMAN>  RECOVER FROM PLATFORM platformadi
Eğer bir datafile restore ve recover etmek istenirse;
RMAN> RESTORE FROM PLATFORM platformadi foreign datafile numara format ’ datafileadres’ from backupset ‘backupsetadi’;
RMAN> RECOVER FROM PLATFORM platformadi foreign datafilecopy  datafileadres from backupset ‘backupsetad’;
Not: backup işlemi 11g versiyonunda alınıp restore ve recover işlemi 12c versiyonunda yapılabilir. 11g’de BACKUP PLATFORM TO komutu olmadığından alınacak normal bir backup ile 12c’de RESTORE FROM PLATFORM komutu ile restore ve RECOVER FROM PLATFORM ile recover edilebilir.
Ayrıca iki platform arası upgrade işlemi yapmadan bu işlemi uygulamak zaman açısından yararlı olacaktır. İki platform aynı karakter format’lı olmalıdır. Bunu öğrenmek için;


11gr2 kurulu makineden test için tablespace ve tablolar yaratılır.


Backup işlemi için; 11gr2 kurulu sistemden tablespace’lerin yedeği backup incremental level 0 alınır.


Oracle 12c olan sisteme geçilir. Şimdi sıra geldi restore ve recover işlemlerine;


Recover işlemini backup incremental level 1 ile yapılmalı. Bunun için 11gr2 veritabanına gidilir ve tablolara veri eklenir. Örnek veriler aşağıdaki gibi eklenir.


Recover işlemi için incremental 1 backup alınmalıdır..


Recover işlemi için Oracle 12c veritabanı olan sisteme geçilir.


Sonra expdp işlemi için


Burada bir kez daha incremental level 1 backup alınır ve dump dosyası olan /u01/app/oracle/admin/devdb/dpdump/test.dmp isimli dosyayı da 12C’nin bulunduğu sisteme taşınmalıdır. Tekrar son defa recover işlemi yapılır.


Daha sonra container veritabanını ya pdbdevinim yapılır;


Yada sys/sifre@PDBDEVINIM AS SYSDBA olarak giriş yapılır. Burada tablespace’lerı read and write moduna alınacaktır. Ardından tabloları kontrol edebilirsiniz.