Anasayfa > oracle, Oracle Araçlar, RMAN Backup and Recovery > RMAN Veri Kurtarma Yöntemleri

RMAN Veri Kurtarma Yöntemleri

Merhaba,

Bu yazımda  RMAN ile alınan yedekten geri dönme yöntemlerimizi madde madde anlatacağım.

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

SQL> startup mount;
RMAN> restore database;
RMAN> recover database;
SQL> alter database open;

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

 SQL> alter tablespace users offline;
RMAN> restore tablespace users;
RMAN> recover tablespace users;
SQL> alter tablespace users online;

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

$ sqlplus “/ as sysdba”
SQL> shutdown abort;
SQL> startup mount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN> restore tablespace users;
RMAN> recover tablespace users;
SQL> alter database open;

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

SQL> alter database datafile '/oracle/oradata/users.dbf' offline;
RMAN> restore datafile '/oracle/oradata/users.dbf'
RMAN> recover datafile '/oracle/oradata/users.dbf'
SQL> alter database datafile '/oracle/oradata/users.dbf' online;

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

$ sqlplus “/ as sysdba”
SQL> shutdown abort;
SQL> startup mount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN> restore datafile '/oracle/oradata/users.dbf';
RMAN> recover datafile '/oracle/oradata/users.dbf';
SQL> alter database open;

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

$ sqlplus “/ as sysdba”
SQL> shutdown abort;
SQL> startup nomount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN> set dbid = 3970640872;
RMAN> restore controlfile;
SQL> alter database mount;
SQL> alter database open;

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.

SQL> shutdown abort;
SQL> startup mount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN> recover database;
SQL> alter database open resetlogs;
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;

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

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

$ sqlplus "/ as sysdba"
SQL> shutdown abort;
SQL> startup mount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN> restore database until scn 1000;
RMAN> recover database until scn 1000;
SQL> alter database open resetlogs;

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

$ sqlplus "/ as sysdba"
SQL> shutdown abort;
SQL> startup mount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN> restore database until sequence 9923;
RMAN> recover database until sequence 9923;
SQL> alter database open resetlogs;

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

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

Ya da

RMAN> restore ARCHIVELOG FROM TIME "to_date('07/11/05 00:00:01','MM/DD/YY HH24:MI:SS')
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:

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

         Kurtarmak için özel bir backup set verebiliriz;

# backupset den kurtarma
RMAN> BLOCKRECOVER DATAFILE 8 BLOCK 13 DATAFILE 2 BLOCK 19 FROM BACKUPSET;
# image copy den kurtarma
RMAN> BLOCKRECOVER DATAFILE 8 BLOCK 13 DATAFILE 2 BLOCK 19
      FROM DATAFILECOPY;
# "FULL" taglı olan backupset den kurtarma
RMAN> BLOCKRECOVER DATAFILE 8 BLOCK 13 DATAFILE 2 BLOCK 199
       FROM TAG = 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.

RMAN>BLOCKRECOVER CORRUPTION LIST
  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;

RMAN>sql ‘alter database datafile 2 offline’;
RMAN>switch datafile 2 to copy;
RMAN>recover datafile 2;
RMAN>sql ‘alter database datafile 2 online’;

Sağlam yedekli, problemsiz veritabanlarınız olması dileğiyle🙂 …

Talip Hakan Öztürk

  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: