Oracle 11g 新特性ITeye - AG环亚娱乐

Oracle 11g 新特性ITeye

2019年03月24日13时34分25秒 | 作者: 傲柔 | 标签: 毛病,指令,修正 | 浏览: 1196

一.Data Recovery Advisor(DRA) 阐明

 

1.1 DRA 阐明

DRA在遇到过错时会主动搜集数据毛病信息。此外,它还能预先查看毛病。在此形式中,它能够在数据库进程发现损坏并发送过错音讯之前检测和剖析数据毛病(请留意,修正一直在人为操控之下进行)。

数据毛病或许十分严峻。例如,假如短少最新的日志文件,则无法发动数据库。一些数据毛病(如数据文件中的块损坏)不是灾难性毛病,由于它们不会使数据库停机,也不会阻挠您发动Oracle 实例。数据康复辅导可处理以下两种状况:一种状况是您无法发动数据库(由于短少一些必需的数据库文件,或许这些数据库文件不一致或已损坏),另一种状况是运转时发现文件损坏。

处理严峻数据毛病的首选办法是首先将毛病转移至备用数据库(条件是在Data Guard 装备下),这样用户就能够赶快康复联机。然后,需求修正数据毛病的主要原因,但走运的是,此操作不会影响用户。

 

 

 

1.3 RMAN中运用DRA 过程

Oracle的OEM现已很智能,这些操作在OEM上都能够进行,咱们这儿只看运用RMAN 指令来完结的过程。

 

假如置疑或已知道数据库呈现毛病,则可运用LIST FAILURE 指令取得关于这些毛病的信息。能够列出一切毛病或部分毛病并以多种方法约束输出。毛病由毛病号进行仅有标识。请留意,这些毛病号不是接连的,因而它们之间的距离没有任何含义。

ADVISE FAILURE 指令将显现为指定毛病主张的修正选项。它可打印输入毛病概要并隐式封闭已修正的一切翻开的毛病。没有运用任何选项时,默许行为是对记载在ADR 中优先级为CRITICAL 和HIGH的一切毛病供给主张。

在同一RMAN 会话中REPAIR FAILURE 指令在ADVISE FAILURE 指令后运用。默许状况下,该指令运用当时会话中前次履行ADVISEFAILURE 指令时主张的一个修正选项。假如没有任何修正选项,REPAIR FAILURE 指令将发动隐式ADVISE FAILURE 指令。修正完结后,该指令会封闭毛病。

CHANGE FAILURE 指令将更改毛病优先级或封闭一个或多个毛病。仅能够更改HIGH 或LOW 毛病优先级。修正毛病后,将隐式封闭翻开的毛病。可是,也能够显式封闭毛病。

 

1.3.1 列出数据毛病

RMAN LISTFAILURE 指令可列出毛病。假如方针实例运用康复目录,它能够处于STARTED 形式下,不然有必要处于MOUNTED 形式下。LIST FAILURE 指令不发动确诊新毛病查看;它将列出从前履行的评价成果。重复履行LIST FAILURE 指令将从头验证一切现有的毛病。

假如数据库确诊出新的毛病(在指令履行之间),则会显现这些新毛病。

假如用户手动修正毛病或暂时毛病消失,则数据康复辅导会将这些毛病从LIST FAILURE 输出中删去。

 

以下是语法阐明:

(1) failnum:为其显现修正选项的毛病数。

(2) ALL:列出一切优先级的毛病。

(3) CRITICAL:列出优先级为CRITICAL 且处于OPEN 状况的毛病。这些毛病使整个数据库不行用(如操控文件缺失),因而需求当即引起留意。

(4) HIGH:列出优先级为HIGH 且处于OPEN状况的毛病。这些毛病使数据库部分不行用或不行康复,因而应赶快修正(如归档重做日志缺失)。

(5) LOW:列出优先级为LOW 且处于OPEN状况的毛病。低优先级的毛病能够比及修正了更重要的毛病后再进行修正。

(6) CLOSED:仅列出封闭的毛病。

(7) EXCLUDE FAILURE:从列表中扫除指定的毛病号。

(8) DETAIL:经过翻开兼并的毛病列出毛病。例如,假如一个文件中有多个块损坏,则DETAIL选项将列出每个块损坏。

 

如:

RMAN LIST FAILURE;

RMAN LIST FAILURE DETAIL;

 

1.3.2 修正主张

RMAN ADVISE FAILURE 指令可显现指定毛病的主张修正选项。假如从Enterprise Manager 中履行此指令,则Data Guard 将显现一个修正选项(可是,假如直接从RMAN 指令行履行此指令,则Data Guard 不会显现修正选项)。ADVISE FAILURE 指令可打印输入毛病概要。该指令会隐式封闭已修正的一切翻开的毛病。

没有运用任何选项时,默许行为是对记载在主动确诊材料档案库(ADR) 中优先级为CRITICAL 和HIGH 的一切毛病供给主张。假如自前次履行LIST FAILURE 指令后ADR 中记载了新毛病,则在对一切CRITICAL 和HIGH 毛病供给主张前,该指令将包含一个WARNING。

 

履行两个惯例修正选项:无数据丢掉修正和数据丢掉修正。

DRA在生成主动修正选项时会生成一个脚本,用于显现RMAN 方案怎么修正毛病。假如不期望数据康复辅导主动修正毛病,可从该脚本开端履行手动修正。该脚本的操作体系(OS) 方位将显现在指令输出的结尾。能够查看此脚本,并对其进行自定义(假如需求),还能够手动履行该脚本(例如在审计头绪要求主张履行手动操作时)。

 

RMANADVISE FAILURE 指令有以下用处:

(1) 显现输入毛病列表概要

(2) 包含正告(假如ADR 中呈现新毛病)

(3) 显现手动核对清单

(4) 列出一个主张的修正选项

(5) 生成修正脚本(用于主动或手动修正)

. . .

Repair script:

/u01/app/oracle/diag/rdbms/orcl/orcl/hm/reco_2979128860.hm

RMAN

 

 

语法:

ADVISE FAILURE

[ ALL | CRITICAL | HIGH | LOW |failnum[,failnum,…] ]

[ EXCLUDE FAILURE failnum [,failnum,…] ]

 

1.3.3 履行修正

此指令应在同一RMAN 会话中的ADVISE FAILURE 指令后运用。默许状况下(没有选项),该指令运用当时会话中前次履行ADVISE FAILURE 时主张的一个修正选项。假如没有任何修正选项,REPAIRFAILURE 指令将发动隐式ADVISE FAILURE 指令。

默许状况下,您需求承认是否履行该指令,由于或许需求花费时刻完结很多更改。在履行修正期间,该指令的输出将标明正在履行的修正阶段。

修正完结后,该指令会封闭毛病。

 

语法:

REPAIR FAILURE

[PREVIEW]

[NOPROMPT]

 

无法运转多个并发修正会话。可是,答应并发REPAIR … PREVIEW 会话。

(1) PREVIEW 表明:不履行修正,而是显现从前生成的包含一切修正操作和注释的RMAN 脚本。

(2) NOPROMPT 表明:不要求承认。

 

修正毛病示例

RMAN REPAIR FAILURE PREVIEW;

RMAN REPAIR FAILURE;

 

RMANREPAIR FAILURE 指令有以下用处:

(1) 遵从ADVISE FAILURE 指令

(2) 修正指定的毛病

(3) 封闭已修正的毛病

 

1.4 分类(和封闭)毛病

CHANGE FAILURE 指令用于更改毛病优先级或封闭一个或多个毛病。

 

语法:

CHANGE FAILURE

{ ALL | CRITICAL | HIGH | LOW |failnum[,failnum,…] }

[ EXCLUDE FAILURE failnum[,failnum,…] ]

{ PRIORITY {CRITICAL | HIGH | LOW} |

CLOSE } - 将毛病的状况更改为已封闭

[ NOPROMPT ] - 不要求用户进行承认

 

只能将毛病优先级从HIGH 更改为LOW 和从LOW 更改为HIGH。更改CRITICAL 优先级会呈现过错。(将毛病的优先级从HIGH 更改为LOW 的一个原因是为了防止该毛病显现在LIST FAILURE 指令的默许输出列表中。例如,假如块损坏具有HIGH 优先级,则该块坐落很少运用的表空间中时,您或许期望将其暂时更改为LOW。)

修正毛病后,将隐式封闭翻开的毛病。可是,也能够显式封闭毛病。这需求从头评价其它一切翻开的毛病,由于其间的某些毛病会因毛病封闭而变得不相关。

默许状况下,该指令要求用户承认恳求的更改。

 

1.5 DRA相关的视图

查询动态数据字典视图:

(1) V$IR_FAILURE:一切毛病的列表,包含已封闭的毛病(LIST FAILURE 指令的成果)

(2) V$IR_MANUAL_CHECKLIST:手动主张的列表(ADVISE FAILURE指令的成果)

(3) V$IR_REPAIR:修正列表(ADVISE FAILURE 指令的成果)

