95-Oracle RMAN(Data Recovery Advisor)-DRA最佳使用

oracle db数据库修复 Oracle DB 执行数据库恢复 关于Data Recovery Advisor(数据恢复顾问) Data Recovery Advisor是一个内置工具,可自动诊断数据故障并报告适当的修复选项。 例如,如果其发现许多错误块,它建议还原整个文件,而不是修复单个块。因此,它可以帮助你对故障执行正确的修复。 您可以手动修复数据故障,也可以请求Data Recovery Advisor为您执行修复。这减少了从故障中恢复的时间。Dat... 阅读详情

RMAN Advisor 是 Oracle 数据库中的 ​Data Recovery Advisor(DRA)​​ 功能,集成在 RMAN(Recovery Manager)中,用于自动化诊断数据库故障并提供修复建议。其主要功能是识别数据损坏、文件丢失等问题,并生成恢复方案。比手动好用,强烈推荐,考试上最佳节约时间办法。

一、DRA 功能与技术原理

1. DRA 核心功能

Data Recovery Advisor (DRA) 是 Oracle 数据库内置的自动化故障诊断和恢复工具,集成在 RMAN 中,主要提供:
  • ​自动故障检测​:实时监控数据库物理结构完整性(数据文件、控制文件、重做日志等)
  • ​故障分级评估​:将故障分为 CRITICAL(严重)、HIGH(高)、LOW(低)三个优先级
  • ​智能修复建议​:生成手动操作指南和自动修复脚本
  • ​一键式恢复​:通过 REPAIR FAILURE 自动执行恢复操作
  • ​预防性维护​:结合 VALIDATE 命令提前发现潜在问题

