Tuesday, August 11, 2009

RMAN İLE DATAFILE KURTARMA

Bozuk yada silinmiş olan bir datafile kurtarma işlemlerini basit bir senaryo ile anlatmaya çalıştım.

Öncelik ile bir tablespace yaratalım
CREATE SMALLFILE TABLESPACE "DENEME1" DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME2' SIZE 100M REUSE AUTOEXTEND ON NEXT 1024K MAXSIZE 32767M , 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME3' REUSE LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO

Şimdi bu tablespace'e bir datafile ekleyelim.

ALTER TABLESPACE "DENEME1" ADD DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME2' SIZE 102400K REUSE AUTOEXTEND ON NEXT 1024K MAXSIZE 32767M

daha sonra bu tablespace de bir user oluşturalım.

CREATE USER "RMAN_DEN" PROFILE "DEFAULT" IDENTIFIED BY "*******" DEFAULT TABLESPACE "DENEME1" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK
GRANT UNLIMITED TABLESPACE TO "RMAN_DEN" WITH ADMIN OPTION
GRANT "CONNECT" TO "RMAN_DEN" WITH ADMIN OPTION
GRANT "RESOURCE" TO "RMAN_DEN" WITH ADMIN OPTION


şimdi bu user altında bir tablo oluşturalım.

CREATE TABLE rman_den.tablom
AS
SELECT *
FROM all_objects


son durumu özetlemek gerekir ise elimizde bir tablespace bu tablecpace'yi kullanan bir user (schema) sonra bu tablespace'de tanımlanmış bir datafile var . Biz burada ne yapacağiz; Datafile bozulmuş senaryosu yaratacağız.

Önce RMAN ile ilgili datafile'in backupını alıyoruz.

RMAN> backup datafile 6;

elimizde backupımız var.

RMAN> LIST BACKUP of datafile 6;

aşağıdaki komut ile datafile'i siliyoruz.
ALTER DATABASE DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME2'
OFFLINE DROP;

şimdi datafile üzerinde işlem yapmaya çalışalım.

select * from rman_den.tablom

ORA-00376: 6 dosyasi su anda okunamiyor
ORA-01110: veri dosyasi 6: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME2'

Bu hatayı alıyoruz. Bunun ne anlama geldiğini şimdi daha iyi anlayabiliriz.
Bu hatadan kurtulmak için backupdan dönme işlemini gerçekleştiriyoruz.

işletim sisteminde de dosyayı sildikten sonra

RMAN> restore datafile 6;
RMAN> recover datafile 6;
İle geri yükleme ve kurtarma işlemini tamalıyoruz. Bu işlemden sonra offline durumda olan datafile'i online yapmaktır.
ALTER DATABASE DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME2' ONLINE

online yapma işlemini RMAN'de de yapabiliriz bunun için bir run scripti hazırlıyoruz.
Kurtarma işleminden sonra RMAN ilgili sql'i çalıştıracktır.
RMAN>RUN{
restore datafile 6;
recover datafile 6;
SQL "ALTER DATABASE DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME2' ONLINE";
}

select * from dba_data_files -- sorgusu ile datafile'lerimizin son halini görelim.
Bu sorgu ile hem datafilelelerin konumlarını, isimlerini ve numaraları öğrenebiliriz.

Bozuk olan bir Datafile'dan RMAN ile dönme işlemini gerçekleştirmiş olduk.

Aşağıdaki hatalarda da yukarıdaki işlemleri yapılabilir.

SYS aliates 11/08/2009 >alter database open;
alter database open
*
1 satırında HATA:
ORA-01122: 6 veritabani dosyasi onaylama kontrolünü geçemedi
ORA-01110: veri dosyasi 6: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME2'
ORA-01251: Dosya numarasi 6 için bilinmeyen Dosya üstbilgiler Sürümü okundu
ORA-01157: 6 veri dosyasi tanimlanamaz veya kilitlenemez - DBWR izleme

bu hatalardan kurtulmanın bir diğer yöntemi ise ilgili datafileleri offline duruma çekmektir.

SYS aliates 11/08/2009 >alter database datafile 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME4' offline;

SYS aliates 11/08/2009 >alter database open;

Veritabanı de­ğiştirildi.

/////////////////////////////////////////////////////////////////////

offline olan datafile'yi rman ile kurtarabiliriz.

örneğin
ALTER DATABASE DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME2' offline
dediniz ve datafile offline oldu
herhangibi bir sorgu çalıştırdığınızda


ORA-00376: 9 dosyasi su anda okunamiyor
ORA-01110: veri dosyasi 9:

hatasınız alırsınız bundan kurulmak için

C:\Documents and Settings\rdcaates>rman target /

Kurtarma ¦darecisi : Release 10.2.0.1.0 - Production on Sal A­u 25 21:21:21 2009


Copyright (c) 1982, 2005, Oracle. All rights reserved.

hedef veritaban²na ba­lanıldı: ORCL (DBID=1223590477)

RMAN> recover datafile 9;

recover başlatılıyor; saat 25/08/2009
kurtarma katalo­u yerine hedef veritabanı kontrol dosyası kullanılıyor
ayr²lan kanal: ORA_DISK_1
ORA_DISK_1 kanalı: sid=133 aygt³r³=DISK

ortam kurtarmayı başlatma
ortam kurtarma tamamlandı , geçen süre: 00:00:02

recover tamamlandı; saat 25/08/2009

RMAN>

ALTER DATABASE DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DENEME2' online;

işleminden sonra kurtarma işlemi başarılı bir şekilde tamamlanmış oldu.
Burada eğer datafileniz silindiyse yada yerinde yok ise o zaman yukarıdaki adımları yapmalısınız.


No comments: