ORACLE DATABASE RESTORE AND RECOVERY

Bu bölümde alınan veri tabanı yedeğini recovery (geri dönüceğiz) yapacağız.

Aşağıdaki komut ile veri tabanı full yedeğimizi ve arşiv yedeğimizi sıkıştırılmış olarak almıştık.
Eğer biz geri dönüş için kullanılacak yedeği belirtmezsek, en son alınan yedeği işleme alacak ve geri dönüşü yapacak.

RMAN> BACKUP as COMPRESSED BACKUPSET DATABASE FORMAT
'/orahome/backup/dbf_%d_%t_%s.rman' TAG='DBF_TESTDB_20220702_1210' PLUS
ARCHIVELOG format '/orahome/backup/arc_%d_%t_%s.rman'
TAG='ARC_TESTDB_20220702_1210';

İlgili yedeği hem RMAN ‘de kullanılan komut hem de yedek alınan dizinde bir görelim.

List of Backups
===============
Key     TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- --------------- ------- ------- ---------- ---
21      B  A  A DISK        07-FEB-22       1       1       NO     ARC_TESTDB_20220207_1127
22      B  F  A DISK        07-FEB-22       1       1       NO     DBF_TESTDB_20220207_1127
23      B  A  A DISK        07-FEB-22       1       1       NO     ARC_TESTDB_20220207_1127
24      B  F  A DISK        07-FEB-22       1       1       NO         TAG20220207T112457
25      B  A  A DISK        07-FEB-22       1       1       YES    ARC_TESTDB_20220702_1210
26      B  F  A DISK        07-FEB-22       1       1       YES    DBF_TESTDB_20220702_1210
27      B  A  A DISK        07-FEB-22       1       1       YES    ARC_TESTDB_20220702_1210
28      B  F  A DISK        07-FEB-22       1       1       NO         TAG20220207T120721
29      B  A  A DISK        07-FEB-22       1       1       YES    ARC_TESTDB_20220702_1210
30      B  F  A DISK        07-FEB-22       1       1       YES    DBF_TESTDB_20220702_1210
31      B  A  A DISK        07-FEB-22       1       1       YES    ARC_TESTDB_20220702_1210
32      B  F  A DISK        07-FEB-22       1       1       NO         TAG20220207T144051
oracle@server backup]$ ls -ltr
total 2345496
-rw-r----- 1 oracle oinstall   91869184 Feb  7 11:24 arc_TEST_1096025088_21.rman
-rw-r----- 1 oracle oinstall 1468219392 Feb  7 11:24 dbf_TEST_1096025089_22.rman
-rw-r----- 1 oracle oinstall       6656 Feb  7 11:24 arc_TEST_1096025096_23.rman
-rw-r----- 1 oracle oinstall   23727616 Feb  7 12:06 arc_TEST_1096027602_25.rman
-rw-r----- 1 oracle oinstall  407126016 Feb  7 12:07 dbf_TEST_1096027605_26.rman
-rw-r----- 1 oracle oinstall       6656 Feb  7 12:07 arc_TEST_1096027640_27.rman
-rw-r----- 1 oracle oinstall    2953728 Feb  7 14:40 arc_TEST_1096036813_29.rman
-rw-r----- 1 oracle oinstall  407855104 Feb  7 14:40 dbf_TEST_1096036815_30.rman
-rw-r----- 1 oracle oinstall      15872 Feb  7 14:40 arc_TEST_1096036850_31.rman
RMAN>  RESTORE DATABASE VALIDATE;

Starting restore at 08-FEB-22
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=295 device type=DISK

channel ORA_DISK_1: starting validation of datafile backup set
channel ORA_DISK_1: reading from backup piece /orahome/backup/dbf_TEST_1096036815_30.rman
channel ORA_DISK_1: piece handle=/orahome/backup/dbf_TEST_1096036815_30.rman tag=DBF_TESTDB_20220702_1210
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: validation complete, elapsed time: 00:00:35
Finished restore at 08-FEB-22

RMAN> RESTORE DATABASE VALIDATE;

Bu komut sonucunda son alınan yedeğin çalışıp çalışmayacağı gösterilecektir. Yukarıda kullanacağımız yedeği bize belirtti.

Şimdi senaryomuz şöyle. Kullanılan veri tabanında yapılan bir değişiklik ya da veri tabanını tamamen kaybettik. Bizde aldığımız full yedeği geri döneceğiz. (Full recover – Tam yedekten geri dönüş.) Bu işlemleri yaparken veri tabanı alert log dosyasını açıp gözlemlemekte fayda var.

  • Veri tabanını kapatacağız.
  • Veri tabanını mount mode ‘da açacağız
  • RESTORE DATABASE
  • RECOVER DATABASE
[oracle@server ~]$ rman target /

Recovery Manager: Release 19.0.0.0.0 - Production on Tue Feb 8 11:40:52 2022
Version 19.13.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

connected to target database: TEST (DBID=2391253514)

RMAN> shutdown immediate;

using target database control file instead of recovery catalog
database closed
database dismounted
Oracle instance shut down

RMAN> startup mount;

connected to target database (not started)
Oracle instance started
database mounted

Total System Global Area     771748528 bytes

Fixed Size                     8901296 bytes
Variable Size                641728512 bytes
Database Buffers             113246208 bytes
Redo Buffers                   7872512 bytes

RMAN> restore database;

Starting restore at 08-FEB-22
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=261 device type=DISK

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00001 to /orahome/app/oradata/TEST/datafile/o1_mf_system_jx8n47tn_.dbf
channel ORA_DISK_1: restoring datafile 00003 to /orahome/app/oradata/TEST/datafile/o1_mf_sysaux_jx8n51bz_.dbf
channel ORA_DISK_1: restoring datafile 00004 to /orahome/app/oradata/TEST/datafile/o1_mf_undotbs1_jx8n5jmp_.dbf
channel ORA_DISK_1: restoring datafile 00007 to /orahome/app/oradata/TEST/datafile/o1_mf_users_jx8n5ksr_.dbf
channel ORA_DISK_1: reading from backup piece /orahome/backup/dbf_TEST_1096036815_30.rman
channel ORA_DISK_1: piece handle=/orahome/backup/dbf_TEST_1096036815_30.rman tag=DBF_TESTDB_20220702_1210
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:35
Finished restore at 08-FEB-22

RMAN> recover database;

Starting recover at 08-FEB-22
using channel ORA_DISK_1

starting media recovery
media recovery complete, elapsed time: 00:00:02

Finished recover at 08-FEB-22

RMAN> alter database open;

Statement processed

RMAN> exit

Dönüşü gerçekleştirdik. Acaba döndük mü diye sorular oluşur ise aşağıdaki gibi check edebiliriz.

select RESETLOGS_TIME  from v$database;
Önce
Sonra

Dosya lokasyonunu kullanarak datafile recover etmek:
RMAN> RESTORE DATAFILE ‘/orahome/backup/users01.dbf’;
RMAN> RECOVER DATAFILE ‘/orahome/backup/users01.dbf’;

Dosya numarası (FILE#) kullanarak datafile recover etmek* :
RMAN> RESTORE DATAFILE 3,4,12;
RMAN> RECOVER DATAFILE 3,4,12;

Tablespace belirterek recover etmek:
RMAN> RESTORE TABLESPACE USERS, DATA_TS;
RMAN> RECOVER TABLESPACE USERS, DATA_TS;

Bu verilen örneklerin hepsi son backup’a göre recover edilir. Eğer daha farklı bir backup kullanmak
istiyorsanız, FROM TAG ifadesini kullanabilirsiniz.

Arşiv dosyalarının recover işlemi söz konusu ise birçok seçenek göz
önüne getirilebilir.

SCN – System Change Number’a belirli aralıktaki arşiv dosyalarını dönme
RMAN> RESTORE ARCHIVELOG SCN BETWEEN 26716797844 and 26716798848;

Yedeklenmiş bütün arşiv dosyalarını dönme
RMAN> RESTORE ARCHIVELOG ALL;

30 günden yeni 7 günden eski arşiv dosyalarının yedeğini dönme
RMAN> RESTORE ARCHIVELOG FROM TIME ‘SYSDATE-30’
UNTIL TIME ‘SYSDATE-7’;
Verilen örnekler en genel kullanılabilecek yöntemleri gösteriyor. Daha başka çeşitlerde de (sequence numarası gibi…) yedekten dönme işlemlerini yapabilirsiniz.

CONTROL FILE Yedekten Dönme

CONTROL FILE’in silineceği pek fazla durum olmayabilir; olmamalıdır da. Ancak böyle bir durum
başınıza gelirse ve RMAN üzerinden control file’in yedeğini almışsanız aşağıdaki gibi control file’i
restore edebilirsiniz. Tabii bunun için database’in nomount mode’da açılmış olması gerekir:
RMAN> STARTUP NOMOUNT;
RMAN> RESTORE CONTROLFILE FROM ‘/data2/cf_1SF32433.rman’;
RMAN> ALTER DATABASE OPEN;

Bir cevap yazın

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