Yeni sunucuya RMAN Restore ve Upgrade (ASM to non-ASM Database Copy)
Aşağıda 11.2.0.2 sürüm ASM üzerinde Oracle Cluster ‘dan alınan RMAN backup, baska bir makinadaki 11.2.0.3 sürüm non-ASM standalone bir Oracle üzerine kopyalanıyor ve Upgrade işlemi yapılıyor.
Eğer sürümler aynı olursa upgrade işlemine gerek kalmayacaktır. Daha alt bir sürüme ya da eksik patchset uygulanmis bir sisteme bu işlemi yapamassınız.
1. Production makinada grid kullanıcı ile login ol.
blknt-1 # su – grid
2. Backup dosyaları ASM den file sisteme çekilir.
grid $ .oraenv –> +ASM1 ( ya da 2. makina icin ASM2 )
grid $ asmcmd
ASMCMD> cd +RECO
ASMCMD> cd blknt
ASMCMD> cd backupset
ASMCMD> cd *
ASMCMD> ls
ASMCMD> cp file1 /cloudfs/backupset/
ASMCMD> cp file2 /cloudfs/backupset/
3. File sisteme alınan dosyalar hedef makinaya kopyalanır.
İki adet backupset dosyası ve 1 adet controlfile backup dosyası hedef makinaya kopyalanır.
$ scp -r /cloudfs/backupset/ oracle@139.179.14.251:/home/oracle/
$ scp -r /cloudfs/autobackup/controlfiles oracle@139.179.14.251:/home/oracle/cloudfs/backupset/
4. Artık target makinaya gecilebilir Oracle çalışıyorsa kapatılır.
oracle $ . oraenv
oracle $ sqlplus “/as sysdba”
SQL> startup shutdown;
SQL> startup nomount;
5. Sürüm farklı ise compability kontrolu yapmak gerekir. Target i master ile aynı yapınız. Target makinanın uygulanan patch ler dahil kaynak makinadan eski olmaması lazım. En kötü ihtimalle biraber aynısı ya da daha üst bir version a geçiş yapabilirsiniz.
SQL > alter system set compatible = ‘11.2.0.2.0’ scope=spfile;
6. Eger makinaların DB_NAME leri farklı ise target makinanın DB_NAME ‘i master makina ile aynı yapılır.
SQL> alter system set db_name=’blknt’ scope=spfile;
veya RMAN e bağlanınca yapabilirsiniz.
RMAN > set dbid=blknt
Eğer Alter system uygulandı ise (5 ve 6 dan birisini yapmak zorunda kaldıysanız) “shutdown immediate” kapatip yeniden “startup nomount” acalim.
7. Restore the control file yapılacak
oracle $ rman TARGET / NOCATALOG
RMAN> restore controlfile from ‘/u01/backupset/snapcf_blknt.f’
8. Restore işlemi güzelce bittiyse artık DB yi mount ediyoruz.
RMAN> alter database mount;
9. catalog olusturulur.
RMAN> catalog start with ‘/u01/backupset/’; –> YES
10. restore database islemi baslatilir.
Path olarak data file lar nerede olması gerekiyorsa orası verilir.
Ornekte BLKNT SID si kullanılmıştır.
RMAN>
run {
SET NEWNAME FOR DATABASE TO ‘/u01/app/oracle/oradata/DEMO/%b’;
SET NEWNAME FOR tempfile 1 TO ‘/u01/app/oracle/oradata/DEMO/%b’;
restore database;
switch datafile all;
switch tempfile all;
}
11. Eğer restore başarıyla bitti ise Recover Database yapabiliriz:
Not: Eğer FRA da yer sıkıntısı var ise (backup dosyasından kucukse) hata alirsınız. Önce FRA yı artırmanız gerekir.
(Error: RMAN-06558 Archive Log size is bigger than avaiable space)
SQL > ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 50G SCOPE=BOTH;
RMAN > run { recover database; }
Output da bir hata alabilirsiniz.
unable to find archived log
archived log thread=1 sequence=428
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 05/27/2013 17:47:52
RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 428 and starting SCN of 1167713950
Bu hatayı önemsemeyiniz. Eğer bu hatayı almak istemiyorsanız RMAN da “LIST BACKUP” diyip, List of Archived Logs sequence lerine bakip en buyyuk numaraya kadar almanız gerekir.
RMAN > LIST BACKUP;
List of Archived Logs in backup set 1842
Thrd Seq Low SCN Low Time Next SCN Next Time
—- ——- ———- ——— ———- ———
1 427 1163181277 26-MAY-13 1167713950 27-MAY-13
2 424 1163181305 26-MAY-13 1167713962 27-MAY-13
RMAN > run {
set until sequence 428 thread 1;
recover database;
}
12. Resetlog larla database i aciyoruz artık. Eğer oracle surumu aynı ise:
RMAN> sql ‘alter database open resetlogs’;
Eğer oracle surumu daha yüksek bir sürüm ise:
RMAN> sql ‘alter database open resetlogs UPGRADE’;
Not: Bunu Sqlplus dan da calistirabiliriz
SQL > alter database open resetlogs
13. RMAN dan exit.
Eğer database surumleriniz aynı ise artık islem bitmiştir. Yeni oracle hazırdır.
Ancak yeni bir oracle sürümüne yükleme yaptıysanız upgrade sql calistirmanız lazım.
Bu islem bir miktar uzun sürecektir sabırlı olunuz.
$ sqlplus “/as sysdba”
SQL> SPOOL upgrade.log
SQL> @catupgrd.sql
Bu islem sonucu oracle kapanacaktır. Simdi yeniden normal şekilde başlatabilirsiniz.
Geçmiş olsun artık master oracle veritabanınızı yeni bir sürüme kopyaladınız.
Recent Comments