曾經處理過硬碟上資料損毀或者資料丟失的問題嗎?結果,儘管你還處在診斷和分析問題發生的階段,終端使用者和經理已經聯絡你,並且希望知道解決問題的大概時間(ETA)了。你是否希望擁有一個簡單,並且更為重要的是,快速的方法來診斷和修複這種類型的故障呢?
繼續閱讀,來瞭解Oracle資料恢複顧問(DRA)在這種情況下是如何協助我們的吧!
資料恢複顧問(Data Recovery Advisor)是一款Oracle資料庫工具。該工具會自動診斷資料故障,確定並提出相應修複方案,並執行客戶要求的修複。以上修複是基於資料故障是一個硬碟上持久性資料的損壞或者丟失。
資料恢複顧問會在遇到問題時,自動採集資料故障資訊,並且,協助執行對於故障的修複。你可以手動修複一個資料故障,或者要求資料恢複顧問來為你執行修複動作。
DRA可以通過企業管理器(EM)Grid Control和/或者復原管理員(RMAN)來訪問。本文將概述在RMAN中使用的命令。
在RMAN中,有四種DRA的命令:
•List Failure - 列出先前執行過的故障評估結果。可能的話,重新驗證現有故障並關閉它們。
•Advise Failure - 提出手動和自動修複方案。
•Repair Failure - 通過運行由ADVISE FAILURE建議的最佳修複方案來自動修複故障。完成之後會重新驗證現有故障。
•Change Failure - 使你可以改變故障的狀態。
例如:下面的步驟有關於一次事故,當一個資料檔案已經從作業系統上刪除,資料庫報告錯誤。
一個select語句執行失敗,並報出如下錯誤:
SQL> select * from emp;
select * from emp
*
ERROR at line 1:
ORA-01116: error in opening database file 4
ORA-01110: data file 4: '/u01/V112_oradata/users01.dbf'
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3
DRA命令‘list failure’提供了此次問題的詳細資料:
Recovery Manager: Release 11.2.0.3.0 - Production on Wed Aug 21 10:12:36 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: V112 (DBID=2335388877)
RMAN> list failure;
using target database control file instead of recovery catalog
List of Database Failures
=========================
Failure ID Priority Status Time Detected Summary
---------- -------- --------- --------- --------------------------------------------
82 HIGH OPEN 21-AUG-13 One or more non-system datafiles are missing
做為DRA的下一步操作,使用命令'advise failure',獲得修複該問題的建議方案:
RMAN> advise failure;
List of Database Failures
=========================
Failure ID Priority Status Time Detected Summary
---------- -------- --------- ------------- -------
82 HIGH OPEN 21-AUG-13 One or more non-system datafiles are missing
analyzing automatic repair options; this may take some time
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=28 device type=DISK
analyzing automatic repair options complete
Mandatory Manual Actions
========================
no manual actions available
Optional Manual Actions
=======================
1. If file /u01/V112_oradata/users01.dbf was unintentionally renamed or moved, restore it
2. If file /u01/V112_oradata/test01.dbf was unintentionally renamed or moved, restore it
Automated Repair Options
========================
Option Repair Description
------ ------------------
1 Restore and recover datafile 4; Restore and recover datafile 5
Strategy: The repair includes complete media recovery with no data loss
Repair script: /u02/app/oracle/diag/rdbms/v112/V112/hm/reco_1311249797.hm
DRA資訊中描述了,2個資料檔案的缺失,並且建議還原和恢複。
如前所述,DRA可以修複故障。執行修複指令碼之前,可以預覽所建議的命令:
RMAN> repair failure preview;
Strategy: The repair includes complete media recovery with no data loss
Repair script: /u02/app/oracle/diag/rdbms/v112/V112/hm/reco_1311249797.hm
contents of repair script:
# restore and recover datafile
sql 'alter database datafile 4, 5 offline';
restore datafile 4, 5;
recover datafile 4, 5;
sql 'alter database datafile 4, 5 online';
現在,你可以決定是否手動運行上面的指令碼或讓DRA來執行修複:
RMAN> repair failure;
Strategy: The repair includes complete media recovery with no data loss
Repair script: /u02/app/oracle/diag/rdbms/v112/V112/hm/reco_1311249797.hm
contents of repair script:
# restore and recover datafile
sql 'alter database datafile 4, 5 offline';
restore datafile 4, 5;
recover datafile 4, 5;
sql 'alter database datafile 4, 5 online';
Do you really want to execute the above repair (enter YES or NO)? yes
executing repair script
sql statement: alter database datafile 4, 5 offline
Starting restore at 21-AUG-13
using channel ORA_DISK_1
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 00004 to /u01/V112_oradata/users01.dbf
channel ORA_DISK_1: restoring datafile 00005 to /u01/V112_oradata/test01.dbf
channel ORA_DISK_1: reading from backup piece
/u01/temp/flash_areas/V112/V112/backupset/2013_08_21/o1_mf_nnndf_TAG20130821T100251_919l4f2p_.bkp
channel ORA_DISK_1: piece
handle=/u01/temp/flash_areas/V112/V112/backupset/2013_08_21/o1_mf_nnndf_TAG20130821T100251_919l4f2p_.bkp
tag=TAG20130821T100251
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:35
Finished restore at 21-AUG-13
Starting recover at 21-AUG-13
using channel ORA_DISK_1
archived log for thread 1 with sequence 79 is already on disk as file
/u01/temp/flash_areas/V112/V112/archivelog/2013_08_21/o1_mf_1_79_919lm6y2_.arc
channel ORA_DISK_1: starting archived log restore to default destination
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=77
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=78
channel ORA_DISK_1: reading from backup piece
/u01/temp/flash_areas/V112/V112/backupset/2013_08_21/o1_mf_annnn_TAG20130821T101028_919llo3n_.bkp
channel ORA_DISK_1: piece
handle=/u01/temp/flash_areas/V112/V112/backupset/2013_08_21/o1_mf_annnn_TAG20130821T101028_919llo3n_.bkp
tag=TAG20130821T101028
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
archived log file name=/u01/temp/flash_areas/V112/V112/archivelog/2013_08_21/o1_mf_1_77_919ltj5h_.arc
thread=1 sequence=77
channel default: deleting archived log(s)
archived log file name=/u01/temp/flash_areas/V112/V112/archivelog/2013_08_21/o1_mf_1_77_919ltj5h_.arc
RECID=50 STAMP=824033680
archived log file name=/u01/temp/flash_areas/V112/V112/archivelog/2013_08_21/o1_mf_1_78_919ltj7o_.arc
thread=1 sequence=78
channel default: deleting archived log(s)
archived log file name=/u01/temp/flash_areas/V112/V112/archivelog/2013_08_21/o1_mf_1_78_919ltj7o_.arc
RECID=51 STAMP=824033680
media recovery complete, elapsed time: 00:00:00
Finished recover at 21-AUG-13
sql statement: alter database datafile 4, 5 online
repair failure complete
一旦成功完成修複指令碼,這個問題應該得到解決,並且select語句返回預期的結果:
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- -------- --------- ----- --------- ---- ----- ------
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
更多詳情見請繼續閱讀下一頁的精彩內容: