Kamis, 04 Desember 2008

Oracle 11g [ Data Recovery Advisor ]

Berikut salah satu contoh error yang ditemui dioracle, dimana data file not available, bisa karena corupts atau file nya dipindahkan saat database sdg berjalan


sedangkan dalam beberapa kasus kita harus segera mengambil tindakan sebelum masalahnya meluas.


Dalam Oracle 11g Data Recovery yang baru membuat operasi ini lebih mudah. Fitur ini bisa di gunakan dengan 2 cara, yaitu dalam mode Command Line atau dalam


fasilitas Enterprise Manager.



SQL> conn scott/tiger


Connected.


SQL> create table t (col1 number);


create table t (col1 number)


*


ERROR at line 1:


ORA-01116: error in opening database file 4


ORA-01110: data file 4: '/home/oracle/oradata/PRODB3/users01.dbf'


ORA-27041: unable to open file


Linux Error: 2: No such file or directory


Additional information: 3



Berikut kita menggunakan command line yang akan kita eksekusi dan jalankan di RMAN


Pertama start proses RMAN kemudian koneksi kan ketarget



C:\>rman target=/


Recovery Manager: Release 11.1.0.6.0 - Production on Wed Jul 2 09:47:36 2008


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


connected to target database: ORCL (DBID=1185929127)


RMAN> list failure;



Jika tidak ada error maka akan keluar pesan sebagai berikut



using target database control file instead of recovery catalog


no failures found that match specification



Jika ternyata ada error maka akan keluar pesan kesalahan sbg berikut



using target database control file instead of recovery catalog


List of Database Failures


=========================


Failure ID Priority Status Time Detected Summary


---------- -------- --------- ------------- -------


142 HIGH OPEN 15-JUL-07 One or more non-system datafiles are missing



Pesan kesalahan ini menunjukkan bahwa ada datafile yang hilang. Datafile yang hilang bukan merupakan bagian dari tablespace SYSTEM, database hidup


dengan tablespace itu dalam keadaan offline. Error ini sangat critical sehingga kolom priority memuat status HIGH.


Tiap kesalahan mempunyai ID, sehingga memudahkan dlm mengidentifikasi dalam error didatabase.



RMAN> list failure 142 detail;



Perintah ini menunjukkan detail penyebab dari error tersebut.



RMAN> advise failure;



Perintah ini menghasilkan keluaran berupa penjelasan dari error dan cara memperbaikinya



List of Database Failures


=========================


Failure ID Priority Status Time Detected Summary


---------- -------- --------- ------------- -------


142 HIGH OPEN 15-JUL-07 One or more non-system datafiles are missing


analyzing automatic repair options; this may take some time


using channel ORA_DISK_1


analyzing automatic repair options complete


Mandatory Manual Actions


========================


no manual actions available


Optional Manual Actions


=======================


1. If file /home/oracle/oradata/PRODB3/users01.dbf was unintentionally renamed or moved, restore it


Automated Repair Options


========================


Option Repair Description


------ ------------------


1 Restore and recover datafile 4


Strategy: The repair includes complete media recovery with no data loss


Repair script: /home/oracle/app/diag/rdbms/prodb3/PRODB3/hm/reco_3162589478.hm



Keluaran ini mempunyai beberapa bagian penting. Pertama, Advisor menganalisa error didatabase, dan yang kedua Advisor menyarankan solusi,


Dalam kasus ini solusinya sederhana yaitu Restore dan Recover file.


Dan hal yang paling berguna dari Data Recovery Advisor yaitu seperti pada baris terakhir dari output diatas, Advisors men generate script yang dapat digunakan


untuk repair datafile atau memperbaiki error yang terjadi.


Jadi kita mempunyai sebuah script yang siap untuk dieksekusi, tapi sebelum kita melakukan eksekusi kita bisa melakukan verifikasi terhadap script tersebut


sehingga kita bisa melakukan preview terhadap apa yang akan dijalanin dalam script tersebut.



RMAN> repair failure preview;


Strategy: The repair includes complete media recovery with no data loss


Repair script: /home/oracle/app/diag/rdbms/prodb3/PRODB3/hm/reco_741461097.hm


contents of repair script:


# restore and recover datafile


sql 'alter database datafile 4 offline';


restore datafile 4;


recover datafile 4;


sql 'alter database datafile 4 online';



Setelah kita melihat apa yang akan dijalankan oleh script tersebut, sekarang kita bisa menjalankan script tersebut



RMAN> repair failure;


Strategy: The repair includes complete media recovery with no data loss


Repair script: /home/oracle/app/diag/rdbms/prodb3/PRODB3/hm/reco_741461097.hm


contents of repair script:


# restore and recover datafile


sql 'alter database datafile 4 offline';


restore datafile 4;


recover datafile 4;


sql 'alter database datafile 4 online';


Do you really want to execute the above repair (enter YES or NO)?



Dengan Asumsi saya pilih YES untuk repair, maka selanjutnya



executing repair script


sql statement: alter database datafile 4 offline


Starting restore at 15-JUL-07


using channel ORA_DISK_1


channel ORA_DISK_1: restoring datafile 00004


input datafile copy RECID=5 STAMP=628025835 file name=/home/oracle/flasharea


/PRODB3/datafile/o1_mf_users_39ocxbv3_.dbf


destination for restore of datafile 00004: /home/oracle/oradata/PRODB3/users01.dbf


channel ORA_DISK_1: copied datafile copy of datafile 00004


output file name=/home/oracle/oradata/PRODB3/users01.dbf RECID=0 STAMP=0


Finished restore at 15-JUL-07


Starting recover at 15-JUL-07


using channel ORA_DISK_1


starting media recovery


archived log for thread 1 with sequence 51 is already on disk as file /home/oracle/


flasharea/PRODB3/archivelog/2007_07_15/o1_mf_1_51_39ocxxdw_.arc


... and so on ...


name=/home/oracle/flasharea/PRODB3/archivelog/2007_07_15/o1_mf_1_55_39ocy9ox_.arc thread=1 sequence=55


media recovery complete, elapsed time: 00:00:01


Finished recover at 15-JUL-07


sql statement: alter database datafile 4 online


repair failure complete


Tidak ada komentar: