RMAN备份恢复之BLOCKRECOVER

oracle 数据块损坏 Oracle 数据块损坏与恢复详解 本文主要对RMAN块级别介质恢复进行解释并举例,以帮助大家理解相应概念并灵活使用 块级别介质恢复(Block-Level Media Recovery) 注意: 此恢复无法对数据文件块头(第一个块)进行恢复。 块级别介质恢复对于仅需要介质恢复很小部分数据文件块的场景来说非常好用。 在Oracle 9i之前,如果单个块需要进行恢复的话,DBA需要将整个数据文件恢复出来并应用所有之后的re... 阅读详情

RMAN提供了单独恢复个别BLOCK的功能,这种功能作为普通恢复方法的补充,对于恢复数据库中出现的坏块可以快速的进行恢复。

RMAN的BLOCKRECOVER是利用一个全备份作为基础,在此基础中应用日志,对于需要恢复的个别BLOCK进行恢复。

  下面演示一个BLOCKRECOVER的简单例子,首先是构造一个坏块,最简单的办法莫过于UltraEdit了。

  SQL> SELECT COUNT(*) FROM T3;

  COUNT(*)

  ----------

  50272

  SQL>SELECT DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID), DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) FROM T3 WHERE ROWNUM = 1;

  DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID) DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)

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

  4 40

  SQL> SHOW PARAMETER BLOCK_SIZE

  NAME TYPE VALUE

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

  db_block_size integer 16384

  计算一下表T3在文件中的偏移地址:

  SQL> SELECT 16*1024*40 FROM DUAL;

  16*1024*40

  ----------

  655360

  SQL> SELECT TO_CHAR(655360, 'XXXXXX') FROM DUAL;

  TO_CHAR

  -------

  A0000

  用UltraEdit打开RELATIVE_FNO为4的数据文件,定位到地址为A0000位置,在后面修改几个值,保存后,再次查询T3表:

  SQL> SELECT COUNT(*) FROM T3;

  SELECT COUNT(*) FROM T3

  *第 1 行出现错误:

  ORA-01578: ORACLE 数据块损坏 (文件号 4, 块号 40)

  ORA-01110: 数据文件 4: 'E:ORACLEORADATAYTKDATAFILEO1_MF_USERS_1TDY4JMK_.DBF'

  现在已经模拟出坏块,可以使用RMAN的BLOCKRECOVER进行恢复了。不过恢复的前提是拥有这个数据文件的一个全备份,并且有这个备份以来的归档日志。

  RMAN> BLOCKRECOVER DATAFILE 4 BLOCK 40;

  启动 blockrecover 于 15-6月 -07分配的通道: ORA_DISK_1通道 ORA_DISK_1: sid=157 devtype=DISK

  通道 ORA_DISK_1: 正在从数据文件副本 E:ORACLEBACKUPUSERS.DBF 复原块

  正在开始介质的恢复介质恢复完成, 用时: 00:00:07

  通过执行上面简单的命令,已经将数据文件中的坏块进行了修复,注意RMAN的BLOCKRECOVER在恢复的时候是不需要将数据文件置于脱机状态的。

  恢复完成后,最后再次查询T3表:

  SQL> SELECT COUNT(*) FROM T3;

  COUNT(*)

  ----------

  50272

  有个库第一次做RMAN备份,却发现有坏块,有没有什么好办法?

  块恢复可以在数据文件online的时候做,没有问题

  说来惭愧,这是个生产库,版本:9.2.0.7,OS:linux as3,第一次做RMAN备份,却发现有坏块。

  还好不是系统表,把有坏块的表drop后重建了,用SELECT segment_name,segment_type,extent_id,block_id, blocks

  from dba_extents t

  where file_id = file#

  AND block# between block_id and (block_id + blocks - 1) 已经找不到任何object。但是做level0还是提示有坏块。

  DB每天有exp的备份,删除这个表空间再重新导入是可行的,但是由于生产库,不能停。想用set maxcorrupt 跳过坏块,又不知道以后做restore和recover会不会有问题?网上对此讨论的帖子也很多,

  9i之后可以只恢复坏块

  恢复坏的block(9i以上版本可用)

  使用这种方法要求数据库版本是9.2.0以上,要求配置了Rman的catalog数据库,数据库为归档方式,并且有完整的物理备份。

  步骤如下:

  使用RMAN的BLOCKRECOVER命令 :

  Rman>run{blockrecover datafile 5 block 11,16;}

  也可以强制使用某个SCN号之前的备份,恢复数据块。

  Rman>run{blockrecover datafile 5 block 11,16 restore until sequence 8505;}

  通过ROWID RANGE SCAN 保存数据

  1) 先取得坏块中ROW ID的最小值,执行以下的语句:

  SELECT dbms_rowid.rowid_create(1,<OBJ_ID>,<RFN>,<BL>,0) from DUAL;

  2)取得坏块中的ROW ID的最大值,执行以下的语句:

  SELECT dbms_rowid.rowid_create(1,<OBJ_ID>,<RFN>,<BL>+1,0) from DUAL;

  3)建议一个临时表存储那些没有坏块的数据,执行以下的语句:

  CREATE TABLE salvage_table AS SELECT * FROM corrupt_tab Where 1=2;

  4)保存那些不存在坏块的数据到临时表中,执行以下的语句:

  INSERT INTO salvage_table SELECT /*+ ROWID(A) */ * FROM <owner.tablename> A WHERE rowid < '<low_rid>';

  INSERT INTO salvage_table SELECT /*+ ROWID(A) */ * FROM <owner.tablename> A WHERE rowid >= '<hi_rid>‘;

  5) 根据临时表中的数据重建表,重建表上的索引,限制。

