rman备份报错,全zero错误处理一例(bbed)
问题:某数据库在执行rman全备的时候,发现alert日志中有报错,报错提示, file 10,block 305076全部为zero,内容全零,处理过程如下

分析处理:
1. 这个问题可能是 系统或者oraclebug导致,也可能是磁盘故障,断电等导致的。
2. 这个坏块
- 如果是包含有用数据的块,那么只能根据备份来进行恢复,(块恢复,或者文件恢复)。
- 如果是不包含有用数据的块,就是说这个块不属于任何段segment,(table ,index等) ,那么可以进行一些特殊的手法来处理。
针对第二种情况,这个块没被使用,MOS上有个官方的解决方案《如何格式化不属于任何段的损坏块 (Doc ID 1526163.1)》,这个方案的方法思路就是,通过脚本创建一个表,往里每次小量的插入数据,从而把这个zero的块给重新格式化并填充。
这个方法是安全的,并且是推荐的,但是我在实际的使用中,并没有重复的分配到这个块的extent给segment使用,老是跳过这个extent,直接扩大了datafile来装入新插入的数据。
所以这里我就使用了bbed来模拟一个块来欺骗oracle的方法来规避这个问题。
说明: file 10,block 305076,305076这个块通过查询dba_extent发现,是个 区中块,前后都有数据块,不是段头和位图块,更简单一些,这里选用其前的 305075块来参考 创建并覆盖305076这个块。
1. rman备份报 zero block错误。因为这块extent已经是空闲的,考虑将305076之前的块305075,拷贝到305076,修改rdba来欺骗oracle,之后这个空闲块被重新利用的时候,会被格式化
[oracle@db bbed64]$ bbed filename='/oradata/db/db_index03.dbf'
Password: BBED: Release 2.0.0.0. - Limited Production on Wed Jan :: Copyright (c) , , Oracle and/or its affiliates. All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED> show all;
FILE#
BLOCK#
OFFSET
DBA 0x00000000 ( ,)
FILENAME /oradata/db/db_index03.dbf
BIFILE bifile.bbd
LISTFILE
BLOCKSIZE
MODE Browse
EDIT Unrecoverable
IBASE Dec
OBASE Dec
WIDTH
COUNT
LOGFILE log.bbd
SPOOL No BBED> show mode;
MODE Browse BBED> set mode edit;
MODE Edit BBED> set block ;
BLOCK# BBED> show all;
FILE#
BLOCK#
OFFSET
DBA 0x00000000 ( ,)
FILENAME /oradata/db/db_index03.dbf
BIFILE bifile.bbd
LISTFILE
BLOCKSIZE
MODE Edit
EDIT Unrecoverable
IBASE Dec
OBASE Dec
WIDTH
COUNT
LOGFILE log.bbd
SPOOL No BBED> d
File: /oradata/db/db_index03.dbf ()
Block: Offsets: to Dba:0x00000000
------------------------------------------------------------------------ < bytes per line> 将305075 拷贝到
BBED> copy block to block
File: /oradata/db/db_index03.dbf ()
Block: Offsets: to Dba:0x00000000
------------------------------------------------------------------------
06a20000 b3a78402 417c7807 6a180000 28e90100 9e354e07
01a68402 13000f00 bb2b0000 eef6c302 ec010200
ea377403 fe780000 a564c500 201e6e06
1b015a02 4b08af0b d7b28402 81b98402
601f0000 9511a511 b511c511 d511e511 b50ff511
a412b412 c312d312
e312f312 60136e13 7c138c13 9c13ac13 bb13ca13
d913e813 f713670a a614b614
c414d414 e414f414 a0094b08
4510c70a 9415a415 b315a60f 1b0a960f dd09c315 d315a70b 0b0ae315
f315d510 a016af16 ed09ce09
fc09be16 ce16de16 ee16fe16 3e0d8c0d 7c0d0e17 1e172e17 3e174e17 5e176e17
7e178e17 3511190f 15109e17 ae17770b be17670f c50f570c ce17f10c 1309de17
ee17fe17 0e181e18 2e183e18 4e18f510 e5105d18 6d187d18 8d189d18 ad18bd18
cd18dd18 ed18fd18 0d191d19 2d193d19 4d195d19 6d197d19 8d199d19 5510ad19
bd19cd19 dd19ed19 fd190d1a 1c1a2c1a 3c1a4c1a 5c1a6b1a 7a1a891a 981aa71a < bytes per line> BBED> show block
BLOCK# BBED> sum
Check value for File , Block :
current = 0x186a, required = 0x186a BBED> v
DBVERIFY - Verification starting
FILE = /oradata/db/db_index03.dbf
BLOCK = Block is corrupt
Corrupt block relative dba: 0x0284a7b4 (file , block )
Bad header found during verification
Data in bad block:
type: format: rdba: 0x0284a7b3
last change scn: 0x0000.07787c41 seq: 0x1 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x7c410601
check value in block header: 0x186a
computed block checksum: 0x0 DBVERIFY - Verification complete Total Blocks Examined :
Total Blocks Processed (Data) :
Total Blocks Failing (Data) :
Total Blocks Processed (Index):
Total Blocks Failing (Index):
Total Blocks Empty :
Total Blocks Marked Corrupt :
Total Blocks Influx :
Message not found; product=RDBMS; facility=BBED 发现过不了校验
因为块里还是记录的源块的 rdba,需要从rdba: 0x0284a7b3 改为 rdba: 0x0284a7b4 BBED> p kcbh
struct kcbh, bytes @
ub1 type_kcbh @ 0x06
ub1 frmt_kcbh @ 0xa2
ub1 spare1_kcbh @ 0x00
ub1 spare2_kcbh @ 0x00
ub4 rdba_kcbh @ 0x0284a7b3
ub4 bas_kcbh @ 0x07787c41
ub2 wrp_kcbh @ 0x0000
ub1 seq_kcbh @ 0x01
ub1 flg_kcbh @ 0x04 (KCBHFCKV)
ub2 chkval_kcbh @ 0x186a
ub2 spare3_kcbh @ 0x0000 BBED> set offset
OFFSET BBED> d /v count=
BBED-: invalid parameter (=) BBED> d /v count
File: /oradata/db/db_index03.dbf ()
Block: Offsets: to Dba:0x00000000
-------------------------------------------------------
b3a78402 l .... < bytes per line> BBED> m /x b4
File: /oradata/db/db_index03.dbf ()
Block: Offsets: to Dba:0x00000000
------------------------------------------------------------------------
b4a78402 < bytes per line> BBED> p kcbh
struct kcbh, bytes @
ub1 type_kcbh @ 0x06
ub1 frmt_kcbh @ 0xa2
ub1 spare1_kcbh @ 0x00
ub1 spare2_kcbh @ 0x00
ub4 rdba_kcbh @ 0x0284a7b4
ub4 bas_kcbh @ 0x07787c41
ub2 wrp_kcbh @ 0x0000
ub1 seq_kcbh @ 0x01
ub1 flg_kcbh @ 0x04 (KCBHFCKV)
ub2 chkval_kcbh @ 0x186a
ub2 spare3_kcbh @ 0x0000 BBED> v
DBVERIFY - Verification starting
FILE = /oradata/db/db_index03.dbf
BLOCK = Block is corrupt
Corrupt block relative dba: 0x0284a7b4 (file , block )
Bad check value found during verification
Data in bad block:
type: format: rdba: 0x0284a7b4
last change scn: 0x0000.07787c41 seq: 0x1 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x7c410601
check value in block header: 0x186a
computed block checksum: 0x7 DBVERIFY - Verification complete Total Blocks Examined :
Total Blocks Processed (Data) :
Total Blocks Failing (Data) :
Total Blocks Processed (Index):
Total Blocks Failing (Index):
Total Blocks Empty :
Total Blocks Marked Corrupt :
Total Blocks Influx :
Message not found; product=RDBMS; facility=BBED BBED> sum
Check value for File , Block :
current = 0x186a, required = 0x186d BBED> sum apply
Check value for File , Block :
current = 0x186d, required = 0x186d BBED> v
DBVERIFY - Verification starting
FILE = /oradata/db/db_index03.dbf
BLOCK = DBVERIFY - Verification complete Total Blocks Examined :
Total Blocks Processed (Data) :
Total Blocks Failing (Data) :
Total Blocks Processed (Index):
Total Blocks Failing (Index):
Total Blocks Empty :
Total Blocks Marked Corrupt :
Total Blocks Influx :
Message not found; product=RDBMS; facility=BBED
校验:


rman备份报错,全zero错误处理一例(bbed)的更多相关文章
- Oracle数据库误删文件导致rman备份报错RMAN-06169解决办法
Oracle数据库误删文件导致rman备份报错RMAN-06169解决办法 可能是误删文件导致在使用rman备份时候出现以下提示 RMAN-06169: could not read file hea ...
- 部署到IIS报错:HTTP错误500.19,错误代码0x800700d
title=部署到IIS报错:HTTP错误500.19,错误代码0x800700d. 用vs直接运行网站没问题,部署到IIS就报错,由此可知应该是IIS中不支持网站相关配置. 查找发现在web.c ...
- mysql5.6版本备份报错
MySQL5.6版本备份报错,密码不安全 [root@centos199 mysql]# mysqldump -uroot -ppassword cz-office > mysql38.sqlW ...
- Oracle导入大数据量(百万以上)dmp文件,报错ora-12592 :包错误
进行自动化测试过程中,发现需要重新搭建一套自动化测试库,然后利用pl/sql对数据库导出: 进行导入后发现报错ora-12592 :包错误 原因分析,数据量过大,传输超时,需要在Oracle服务端以及 ...
- mysql 备份报错mysqldump: [Warning] Using a password on the command line interface can be insecure.
-------------------------------------------------------------------------------- mysql 备份报错mysqldump ...
- [原]Jenkins(八)---jenkins构建项目报错时发送错误报告邮件
/** * lihaibo * 文章内容都是根据自己工作情况实践得出. * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horizonli/p/533 ...
- 如何解决金蝶IKernel.exe报错 Windows Installer 错误 重新安装、无法卸载
如何解决金蝶IKernel.exe报错 Windows Installer 错误 金蝶这个小婊子,就是这么贱. 卸载了高版本的,再安装低版本就不能安装上,死活都不能安装. 请手动启动一下Install ...
- 转 rman 恢复报错
###sample 1 原因是新库起了FRA 区,FRA 区的旧文件属于之前的归档日志文件产生,这样会导致无法识别的问题. 解决办法,清空FRA或者恢复时候不启用FRA. RMAN RESTORE ...
- manjaro软件源报错 不停看到错误 "PackageName: signature from "User <email@archlinux.org>" is invalid" 的几种解决方法
对于报错情况, 格式大致如下: error: PackageName: signature from "User <email@archlinux.org>" is i ...
随机推荐
- 初级篇html。
什么是html? 超文本标记语言,标准通用标记语言下的一个应用. “超文本”就是指页面内可以包含图片.链接,甚至音乐.程序等非文字元素. 超文本标记语言的结构包括“头”部分(英语:Head).和“主 ...
- 使用 npm 安装 Vue
使用 npm 安装 Vue 需要 node.js 就不多说了(从 nodejs.org 中下载 nodejs ) (1)安装 Vue,在 cmd 里直接输入: npm install -g cnpm ...
- RecyclerView之UI与数据绑定
package activity.cyq.com.learnrsv; import android.support.v7.widget.RecyclerView; import android.vie ...
- Linux-文件目录命令
黑色 代表是普通的文件 蓝色 代表是目录(文件夹) 紫色 代表是图片文件 绿色 代表是可以执行的文件(脚本文件)-->存放linux命令的 红色 代表是压缩文件 clear:清屏pwd:显示当前 ...
- springDataJpa学习笔记
目录 前言 springData 准备 引用 xml配置初始化JPA pojo dao层接口 使用 新增.修改:save 删除 查询所有 根据ID查询findById 命名规则查询(条件查询) 自定义 ...
- Android开发精彩博文收藏——UI界面类
本文收集整理Android开发中关于UI界面的相关精华博文,共大家参考!本文不定期更新! 1. Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各 ...
- 3D旋转相册的实现
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- CSMA/CD 续
重要特性 以太网不能进行全双工通信而只能进行双向交替通信(半双工通信).每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性. 这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率 ...
- lua垃圾回收之空表
故事背景: 自己手动手写的一个lua外部库luaopen_xxx,采用了tolua++1.0.93,编译后得到xxx.dll,当在luajit中require 'xxx'后是正常的,但如果运行环境换成 ...
- Wannafly挑战赛18 E 极差(线段树、单调栈)
Wannafly挑战赛18 E 极差 题意 给出三个长度为n的正整数序列,一个区间[L,R]的价值定义为:三个序列中,这个区间的极差(最大值与最小值之差)的乘积. 求所有区间的价值之和.答案对\(2^ ...