溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么理解Oracle Data Recovery Advisor

發(fā)布時(shí)間:2021-11-04 17:31:22 來源:億速云 閱讀:156 作者:柒染 欄目:建站服務(wù)器

這篇文章將為大家詳細(xì)講解有關(guān)怎么理解Oracle Data Recovery Advisor,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

對(duì)DBA而言,數(shù)據(jù)備份、還原是日常工作的基本功。Oracle發(fā)展到今天,自動(dòng)化、智能化是一個(gè)重要的發(fā)展方向。數(shù)據(jù)庫可以自動(dòng)的診斷問題故障,并且解決修復(fù)錯(cuò)誤,可能離我們并不遙遠(yuǎn)。

數(shù)據(jù)備份和還原,在Oracle DBA學(xué)習(xí)過程中,占到了很大的篇幅。從冷備份到熱備份,從完全恢復(fù)到非完全恢復(fù),這個(gè)過程中涉及了很多的技術(shù)細(xì)節(jié)和知識(shí)點(diǎn)。一些DBA初始接觸這些概念和操作,容易被弄亂。Oracle 11g推出的Data Recovery Advisor,就是提供給我們一個(gè)自動(dòng)診斷、修復(fù)數(shù)據(jù)庫的選擇。

 

1、Advisor

 

9i10g開始,我們就開始接觸各種的Advisor。從內(nèi)存大小,例如SGABuffer CachePGA,到存儲(chǔ)段結(jié)構(gòu)Segment Space AdvisorSQL Tuning Advisor,Oracle在試圖構(gòu)建起一個(gè)Advisor Framework

 

OracleAdvisor大都是有“后臺(tái)運(yùn)行、自動(dòng)建議”的特點(diǎn)。這些Advisor往往是和Oracle自動(dòng)后臺(tái)作業(yè)綁定,由一個(gè)或者多個(gè)后臺(tái)進(jìn)程進(jìn)行自動(dòng)信息收集診斷,并且最后生成診斷建議。

 

應(yīng)該說,AdvisorOracle邁向自動(dòng)化、智能化的一個(gè)重要戰(zhàn)略步驟。本篇介紹的Data Recovery Advisor就是應(yīng)用于數(shù)據(jù)恢復(fù)領(lǐng)域的一個(gè)重要Advisor組件。

 

Data Recovery Advisor(以下簡(jiǎn)稱DRA)是Oracle的一個(gè)內(nèi)置(Build-In)工具,用于進(jìn)行數(shù)據(jù)錯(cuò)誤、損壞的報(bào)告和修復(fù)建議。比如,DRA能夠自動(dòng)發(fā)現(xiàn)當(dāng)前存在壞塊,并且查看備份資料庫(RMAN),給出修復(fù)建議和語句。DRA甚至可以做到“一鍵式”的恢復(fù),敲一個(gè)修復(fù)命令,就自動(dòng)執(zhí)行修復(fù)腳本,將錯(cuò)誤解除。

 

 

DRA是和Oracle經(jīng)典備份還原工具RMAN綁定使用的。DRA是自動(dòng)在后臺(tái)進(jìn)行數(shù)據(jù)庫狀態(tài)檢查和數(shù)據(jù)收集,一旦發(fā)現(xiàn)錯(cuò)誤,就會(huì)自動(dòng)的進(jìn)行修復(fù)建議的提示。DRA目前可以在兩種方式下進(jìn)行工作,一個(gè)是數(shù)據(jù)庫啟動(dòng)障礙,比如啟動(dòng)過程報(bào)錯(cuò)。另一個(gè)是運(yùn)行過程障礙,例如運(yùn)行中數(shù)據(jù)庫異常損壞(如數(shù)據(jù)文件被后臺(tái)刪除)。

 

目前DRA可以支持User界面和命令行兩種方式工作。在OEM中,我們點(diǎn)擊修復(fù)鏈接,查看或者直接解決問題。在命令行中,我們可以使用RMAN的命令進(jìn)行處理。

 

2、環(huán)境準(zhǔn)備

 

所謂,“巧婦難為無米之炊”。應(yīng)該注意:DRA是一個(gè)自動(dòng)輔助工具,對(duì)DBA而言,是一個(gè)規(guī)范操作的輔助者,而不是“點(diǎn)石成金”的“萬靈藥”。DRA進(jìn)行數(shù)據(jù)恢復(fù)所依據(jù)的,也是Oracle原有的備份還原體系,并沒有引入什么特殊功能。換句話說,一個(gè)非歸檔、無備份、無冗余配置的數(shù)據(jù)庫,有致命錯(cuò)誤發(fā)生的時(shí)候,DRA也是無能為力的。

 

這也就是說,備份還是要做。我們首先在實(shí)驗(yàn)前,進(jìn)行一個(gè)完整備份。選擇Oracle 11g進(jìn)行實(shí)驗(yàn),開啟歸檔模式。

 

 