AutoDL上传数据详细步骤(自己用的步骤,可能没有其他大佬用的那么高级) 阅读详情

相关推荐

信息流广告ROI线性预测看板&投放分析监控看板展示&数据处理入库全流程

此看板数据量太大,在tableau public部署运行速度极慢,因此用图片作展示 数据清洗

Larry_Westside的博客 2316

ORACLE RMAN备份及还原

RMAN可以进行增量备份:数据库,表空间,数据文件 只有使用过的block可以被备份成backup set 表空间与数据文件对应关系:dba_data_files / v$datafile_header 在noarc...

cko82679的博客 317

5g LDPC编译码-LDPC编码

本文摘要:LDPC编码是5G业务信道的核心编码技术,属于线性分组码。5G中LDPC编码分为两种基图类型(BG1和BG2),通过码块分割、CRC处理等步骤实现。编码过程主要涉及校验矩阵生成和校验位计算,其中校验矩阵采用稀疏矩阵结构。文中详细介绍了5G LDPC编码的具体实现流程,包括码块分割规则、校验位生成方法,以及两种基图(BG1和BG2)在矩阵结构和参数设置上的差异,重点阐述了通过模块化方法求解校验比特位的技术路径。

weixin_38270585的博客 1365

RMAN深入解析之--BlockRecover恢复坏块

RMAN深入解析之--BlockRecover恢复坏块案例环境:操作系统:RedHat EL5Oracle: Oracle 11gR2案例描述: 通过块介质恢复(Block Media Recover:BMR)执行块级别的恢复操作来修复Oracle数据库上的逻辑或物理上损坏的数据块。1、模拟数据块被破坏10:26:48SYS@prod>connscott/t...

weixin_33947521的博客 463

Haystack框架实战:从零构建企业级智能问答系统

自然语言处理(NLP)技术通过让计算机理解和生成人类语言,正在深刻改变信息检索与交互方式。其核心原理在于将文本转化为机器可处理的向量表示,并通过语义相似度计算实现精准匹配。这一技术价值在于能够从海量非结构化数据中快速提取精准信息,大幅提升知识获取效率。在工程实践中,检索增强生成(RAG)架构结合了密集向量检索与大语言模型生成能力,成为构建智能问答、知识库助手等应用的主流方案。该架构通过将用户查询与文档库进行语义匹配,并为大语言模型提供精准上下文,有效提升了回答的准确性与可追溯性。本文以Haystack这一生

weixin_42521032的博客 577

CMap数据库实战:从基因表达谱到药物重定位的可视化分析

本文详细介绍了如何利用CMap数据库进行药物重定位的可视化分析。通过实战演示,从差异基因列表准备、CMap查询参数设置,到结果筛选与高级可视化(如热图与OncoPrint风格图),系统讲解了从数据到洞察的全流程,并提供了关键的解读与验证指南,帮助研究者高效挖掘老药新用的潜力。

mango的博客 587

Oracle 11g 基于RMAN实现坏块介质恢复(blockrecover)

基于RMAN实现坏块介质恢复(blockrecover) blockrecover datafile 介质恢复 dbv

雨花石 1598

【ISP图像处理】Demosaic去马赛克技术演进与边缘优化策略

本文深入解析了ISP图像处理中的Demosaic(去马赛克)技术。从Bayer阵列原理出发,梳理了从双线性插值、Hamilton-Adams边缘导向算法到利用通道相关性与自相似性的技术演进历程,并重点探讨了针对边缘与纹理伪影的优化策略,为工程实践中的算法选型与硬件协同设计提供了专业指导。

weixin_29091445的博客 387

oracle rman 检查坏块,Oracle 存储坏块处理方法-基于RMAN实现坏块介质恢复(blockrecover)...

对于物理损坏的数据块,在有备份的情况下,我们可以通过RMAN块介质恢复(BLOCK MEDIA RECOVERY)功能来完成受损块的恢复,而不需要恢复整个数据库或所有文件来修复这些少量受损的数据块。但前提条件是你得有一个可用的RMAN备份存在,因此,无论何时备份就是一切。本篇我们来模拟产生一个坏块,然后使用RMAN实现坏块恢复。说明:一般出现坏块的时候,都是业务访问到这个坏块的时候报如下的错误:E...

weixin_36130547的博客 504

从投影到抗噪:直线拟合三大算法实战指南

本文深入解析了直线拟合的三大核心算法:常规最小二乘法(OLS)、正交回归(TLS)和RANSAC。通过对比其几何原理、代码实现与适用场景,为计算机视觉和数据分析领域的实践者提供了清晰的选型指南,帮助在抗噪、旋转不变性等不同需求下,精准选择并应用最合适的算法。

ujm567890的博客 576

RK356x U-Boot研究所(命令篇)3.7 pci与nvme命令的用法

RK356x U-Boot研究所(命令篇)3.7 pci与nvme命令的用法

Systemcall名屋 2084

RMAN备份恢复之归档日志对BLOCKRECOVER的影响

RMAN备份恢复之归档日志对BLOCKRECOVER的影响 上面一篇简单的介绍了一下RMAN的BLOCKRECOVER的用法,这篇打算介绍一下缺失归档日志对BLOCKRECOVER的影响。为了演示归档对BLOCKRECOVER的影响,先构造一个例子:RMAN> backup tablespace tools;启动 backup 于 16-6月 -07使用通道 ORA_DISK_1通

软件开发 615

【JAVA】海康威视门禁机ISAPI接口开发,人脸上传更新接口

本文实现了一个HTTP工具类HTTPClientUtil,提供GET/POST/PUT/DELETE请求方法,支持摘要认证。工具类封装了Apache HttpClient,设置连接超时、最大连接数等参数,通过DeviceInfoDTO传递设备IP、端口和认证信息。文中还展示了两个应用示例:userInfoAdd()用于添加人员信息,FaceDataRecordAdd()用于添加人脸数据,均通过POST请求与设备ISAPI接口交互。该工具类简化了HTTP请求处理,支持设备管理系统的集成开发。

qq_27246521的博客 587

oracle数据坏块处理(一)-通过rman备份修复

这时候如果有前面正常的rman备份,那么我们就可以通过rman备份直接对数据文件块做恢复。或者直接检查数据文件:VALIDATE DATAFILE 5。检查完,我们可以通过视图查询到坏块信息。再使用dbv检查发现没有坏块了。

lmxx2020的博客 1497

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

BLOCKRECOVER恢复坏块

RMAN提供了单独恢复个别BLOCK的功能,这种功能作为普通恢复方法的补充,对于恢复数据库中出现的坏块可以快速的进行恢复。RMAN的BLOCKRECOVER是利用一个全备份作为基础,在此基础中应用日志,对于需要恢复的个...

cnqc11810的博客 195

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

RMAN blockrecover命令恢复数据块

在有rman备份的情况下,可以使用rman的blockrecover命令实行块恢复。 SYS@orcl>create tablespace test datafile '/u01/app/oracle/oradata/...

csdn426523的博客 266

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

block recover命令

block recover命令总是指定一个要还原和恢复的一个或多个块的列表,可选的指定从其进行还原的备份。如 下: RMAN> block recover datafile 7 block 5; 指示RMAN从文件最近的备份集或映像副本中还原和恢复一个指定的块。 RMAN> block recover datafile 7 block 5,6,7 datafile 9 block 21,2

龙神add-走向数据架构师的路 1213

oracle block media recovery,RMAN深入解析之--BlockRecover恢复坏块

RMAN深入解析之--BlockRecover恢复坏块案例环境:操作系统:RedHat EL5Oracle: Oracle 11gR2案例描述:通过块介质恢复(Block Media Recover:BMR)执行块级别的恢复操作来修复Oracle数据库上的逻辑或物理上损坏的数据块。1、模拟数据块被破坏10:26:48SYS@prod>connscott/tigerConnected....

weixin_30739835的博客 686

Oracle 9i数据坏块的处理(ORA-01578)

今天在一台生产用测试库上SELECT一个表时出现ORA-01578,一个块损坏,以前学习过块损坏怎么处理,到还真没遇到过,今天总算让我遇到了,还是一台生产用测试库,就不用很紧张了。数据库版本是9.2.0.4,Oracle9i的R...

csdn7007的博客 167

使用RMAN全备份解决ora9数据库坏块

在环境上查询某张表的时候,报的错误ORA-01578。ERROR at line 1:ORA-01578: ORACLE data block corrupted (file # 15, block # 18)原因分析:由于出现...

191
上一篇: RMAN 命令详解
下一篇: Oracle 不同故障的恢复方案
叶竹
博客等级 码龄17年 11粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值