2. 技术原理

  • ​故障检测引擎​:
    • 持续检查控制文件、数据文件头、日志文件等关键组件
    • 通过后台进程(如 SMON)收集数据库物理损坏信息
  • ​依赖关系分析​:
    • 构建故障关联图(如数据文件损坏需特定归档日志恢复)
    • 计算最优恢复路径(最小化数据丢失)
  • ​恢复策略生成​:
    • 基于备份元数据确定可恢复点(SCN)
    • 生成 RMAN 恢复脚本(存储在 $ORACLE_BASE/diag/rdbms///hm/)
  • ​安全执行机制​:
    • 预检查恢复条件(备份可用性、归档完整性)
    • 事务一致性保障(自动处理 resetlogs 等操作)

二、模拟实操:恢复 current redo 丢失故障

环境准备

 

# 创建归档目录
mkdir /opt/oracle/ARCH
chown oracle:oinstall /opt/oracle/ARCH

# 设置归档参数
sqlplus / as sysdba
ALTER SYSTEM SET log_archive_dest_1='location=/opt/oracle/ARCH';
ALTER SYSTEM SET log_archive_format="23ai_%t_%s_%r.arc" SCOPE=SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
--
Connected to:
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.8.0.25.04
SYS@FREE> ALTER SYSTEM SET log_archive_dest_1='location=/opt/oracle/ARCH';
System altered.
SYS@FREE> ALTER SYSTEM SET log_archive_format="23ai_%t_%s_%r.arc" SCOPE=SPFILE;
System altered.
SYS@FREE> SHUTDOWN IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE instance started.

Total System Global Area 1607248760 bytes
Fixed Size                  4922232 bytes
Variable Size             922746880 bytes
Database Buffers          402653184 bytes
Redo Buffers              276926464 bytes
Database mounted.
SYS@FREE>
Database altered.

SYS@FREE> ALTER DATABASE OPEN;

Database altered.

SYS@FREE> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 FREEPDB1                       READ WRITE NO

故障模拟步骤

创建测试数据

CREATE TABLE T4ARCH(id NUMBER, time VARCHAR2(100));
INSERT INTO T4ARCH VALUES (1, TO_CHAR(SYSDATE, 'yyyy-mm-dd hh24:mi:ss'));
COMMIT;
--
SYS@FREE> alter session set container=FREEPDB1;
Session altered.
CREATE TABLE T4ARCH(id NUMBER, time VARCHAR2(100));
INSERT INTO T4ARCH VALUES (1, TO_CHAR(SYSDATE, 'yyyy-mm-dd hh24:mi:ss'));
Table created.
SYS@FREE>
1 row created.
SYS@FREE> COMMIT;
Commit complete.

 执行 RMAN 全备​

rman target /
RUN {
  ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
  BACKUP DATABASE PLUS ARCHIVELOG;
  BACKUP CURRENT CONTROLFILE;
}

 模拟 current redo 丢失​

# 查询当前 redo
SELECT group#, status, member FROM v$logfile WHERE status='CURRENT';

# 重命名 current redo
mv /opt/oracle/oradata/FREE/redo03.log /opt/oracle/oradata/FREE/redo03.log.bak

模拟崩溃​

# 插入新数据(模拟 redo日志 写入)
INSERT INTO T4ARCH VALUES (2, TO_CHAR(SYSDATE, 'yyyy-mm-dd hh24:mi:ss'));
COMMIT;

# 强制kill
ps -ef | grep pmon
kill -9 <pmon_pid>
--
[root@OL97 ~]# ps -ef | grep pmon
oracle    230162       1  0 19:51 ?        00:00:00 db_pmon_FREE
root      230700  230642  0 19:57 pts/4    00:00:00 grep --color=auto pmon
[root@OL97 ~]# kill -9  230162

DRA 诊断恢复过程

启动数据库(预期失败)​​

STARTUP; 
# 报错 ORA-00313, ORA-00312
--
Connected to an idle instance.

SYS@FREE> startup
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE instance started.
Total System Global Area 1607248760 bytes
Fixed Size                  4922232 bytes
Variable Size             922746880 bytes
Database Buffers          402653184 bytes
Redo Buffers              276926464 bytes
Database mounted.
--
2025-06-27T20:24:55.974983+08:00
Errors in file /opt/oracle/diag/rdbms/free/FREE/trace/FREE_lgwr_231431.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/opt/oracle/oradata/FREE/redo03.log'

 DRA 故障诊断​

rman target SYS/Oracle_4U@10.2.0.97:1521/FREE
RMAN> LIST FAILURE;

# 输出示例:
# Failure ID Priority Status    Summary
# ---------- -------- --------- -----------------------------
# 1483       CRITICAL OPEN      Redo log group 3 is unavailable
# 1486       HIGH     OPEN      Redo log file ...redo03.log missing

获取修复建议​

RMAN> ADVISE FAILURE;

 执行自动修复​

# 查看修复脚本内容
cat /opt/oracle/diag/rdbms/free/FREE/hmreco_3026389520.hm

# 执行修复
RMAN> REPAIR FAILURE;

# 或手动执行脚本
RMAN> RESTORE DATABASE UNTIL SCN 7610450;
RMAN> RECOVER DATABASE UNTIL SCN 7610450;
RMAN> ALTER DATABASE OPEN RESETLOGS;

 恢复后验证​

SELECT * FROM T4ARCH; 
-- 数据显示 SCN 7610450 之前的数据

三、DRA 技术优势分析

与传统恢复对比

​恢复方式​

​传统方法​

​DRA 方式

故障诊断

手动查询 v$视图分析

自动检测并分级评估

恢复策略

DBA 凭经验设计恢复方案

自动生成最优恢复路径

操作复杂度

需精通 RMAN 命令

一键式自动修复

恢复时间

30+ 分钟(资深 DBA)

风险控制

人工操作易失误

预执行检查保障安全

DRA 核心技术亮点

SCN 查询

-- DRA 自动计算的最大可恢复 SCN
SELECT NEXT_CHANGE#-1 AS max_recoverable_scn 
FROM v$log WHERE group# = (SELECT group# FROM v$log WHERE status = 'CURRENT')-1;
--
MAX_RECOVERABLE_SCN
-------------------
            7610451
安全恢复机制​
  • 自动生成 OPEN RESETLOGS
  • 备份当前控制文件(before resetlogs)
  • 记录恢复审计信息到 ADR(Automatic Diagnostic Repository)
# 定期检查潜在问题
RMAN> VALIDATE DATABASE;

# 查看历史故障
SELECT * FROM v$ir_failure;

# 清理已解决故障
RMAN> CHANGE FAILURE <IDXXX> CLOSE;

四、生产环境最佳实践

1. 日常维护命令

# 定期检查潜在问题
RMAN> VALIDATE DATABASE;

# 查看历史故障
SELECT * FROM v$ir_failure;

# 清理已解决故障
RMAN> CHANGE FAILURE <IDXX> CLOSE;

 2. 关键配置建议

-- 启用控制文件自动备份
CONFIGURE CONTROLFILE AUTOBACKUP ON;

-- 设置诊断目录大小
ALTER SYSTEM SET DIAGNOSTIC_DEST_SIZE = 10G;

 3. 灾难恢复预案

#!/bin/bash
# DRA 自动恢复脚本模板
rman target / <<EOF
LIST FAILURE;
ADVISE FAILURE;
REPAIR FAILURE;
EXIT;
EOF

五、使用体验

版本兼容性​
  • Oracle 11g R1 开始引入基础功能
  • Oracle 12c 后支持多租户环境
  • Oracle 19c 增强云环境集成
使用限制​
  • 仅处理物理损坏(不解决逻辑错误)
  • 依赖有效备份(无备份则无法恢复)
  • 不支持 ASM 存储层故障
性能影响​
  • 诊断期间占用约 5-10% CPU
  • 大数据库验证操作耗时较长(建议业务低谷执行)

 TIPS​:Oracle Data Recovery Advisor 通过自动化故障诊断、智能恢复策略生成和一键式修复,显著降低了数据库恢复的复杂性和风险。尤其在处理 current redo 丢失等关键故障时,DRA 能精准计算最大可恢复点,避免因操作失误导致的数据损失。建议生产环境结合定期验证(VALIDATE)和 DRA 监控构建完善的灾备体系。

42、不使用RMAN进行Oracle物理备份的全面指南 本文详细介绍了不使用RMAN进行Oracle物理备份的完整方法,涵盖冷备份和热备份的操作步骤、适用场景及常见误解的澄清。文章深入解析了热备份的工作机制,包括SCN冻结、块图像记录和恢复原理,并提供了自动化脚本示例与备份验证监控建议,帮助DBA在无RMAN环境下实现安全可靠的数据库备份策略。 阅读详情

相关推荐

信息隐藏 数字图像空域隐写与分析技术的实现

【代码】信息隐藏 数字图像空域隐写与分析技术的实现。

Yungoal的博客 468

诊断和响应故障_使用数据恢复顾问(Data Recovery Advisor)诊断和修复故障

Data Recovery Advisor使用

jetliu05的博客 1850

自绘CListCtrl时发现ON_WM_MEASUREITEM_REFLECT和DrawItem(LPDRAWITEMSTRUCT lpMeasureItemStruct) 无响应

自绘CListCtrl时发现ON_WM_MEASUREITEM_REFLECT和DrawItem(LPDRAWITEMSTRUCT lpMeasureItemStruct) 无响应 一般情况下,我们都是在 dialog 里面 放一个 list 控件,然后 用自己的类绑定自己的自绘对象,如同下面: 1.  在 dialog 里面 加一个 list 列表 2. 然后 绑定这个列表 哈哈...

mfreesky的专栏 2170

Oracle 11g 新特性 -- RMAN Data Recovery Advisor(DRA)

Data Recovery Advisor(以下简称DRA)是Oracle的一个内置(Build-In)工具,用于进行数据错误、损坏的报告和修复建议。比如,DRA能够自动发现当前存在坏块,并且查看备份资料库(RMAN),给出修复建议和语句。DRA甚至可以做到“一键式”的恢复,敲一个修复命令,就自动执行修复脚本,将错误解除。 DRA是和Oracle经典备份还原工具RMAN绑定使用的。DRA是自动在...

jolly10的专栏 808

3dsMax高效导入OSGB倾斜模型的3个关键步骤与插件应用

本文详细解析了在3dsMax中高效导入OSGB倾斜模型的三个核心步骤:建立索引、处理贴图路径以及选择合适的插件。针对导入过程中常见的模型崩溃、贴图丢失和操作卡顿问题,提供了从数据结构理解到插件选型的实战解决方案,帮助用户实现大规模实景模型在3dsMax中的流畅导入与编辑。

weixin_29238147的博客 469

Oracle 11g 新特性 -- RMAN Data Recovery Advisor(DRA) 说明

一.Data Recovery Advisor(DRA) 说明1.1 DRA 说明DRA在遇到错误时会自动收集数据故障信息。此外,它还能预先检查故障。在此模式中,它可以在数据库进程发现损坏并发送错误消息之前检测和分析数据故障(请注意,修复始终在人为控制之下进行)。数据故障可能非常严重。例如,如果缺少最新的日志文件,则无法启动数据库。一些数据故障(如数据文件中的块损坏)不是灾难性故障,因为...

weixin_30757793的博客 322

JW01二氧化碳传感器实战:5分钟搞定Arduino环境监测系统(附完整代码)

本文详细介绍了如何使用JW01二氧化碳传感器与Arduino快速搭建环境监测系统。通过简单的硬件连接和完整的代码示例,读者可以在5分钟内实现CO2浓度实时监测,并了解数据解析、常见问题解决及进阶应用扩展。JW01传感器的高精度和易用性使其成为创客和嵌入式开发者的理想选择。

kite3的博客 382

Oracle数据恢复顾问(DRA)

Oracle数据恢复顾问(DRA)     曾经处理过硬盘上数据损坏或者数据丢失的问题么?结果,尽管你还处在诊断和分析问题发生的阶段,最终用户和经理已经联系你,并且希望知道解决问题的大概时间(ETA)了。你是否希望拥有一个简单,并且更为重要的是,快速的方法来诊断和修复这种类型的故障呢? 继续阅读,来了解Oracle数据恢复顾问(DRA)在这种情况下是如何帮助我们的吧!     数据恢复顾问(

Paladin的专栏 974

手把手教你学Simulink——基于Simulink的储能PCS(功率转换系统)离网V/f控制仿真示例

本文带你从零开始,在Simulink中硬核还原了一套完整的100kW 储能PCS离网V/f控制系统。通过引入:✅无PLL的自主角度生成机制(实现真正的“构网”能力)✅电压外环与电流内环的双闭环解耦架构(兼顾稳态精度与动态响应)✅黑启动软充电与有源阻尼等工程化手段(确保系统平滑建压与抗谐振)核心收获透彻理解了储能系统在无大电网支撑下的自主运行机理。掌握了从“跟网(Grid-Following)”向“构网(Grid-Forming)”跨越的控制算法核心差异。

MHD0815的博客 77

AI智能体丨使用Coze生成自媒体短视频分镜生成器(附保姆级教程)

【短视频分镜脚本生成器】是一款由Coze平台开发出来的智能体,可快速解析某音/某书视频或本地文件,自动生成专业分镜脚本。用户只需输入视频链接或上传文件,系统即会分析镜头节奏、叙事逻辑和画面内容,输出包含画面、模板和话术参考的标准化脚本(支持3分钟内视频)。该工具还能生成HTML网页和可下载图片,提供可视化呈现。工作流程包括视频解析、帧提取、AI画面理解、脚本生成和网页制作,大幅提升短视频创作效率。

李同学Lino的博客 1535

聊聊Oracle Data Recovery Advisor(DRA)(下)

上篇我们介绍了Oracle 11g的Data Recover Advisor(DRA)特性,并且给出了一个在启动过程出错故障的演示。本篇我们继续看数据库执行过程中,问题过程修复。 4、运行过程中故障 在运行过程中...

ciqu9915的博客 225

使用 MATLAB/Simulink 构建一个电机-液压联合控制系统的仿真模型

本文详细介绍了基于Simulink的电机与液压执行机构联合控制系统建模方法。通过7个步骤,系统讲解了从创建项目、搭建PMSM电机模型、建立逆变器与矢量控制模块,到构建液压泵和执行机构模型的完整过程。重点展示了如何设置关键参数、添加测量反馈模块,并提供了实用的代码片段。教程还包含仿真运行流程、结果分析指标及进阶建议,帮助读者掌握多物理场耦合系统建模的核心技术。该方法适用于机电液一体化系统设计,为工程实践提供有效参考。

amy_mhd的博客 613

ORACLE RMAN advise failure

143.You executed the following commands in an RMAN session for your database instance that has failures: RMAN&gt; LIST FAILURE; After some time, you executed the following command in the same session:...

ykyuanke的专栏 528

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Oracle数据恢复顾问(Data Recovery Advisor)

Oracle数据恢复顾问用于当数据发生错误或故障时,进行自动收集数据故障信息,并生成恢复脚本,用于完成数据恢复。数据恢复顾问也可以主动检查故障。 在这种模式下,它可以在数据库进程发现数据损坏并发出错误之前进行潜在的检测并分析数据故障。数据故障可能非常严重。 例如,如果您当前的日志文件丢失,则无法启动你的数据库。。。。。

乐沙弥的世界 3581

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

RMAN恢复-存储损坏数据丢失恢复

1.模拟故障,fuser -m -k -i /oradata,umount -f /oradata,卸载磁盘。11.进入数据库启动数据库,alter database open resetlogs;10.完成后,restore database,再 recover database;2.启动数据库报错,查看log日志,控制文件找不到,需要重建控制文件。7.恢复控制文件,在rman里面启动数据库到mount状态。3.新建一个数据库数据目录,不要和之前一样,防止冲突。6.进入rman状态,恢复控制文件,

hf191850699的专栏 536

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Oracle使用RMAN Advisor恢复current redo丢失故障

Oracle使用RMAN Advisor恢复current redo丢失故障

chenoracle的博客 437

Oracle数据库RMAN备份与恢复操作指南

简介:Oracle RMAN是用于备份和恢复数据库的高效工具,提供全面的数据保护策略。本手册详细介绍RMAN的基本概念、架构以及如何执行备份和恢复操作。涵盖了各种备份类型和恢复技术,同时介绍了如何使用RMAN集成不同的备份介质和软件,以及如何配置备份参数和维护恢复目录。了解RMAN的高级功能和最佳实践,将有助于保障数据安全性和高效执行恢复任务。

qq_32445015的博客 1074

Data Recovery Advisor(DRA)

1.1 DRA 说明DRA在遇到错误时会自动收集数据故障信息。此外,它还能预先检查故障。在此模式中,它可以在数据库进程发现损坏并发送错误消息之前检测和分析数据故障(请注意,修复始终在人为控制之下进行)。数据故障可能非常严重。例如...

congdao9826的博客 246

Data Recovery Advisor

Data Recovery Advisor is an Oracle Database tool that automatically diagnoses data failures, determines and presents appropriate repair options, and executes repairs at the user's request. Data Recovery Advisor has both a command-line and GUI interface...

彦祖的小号的博客 480

oracle 11G RMAN的List Failure, Advise Failure and Repair Failure

测试一下这几个命令的使用 1.测试环境如下: RMAN> report schema; Report of database schema for database with db_unique_name ORCL List of Permanent Datafiles =========================== File Size(MB) Tablespa...

jolly10的专栏 1108

Oracle Data Recovery Advisor(DRA)

对DBA而言,数据备份、还原是日常工作的基本功。Oracle发展到今天,自动化、智能化是一个重要的发展方向。数据库可以自动的诊断问题故障,并且解决修复错误,可能离我们并不遥远。     数据备份和还原,在Oracle DBA学习过程中,占到了很大的篇幅。从冷备份到热备份,从完全恢复到非完全恢复,这个过程中涉及了很多的技术细节和知识点。一些DBA初始接触这些概念和操作,容易被弄乱。Oracle

小傅同志的专栏 3101

oracle data recovery advisor,DRA(Data Recovery Advisor)的使用

关于DRA的官方描述:The simplest way to diagnose and repair database problems is to use the Data Recovery Advisor. This Oracle Database tool provides an infrastructure for diagnosing persistent data failures, ...

weixin_32771767的博客 296

Oracle Data Recovery Advisor(DRA) 数据恢复顾问

Oracle Data Recovery Advisor(DRA) 数据恢复顾问 对DBA而言,数据备份、还原是日常工作的基本功。Oracle发展到今天,自动化、智能化是一个重要的发展方向。数据库可以自动的诊断问题故障,并且解决修复错误,可能离我们并不遥远。 ...

weixin_34283445的博客 232

Data Recovery Advisor(数据恢复顾问)

Data Recovery Advisor 是11g新特性,是Oracle顾问程序架构的一部分,它会在遇到错误时自动收集有关故障信息。如果主动运行Data Recovery Advisor,通常可以在用户查询或备份操作检查到故障前检测和修复故障。Data Recovery Advisor可以检测到诸如块受损的相对较小的错误,也可以检测到导致数据库无法成功启动的错误,如缺少联机重做日志文件,数据文件

一玩儿家的田地 5166

Oracle Data Recovery Advisor

Oracle Data Recovery Advisor 实验说明: (1)数据库CHENJCH2出现故障(当前Redo logfile和USERS数据文件丢失),导致CHENJCH2数据库无法OPEN; (...

ckth47350的博客 178
上一篇: 94-Oralce RMAN 目录库(catalog-nocatalog)
下一篇: 96-OracleLinux10 安装-DB 19c 19.26-环境准备
远方1609
博客等级 码龄22年 577粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值