[oracle@bspdev ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Fri Sep 6 06:09:29 2013

 

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

 

SQL> conn / as sysdba

Connected to an idle instance.

 

SQL> startup mount

ORACLE instance started.

 

Total System Global Area  849530880 bytes

(篇幅原因,有省略……

Redo Buffers                5132288 bytes

Database mounted.

 

--查看是否歸檔模式

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     172

Next log sequence to archive   174

Current log sequence           174

 

 

使用RMAN進(jìn)行一個(gè)全備份。

 

 

SQL> alter database open;

Database altered.

 

[oracle@bspdev ~]$ rman nocatalog

 

Recovery Manager: Release 11.2.0.1.0 - Production on Fri Sep 6 06:14:28 2013

 

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

 

RMAN> connect target /

 

connected to target database: WILSON (DBID=3906514064)

using target database control file instead of recovery catalog

 

RMAN> backup database plus archivelog delete input;

 

Starting backup at 06-SEP-13

current log archived

(略過細(xì)節(jié)......

 

 

RMAN中,我們可以使用list failure all;DRA命令來查看當(dāng)前存在的錯(cuò)誤列表。

 

 

RMAN> list failure all;

no failures found that match specification

 

 

下面,我們分別選擇啟動(dòng)過程和運(yùn)行過程兩個(gè)場(chǎng)景進(jìn)行恢復(fù)演示。

 

3、啟動(dòng)過程數(shù)據(jù)庫故障演示

 

在啟動(dòng)過程出現(xiàn)數(shù)據(jù)庫錯(cuò)誤占到了數(shù)據(jù)庫錯(cuò)誤的相當(dāng)比例。DRA是可以在這個(gè)過程中幫助我們解決問題的。

 

首先,我們先制造一個(gè)問題。當(dāng)前存在兩個(gè)控制文件,互為備份。

 

 

SQL> col name for a100;

SQL> select name from v$controlfile;

 

NAME

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

/u01/oradata/WILSON/controlfile/o1_mf_7xt44jkr_.ctl

/u01/flash_recovery_area/WILSON/controlfile/o1_mf_7xt44kbv_.ctl

 

 

意外中斷系統(tǒng),刪除一個(gè)控制文件。

 

 

SQL> conn / as sysdba

Connected.

SQL> shutdown abort;  

ORACLE instance shut down.

 

[oracle@bspdev ~]$ cd /u01/oradata/WILSON/controlfile/

[oracle@bspdev controlfile]$ ls -l

total 9856

-rw-r----- 1 oracle oinstall 10076160 Sep  6 06:36 o1_mf_7xt44jkr_.ctl

[oracle@bspdev controlfile]$ mv o1_mf_7xt44jkr_.ctl o1_mf_7xt44jkr_.ctl.bak

[oracle@bspdev controlfile]$ ls -l

total 9856

-rw-r----- 1 oracle oinstall 10076160 Sep  6 06:36 o1_mf_7xt44jkr_.ctl.bak

 

 

再次啟動(dòng)的時(shí)候,數(shù)據(jù)庫必然會(huì)有一個(gè)報(bào)錯(cuò)的動(dòng)作。

 

 

SQL> conn / as sysdba

Connected to an idle instance.

SQL> startup

ORACLE instance started.

 

Total System Global Area  849530880 bytes

Fixed Size                  1339824 bytes

Variable Size             616566352 bytes

Database Buffers          226492416 bytes

Redo Buffers                5132288 bytes

ORA-00205: error in identifying control file, check alert log for more info

 

 

定位控制文件失敗,從alert log中找到內(nèi)容。

 

 

MMNL started with pid=16, OS id=4418

starting up 1 shared server(s) ...

ORACLE_BASE from environment = /u01

Fri Sep 06 07:06:42 2013

ALTER DATABASE   MOUNT

ORA-00210: cannot open the specified control file

ORA-00202: control file: '/u01/oradata/WILSON/controlfile/o1_mf_7xt44jkr_.ctl'

ORA-27037: unable to obtain file status

Linux Error: 2: No such file or directory

Additional information: 3

ORA-205 signalled during: ALTER DATABASE   MOUNT...

Fri Sep 06 07:06:44 2013

Checker run found 1 new persistent data failures

 

 

在進(jìn)入mount階段的時(shí)候,Oracle發(fā)現(xiàn)control file不能讀取的問題。注意alert log片段的最后一行,Oracle說:我引入的checker不斷在進(jìn)行輪詢過程,發(fā)現(xiàn)這個(gè)問題還存在。這個(gè)時(shí)候,熟練的DBA是可以繼續(xù)工作的,或者用備份進(jìn)行恢復(fù),或者拷貝一個(gè)完全版本。但是在DRA時(shí)代,我們還可以“問問Oracle Advisor怎么辦?”。

 

此時(shí),我們使用rman,來查看信息。

 

 

RMAN> list failure ;

 

List of Database Failures

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

 

Failure ID Priority Status    Time Detected Summary

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

3842       CRITICAL OPEN      06-SEP-13     Control file /u01/oradata/WILSON/controlfile/o1_mf_7xt44jkr_.ctl is missing

 

 

信息非常詳細(xì),Oracle給這個(gè)錯(cuò)誤一個(gè)編號(hào),并且分了級(jí)別,有了說明信息。明確說明問題在哪兒。

 

List failure命令是將所有的錯(cuò)誤失敗顯示出來,我們還可以針對(duì)一個(gè)failure id進(jìn)行信息顯示。

 

 

RMAN> list failure 3842 detail;

 

List of Database Failures

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

 

Failure ID Priority Status    Time Detected Summary

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

3842       CRITICAL OPEN      06-SEP-13     Control file /u01/oradata/WILSON/controlfile/o1_mf_7xt44jkr_.ctl is missing

  Impact: Database cannot be mounted

 

 

List failure是第一個(gè)DRA命令。Advise failure是問問Oracle怎么辦?

 

 

RMAN> advise failure;

 

List of Database Failures

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

Failure ID Priority Status    Time Detected Summary

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

3842       CRITICAL OPEN      06-SEP-13     Control file /u01/oradata/WILSON/controlfile/o1_mf_7xt44jkr_.ctl is missing

  Impact: Database cannot be mounted

 

analyzing automatic repair options; this may take some time

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=20 device type=DISK

analyzing automatic repair options complete

 

Mandatory Manual Actions

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

no manual actions available

 

Optional Manual Actions

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

no manual actions available

 

Automated Repair Options

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

Option Repair Description –可用的修復(fù)措施

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

1      Use a multiplexed copy to restore control file /u01/oradata/WILSON/controlfile/o1_mf_7xt44jkr_.ctl 

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

  Repair script. /u01/diag/rdbms/wilson/wilson/hm/reco_148645850.hm

 

 

Oracle DRA說,我們可以使用Control File的另一個(gè)冗余拷貝進(jìn)行恢復(fù)。并且給出了一個(gè)repair script。

 

 

[oracle@bspdev controlfile]$ cat cat /u01/diag/rdbms/wilson/wilson/hm/reco_148645850.hm

cat: cat: No such file or directory

   # restore control file using multiplexed copy

   restore controlfile from '/u01/flash_recovery_area/WILSON/controlfile/o1_mf_7xt44kbv_.ctl';

   sql 'alter database mount';

 

 

兩條語句,都是要求在rman下面運(yùn)行。一個(gè)是使用當(dāng)前鏡像文件進(jìn)行恢復(fù),另一個(gè)是啟動(dòng)數(shù)據(jù)庫。

 

我們聽從DRA的指令,手工運(yùn)行一下腳本命令。此時(shí),數(shù)據(jù)庫處在一個(gè)中間啟動(dòng)狀態(tài)。

 

 

--實(shí)例已經(jīng)啟動(dòng)

[oracle@bspdev controlfile]$ ps -ef | grep pmon

oracle    4360     1  0 07:06 ?        00:00:00 ora_pmon_wilson

oracle    4551  3270  0 07:15 pts/0    00:00:00 grep pmon

 

SQL> select status from v$instance;

 

STATUS

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

STARTED

 

 

RMAN中執(zhí)行程序腳本。

 

 

--執(zhí)行腳本命令

RMAN> restore controlfile from '/u01/flash_recovery_area/WILSON/controlfile/o1_mf_7xt44kbv_.ctl';

 

Starting restore at 06-SEP-13

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=1 device type=DISK

 

channel ORA_DISK_1: copied control file copy

output file name=/u01/oradata/WILSON/controlfile/o1_mf_7xt44jkr_.ctl

output file name=/u01/flash_recovery_area/WILSON/controlfile/o1_mf_7xt44kbv_.ctl

Finished restore at 06-SEP-13

 

RMAN> sql 'alter database mount';

 

sql statement: alter database mount

released channel: ORA_DISK_1

 

 

此時(shí),數(shù)據(jù)庫可以順利的open,并且原來的list failure錯(cuò)誤信息消失。

 

 

--進(jìn)入open狀態(tài)

SQL> conn / as sysdba

Connected.

SQL> select status from v$instance;

 

STATUS

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

MOUNTED

 

SQL> alter database open;

Database altered.

 

[oracle@bspdev controlfile]$ ls -l

total 19712

-rw-r----- 1 oracle oinstall 10076160 Sep  6 07:21 o1_mf_7xt44jkr_.ctl

-rw-r----- 1 oracle oinstall 10076160 Sep  6 06:36 o1_mf_7xt44jkr_.ctl.bak

 

RMAN> list failure all;

no failures found that match specification

 

這個(gè)案例告訴我們,RMAN中的DRA可以做到在啟動(dòng)過程中,不斷診斷發(fā)現(xiàn)問題,提供解決方案。更重要的是還可以提供狀態(tài)修改的腳本語句。

 

下面,我們進(jìn)行一個(gè)Open狀態(tài)故障的診斷,并且看看怎么在DRA如何實(shí)現(xiàn)“一鍵式”系統(tǒng)修復(fù)。


關(guān)于怎么理解Oracle Data Recovery Advisor就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI