RMAN备份时报ORA-19501错误--问题定位篇

在Linux环境下,使用Oracle 10.1.0.4.2进行RMAN备份时遇到ORA-19501错误。经过dbv验证排除了逻辑坏块的可能性,问题指向物理坏块。通过进一步的物理坏块验证来定位和解决问题。
摘要由CSDN通过智能技术生成


一个库,在备份时报错ORA-19501,下面将我的分析过程简单罗列下
环境:linux    + oracle 10.1.0.4.2
错误内容如下

RMAN> run {
2> backup database format '/XXX/flash_recovery_area/prod/backupset/%U.dbf';
3> }
Starting backup at 01-AUG-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=296 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00046 name=/XXX/oradata/prod/datafile/o1_mf_esbigtbl_1q6k0sp9_.dbf
input datafile fno=00002 name=/XXX/oradata/prod/datafile/o1_mf_undotbs1_1q6jqcko_.dbf
input datafile fno=00063 name=/XXX/oradata/prod/datafile/o1_mf_content__1q6k05ym_.dbf
......
......
channel ORA_DISK_1: starting piece 1 at 01-AUG-13
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 08/01/2013 15:48:46
ORA-19501: read error on file "/XXX/oradata/prod/datafile/o1_mf_content__1q6k05ym_.dbf", blockno 15233 (blocksize=8192)
ORA-27072: File I/O error
Linux Error: 2: No such file or directory
Additional information: 15232

首先根据上面的错误信息
1. 查看了该数据文件,发现它在物理上是存在的
2.根据oracle的错误编号,挖掘更多的内容


[oracle@infra bin]$ oerr ora 19501
19501, 00000, "read error on file \"%s\", blockno %s (blocksize=%s)"
// *Cause:  read error on input file
// *Action: check the file

[oracle@infra bin]$ oerr ora 27072
27072, 00000, "File I/O error"
// *Cause:  read/write/readv/writev system call returned error, additional
//          information indicates starting block number of I/O
// *Action: check errno

分析:读取文件错误,推断可能有坏块,具体是物理坏块还是逻辑坏块呢
3.查看告警日志,里面没有错误信息,没有提供有价值的信息
下面就从坏块入手
4.查看坏块所在的表空间及对象


SQL> r
  1  SELECT OWNER, SEGMENT_NAME, SEGMENT_TYPE, TABLESPACE_NAME, A.PARTITION_NAME
  2    FROM DBA_EXTENTS A
  3    WHERE FILE_ID = &FILE_ID
  4*   AND &BLOCK_ID BETWEEN BLOCK_ID AND BLOCK_ID + BLOCKS - 1
Enter value for file_id: 63
old   3:   WHERE FILE_ID = &FILE_ID
new   3:   WHERE FILE_ID = 63
Enter value for block_id: 15233
old   4:   AND &BLOCK_ID BETWEEN BLOCK_I
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值