(4) V$IR_FAILURE_SET:毛病和主张标识符的穿插引证

 

1.6 预防性查看

关于十分重要的数据库,或许需求履行其它预防性查看(能够在每天的低峰时段履行)。

可经过健康状况监视器或运用RMANVALIDATE 指令组织定时的健康状况查看。一般,假如被迫查看在数据库组件中检测到毛病,则或许需求对受影响的组件履行更全面的查看。

RMAN VALIDATE DATABASE 指令用于调用对数据库及其组件的健康状况查看。它扩展了现有的VALIDATE BACKUPSET 指令。在验证期间检测到的一切问题都会显现出来,这些问题进而会发动毛病评价。假如检测到毛病,则该毛病会作为查找成果记载到ADR中。能够运用LIST FAILURE 指令查看材料档案库中记载的一切毛病。

VALIDATE 指令支撑对单个备份集和数据块进行验证。在物理损坏中,数据库底子无法辨认块。在逻辑损坏中,块的内容在逻辑上不一致。默许状况下,VALIDATE 指令只查看物理损坏。也能够指定CHECK LOGICAL 查看逻辑损坏。

块损坏可分为块间损坏和块内损坏。在块内损坏中,块自身发作损坏,能够是物理损坏也能够是逻辑损坏。在块间损坏中,块与块之间发作的损坏只能是逻辑损坏。VALIDATE 指令只查看块内损坏。

 

调用对数据库及其组件的预防性健康状况查看:

(1) 健康状况监视器或RMAN VALIDATE DATABASE 指令

(2) 查看逻辑和物理损坏

(3) 在ADR 中记载查找成果

 

二.DRA 示例

 

2.1 创立毛病

 

SQL select file_name fromdba_data_files;

 

FILE_NAME

/u01/app/oracle/oradata/anqing/dave01.dbf

/u01/app/oracle/oradata/anqing/users01.dbf

/u01/app/oracle/oradata/anqing/undotbs01.dbf

/u01/app/oracle/oradata/anqing/sysaux01.dbf

/u01/app/oracle/oradata/anqing/system01.dbf

/u01/app/oracle/oradata/anqing/example01.dbf

 

损坏users01.dbf 数据文件:

[oracle@dave anqing]$ pwd

/u01/app/oracle/oradata/anqing

[oracle@dave anqing]$ ll users01.dbf

-rw-r- 1 oracle oinstall 34086912 10ÔÂ11 22:52 users01.dbf

[oracle@dave anqing]$ echo users01.dbf

[oracle@dave anqing]$ ll users01.dbf

-rw-r- 1 oracle oinstall 1 10ÔÂ 1122:55 users01.dbf

 

在users表空间上创立表:anqing

SQL create table anqing(id number)tablespace users;

create table anqing(id number) tablespaceusers

*

ERROR at line 1:

ORA-01115: IO error reading block fromfile (block # )

ORA-01110: data file 4:/u01/app/oracle/oradata/anqing/users01.dbf

ORA-27072: File I/O error

Additional information: 4

Additional information: 3

 

过错信息会写入ADR,验证:

adrci show homepath

ADR Homes:

diag/rdbms/dave/dave

diag/tnslsnr/dave/listener

adrci set homepath diag/rdbms/dave/dave

adrci show alert -tail

2012-10-11 22:53:39.334000 +08:00

Starting background process SMCO

SMCO started with pid=33, OS id=11016

2012-10-1122:56:34.746000 +08:00

Checker run found 1 newpersistent data failures

 

 

2.2 RMAN LIST FAILURE

 

[oracle@dave ~]$rman target /

 

Recovery Manager: Release 11.2.0.3.0 -Production on Thu Oct 11 23:06:52 2012

 

Copyright (c) 1982, 2011, Oracle and/or itsaffiliates. All rights reserved.

 

connected to target database: DAVE(DBID=856255083)

 

RMAN list failure;

 

using target database control file insteadof recovery catalog

List of Database Failures

=

 

Failure ID Priority Status Time Detected Summary

-

282 HIGH OPEN 11-OCT-12 One or morenon-system datafiles are corrupt

 

留意:

Listfailure 指令会显现任何open 状况的failures,并会优先显现critical 或high的failure,假如没有相似的failure,那么会显现low 的failures。

 

2.3 RMAN ADVISE FAILURE

 

RMAN advise failure;

 

List of Database Failures

=

 

Failure ID Priority Status Time Detected Summary

-

282 HIGH OPEN 11-OCT-12 One or more non-system datafiles arecorrupt

 

analyzing automatic repair options; thismay take some time

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=18 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

1 Restore and recover datafile 4

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

Repair script: /u01/app/oracle/diag/rdbms/dave/dave/hm/reco_1992614502.hm

 

这儿能康复的条件是有有用的RMAN 备份,不然这儿不能进行restore。

 

这个是康复的脚本:能够手动履行,也能够运用主动履行:

[oracle@dave ~]$cat/u01/app/oracle/diag/rdbms/dave/dave/hm/reco_1992614502.hm

#restore and recover datafile

restore datafile 4;

recover datafile 4;

sql alter database datafile 4 online;

 

2.4 RMAN REPAIR FAILURE

 

RMAN repair failure preview;

 

Strategy: The repair includes completemedia recovery with no data loss

Repair script:/u01/app/oracle/diag/rdbms/dave/dave/hm/reco_1992614502.hm

 

contents of repair script:

#restore and recover datafile

restore datafile 4;

recover datafile 4;

sql alter database datafile 4 online;

 

默许状况下,repair failure 指令会提示用户承认修正,这儿咱们运用noprompt越过验证:

RMAN repair failure noprompt;

 

Strategy: The repair includes completemedia recovery with no data loss

Repair script:/u01/app/oracle/diag/rdbms/dave/dave/hm/reco_1992614502.hm

 

contents of repair script:

#restore and recover datafile

restore datafile 4;

recover datafile 4;

sql alter database datafile 4 online;

executing repair script

 

Starting restore at 11-OCT-12

using channel ORA_DISK_1

 

channel ORA_DISK_1: starting datafilebackup set restore

channel ORA_DISK_1: specifying datafile(s)to restore from backup set

channel ORA_DISK_1: restoring datafile00004 to /u01/app/oracle/oradata/anqing/users01.dbf

channel ORA_DISK_1: reading from backuppiece /u01/backup/ave_lev0_0bnnh6co_1_1_20121011

channel ORA_DISK_1: piecehandle=/u01/backup/ave_lev0_0bnnh6co_1_1_20121011 tag=DAVE_LEV0

channel ORA_DISK_1: restored backup piece 1

channel ORA_DISK_1: restore complete,elapsed time: 00:00:07

Finished restore at 11-OCT-12

 

Starting recover at 11-OCT-12

using channel ORA_DISK_1

 

starting media recovery

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

 

Finished recover at 11-OCT-12

 

sql statement: alter database datafile 4online

repair failure complete

database opened

 

RMAN

 

2.5 RMAN CHANGE FAILURE

Change failure 指令能够改动failure的等级,在2.2 节,咱们的failure等级是high。假如有一个failure,在咱们没有修正之前,或许暂时不想修正,那么咱们就能够调低它的等级,等级的修正不影响体系的正常运用。

如:

RMAN CHANGEFAILURE 282 PRIORITY LOW;

 

2.6 验证 VALIDATE

 

# Check for physical corruption of alldatabase files.

VALIDATE DATABASE;

 

# Check for physical and logical corruptionof a tablespace.

VALIDATE CHECK LOGICAL TABLESPACE USERS;

 

# Check for physical and logical corruptionof a datafile.

VALIDATE CHECK LOGICAL DATAFILE 4;

 

# Check for physical corruption of allarchived redo logs files.

VALIDATE ARCHIVELOG ALL;

 

# Check for physical and logical corruptionof the controlfile.

VALIDATE CHECK LOGICAL CURRENT CONTROLFILE;

 

# Check for physical and logical corruptionof a specific backupset.

VALIDATE CHECK LOGICAL BACKUPSET 3;

 

# Check for physical corruption of files tobe backed up.

BACKUP VALIDATE DATABASE ARCHIVELOG ALL;

 

# Check for physical and logical corruptionof files to be backed up.

BACKUP VALIDATE CHECK LOGICAL DATABASEARCHIVELOG ALL;

 

# Check for physical corruption of files tobe restored.

RESTORE VALIDATE DATABASE;

 

# Check for physical and logical corruptionof files to be restored.

RESTORE VALIDATE CHECK LOGICAL DATABASE;

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表AG环亚娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1

    Oracle 11g 新特性ITeye

    毛病,指令,修正
  • 2
  • 3

    Oracle发送邮件ITeye

    邮件,发送,服务器
  • 4

    根本存储进程ITeye

    存储,进程,判别
  • 5

    NOSQL之旅ITeye

    咱们,能够,数据库
  • 6
  • 7
  • 8

    pro*c 动态sql二ITeye

    数据,过错,成功
  • 9
  • 10