Bài viết này sẽ hướng dẫn bạn cách khôi phục lại CSDL khi bị mất Online Redo logfile.
Các công việc thực hiện:
- Kiểm tra logfile hiện tại
- Xoá redo logfile trong OS level
- Shutdown instance và starup mount
- Kết nối rman để tiến hành restore
- Kiểm tra kết quả sau khi restore
Kiểm tra logfile hiện tại: Chú ý số sequence hiện tại
select member from v$logfile; select * from v$log;
SQL> select member from v$logfile;
MEMBER
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————–
/u01/app/oracle/oradata/DUODB/onlinelog/o1_mf_3_m3v6f9d1_.log
/u01/app/oracle/fast_recovery_area/DUODB/onlinelog/o1_mf_3_m3v6fb1q_.log
/u01/app/oracle/oradata/DUODB/onlinelog/o1_mf_2_m3v6f858_.log
/u01/app/oracle/fast_recovery_area/DUODB/onlinelog/o1_mf_2_m3v6f8rc_.log
/u01/app/oracle/oradata/DUODB/onlinelog/o1_mf_1_m3v6f6y4_.log
/u01/app/oracle/fast_recovery_area/DUODB/onlinelog/o1_mf_1_m3v6f7ld_.log
6 rows selected.
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME CON_ID
———- ———- ———- ———- ———- ———- — —————- ————- ——— ———— ——— ———-
1 1 1 209715200 512 2 NO CURRENT 2383296 10-MAY-24 1.8447E+19 0
2 1 0 209715200 512 2 YES UNUSED 0 0 0
3 1 0 209715200 512 2 YES UNUSED 0 0 0
Xoá hết file redo logfile trên hệ thống (giả lập có lỗi):
exit cd /u01/app/oracle/oradata/DUODB/onlinelog rm -rf * cd /u01/app/oracle/fast_recovery_area/DUODB/onlinelog rm -rf *
=> check lỗi xuất hiện trên alert_log
Tìm đường dẫn alert log:
find /u01/app/oracle/diag -name alert_* | grep duodb tail -100f /u01/app/oracle/diag/rdbms/duodb/duodb/trace/alert_duodb.log
[oracle@srv1 onlinelog]$ find /u01/app/oracle/diag -name alert_* | grep duodb
/u01/app/oracle/diag/rdbms/duodb/duodb/trace/alert_duodb.log
Tắt DB và khởi động trong mount:
shut immediate startup mount
Kết nối rman và tiến hành restore về số sequence cuối cùng: (check ở bên trên khi xem trong v$log)
rman target / run { set until sequence 1; restore database; recover database; alter database open resetlogs; }
starting media recovery
archived log for thread 1 with sequence 6 is already on disk as file /u01/app/oracle/fast_recovery_area/DUODB/archivelog/2024_05_10/o1_mf_1_6_m3wn0p3q_.arc
archived log for thread 1 with sequence 7 is already on disk as file /u01/app/oracle/fast_recovery_area/DUODB/archivelog/2024_05_10/o1_mf_1_7_m3wn0p11_.arc
archived log file name=/u01/app/oracle/fast_recovery_area/DUODB/archivelog/2024_05_10/o1_mf_1_6_m3wn0p3q_.arc thread=1 sequence=6
archived log file name=/u01/app/oracle/fast_recovery_area/DUODB/archivelog/2024_05_10/o1_mf_1_7_m3wn0p11_.arc thread=1 sequence=7
media recovery complete, elapsed time: 00:00:01
Finished recover at 11-MAY-24
Statement processed
Kiểm tra thông tin DB:
select name,open_mode from v$database;
RMAN> select name,open_mode from v$database;
NAME OPEN_MODE
——— ——————–
DUODB READ WRITE
Chúc các bạn thành công.