Üye Kayıt Üye Giriş

RMAN Veri Kurtarma Yöntemleri


RMAN Veri Kurtarma Yöntemleri

 

1- Bütün datafile lar kaybedildiğinde, tüm yedeğin geri dönülmesi için;

1 SQL> startup mount;
2 RMAN> restore database;
3 RMAN> recover database;
4 SQL> alter databaseopen;

2- Bir tablespace kaybedildiğinde, kaybedilen tablespace in geri dönülmesi için;

1 SQL> alter tablespace users offline;
2 RMAN> restore tablespace users;
3 RMAN> recover tablespace users;
4 SQL> alter tablespace users online;

Tablespace offline yapılamazsa aşağıdaki yol izlenmelidir.

1 $ sqlplus “/ as sysdba”
2 SQL> shutdown abort;
3 SQL> startup mount;
4 $ rman target / catalog_user/catalog_user_password@catalogdb
5 RMAN> restore tablespace users;
6 RMAN> recover tablespace users;
7 SQL> alter databaseopen;

3- Bir datafile kaybedildiğinde, kaybedilen datafile ın geri dönülmesi için;

1 SQL> alter databasedatafile '/oracle/oradata/users.dbf' offline;
2 RMAN> restore datafile '/oracle/oradata/users.dbf'
3 RMAN> recover datafile '/oracle/oradata/users.dbf'
4 SQL> alter databasedatafile '/oracle/oradata/users.dbf' online;

Datafile offline yapılamazsa aşağıdaki yol izlenmelidir.

1 $ sqlplus “/ as sysdba”
2 SQL> shutdown abort;
3 SQL> startup mount;
4 $ rman target / catalog_user/catalog_user_password@catalogdb
5 RMAN> restore datafile '/oracle/oradata/users.dbf';
6 RMAN> recover datafile '/oracle/oradata/users.dbf';
7 SQL> alter databaseopen;

4- Controlfile lar kaybedildiğinde, kaybedilen controlfile ın geri dönülmesi için;

1 $ sqlplus “/ as sysdba”
2 SQL> shutdown abort;
3 SQL> startup nomount;
4 $ rman target / catalog_user/catalog_user_password@catalogdb
5 RMAN> set dbid = 3970640872;
6 RMAN> restore controlfile;
7 SQL> alter database mount;
8 SQL> alter databaseopen;

Controlfile yedekten geri dönüldükten sonra, veritabanının açılması esnasında aşağıdaki gibi ORA-01589 hatası ile karşılaşılabilir.

ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

Bu durumda aşağıdaki işlemler yapılmalıdır.

1 SQL> shutdown abort;
2 SQL> startup mount;
3 $ rman target / catalog_user/catalog_user_password@catalogdb
4 RMAN> recover database;
5 SQL> alter databaseopen resetlogs;
6 RMAN> reset database;

Veritabanı “resetlogs” ile açıldığı için controlfile daki SCN numarası sıfırlanacaktır. Bu durumda önceki alınan yedekler geçersiz olacaktır. Yeniden full yedek alınması zorunludur.

5- Özel bir durum gerekebilir. Ve bizden belirli bir zamana dönmemiz istenebilir. Belirli bir zamana dönmek için 3 yöntem mevcuttur. Zamana göre, Arşiv sıra nosuna göre ve SCN (System Change Number) ye göre incomplete recovery (Belirli bir zamana dönme işlemi) yapabiliriz.

A. Zamana göre (Time-Based) incomplete recovery;

1 $ sqlplus "/ as sysdba"
2 SQL> shutdown abort;
3 SQL> startup mount;
4 $ rman target / catalog_user/catalog_user_password@catalogdb
5 RMAN> restore database until time"to_date('06/05/11 12:0:00','DD/MM/YY HH24:MI:SS')";
6 RMAN> recover database until time"to_date('06/05/11 12:0:00','DD/MM/YY HH24:MI:SS')";
7 SQL> alter databaseopen resetlogs;

B. Sistem değişiklik numarasına göre (SCN-Based) incomplete recovery;

1 $ sqlplus "/ as sysdba"
2 SQL> shutdown abort;
3 SQL> startup mount;
4 $ rman target / catalog_user/catalog_user_password@catalogdb
5 RMAN> restore database until scn 1000;
6 RMAN> recover database until scn 1000;
7 SQL> alter databaseopen resetlogs;

C. Arşiv dosyası sequence numarasına göre incomplete recovery;

1 $ sqlplus "/ as sysdba"
2 SQL> shutdown abort;
3 SQL> startup mount;
4 $ rman target / catalog_user/catalog_user_password@catalogdb
5 RMAN> restore database until sequence 9923;
6 RMAN> recover database until sequence 9923;
7 SQL> alter databaseopen resetlogs;

6- Alınan yedekte arşiv dosyaları varsa ve belirli arşiv dosyalarının geri dönülmesi gerekirse;

1 $ rman target / catalog_user/catalog_user_password@catalogdb
2 RMAN> restore ARCHIVELOG FROMTIME'SYSDATE-1'UNTIL TIME'SYSDATE';

Ya da

1 RMAN> restore ARCHIVELOG FROMTIME"to_date('07/11/05 00:00:01','MM/DD/YY HH24:MI:SS')
2 UNTIL TIME 'SYSDATE';

7- Herhangi bir datafile ın bir bloğunda corruption oluşursa aşağıdaki gibi bir hata alınır ve ilgili datafile ın ilgili bloğu aşağıdaki gibi kurtarılır.

Hata:

ORA-01578: ORACLE data block corrupted (file # 8, block # 13)

ORA-01110: data file 8: ‘/oracle/oradata/users.dbf’

Kurtarmak için:

1 $ rman target / catalog_user/catalog_user_password@catalogdb
2 RMAN>blockrecover datafile 8 block 13;

Kurtarmak için özel bir backup set verebiliriz;

1 # backupset den kurtarma
2 RMAN> BLOCKRECOVER DATAFILE 8 BLOCK 13 DATAFILE 2 BLOCK 19 FROM BACKUPSET;
3 # image copy den kurtarma
4 RMAN> BLOCKRECOVER DATAFILE 8 BLOCK 13 DATAFILE 2 BLOCK 19
5       FROM DATAFILECOPY;
6 # "FULL" taglı olan backupset den kurtarma
7 RMAN> BLOCKRECOVER DATAFILE 8 BLOCK 13 DATAFILE 2 BLOCK 199
8        FROMTAG = FULL;

Backup esnasında veya “Backup Validate” komutuyla RMAN bulduğu corrupted blokları V$DATABASE_BLOCK_CORRUPTION viewına yazar. Corrupt olan blok recover edildiğinde RMAN otomatik bu view ı günceller. Geçmişe yönelik tüm corruption listesi V$BACKUP_CORRUPTION ve V$COPY_CORRUPTION viewlarından bakılabilir. Aşağıdaki komut çalıştırıldığında RMAN, V$DATABASE_BLOCK_CORRUPTION viewında bulunan tüm corrupted blokları recover eder.

1 RMAN>BLOCKRECOVER CORRUPTION LIST
2   RESTORE UNTIL TIME'SYSDATE-10';

8- 2. veri dosyamızda problem olduğunda, 2. veri dosyamızı “image copy” yedeğe switch etmek için;

1 RMAN>sql ‘alterdatabase datafile 2 offline’;
2 RMAN>switch datafile 2 to copy;
3 RMAN>recover datafile 2;
4 RMAN>sql ‘alterdatabase datafile 2 online’;
Bilgisayar Dershanesi Ders Sahibi;
Bilgisayar Dershanesi

Yorumlar

Yorum Yapabilmek İçin Üye Girişi Yapmanız Gerekmektedir.

ETİKETLER