RMAN 您所在的位置:网站首页 ora-04063查询视图报错 RMAN

RMAN

2023-06-12 22:13| 来源: 网络整理| 查看: 265

在备份数据库的时候,出现RMAN-03009、ORA-19566报错:

RMAN-03009: backup 命令 (c3 通道上, 在 04/29/2023 10:58:11 上) 失败 ORA-19566: 超出损坏块限制 0 (文件 E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMR2.DBF) 继续执行其他作业步骤, 将不重新运行失败的作业 RMAN-03009: backup 命令 (c2 通道上, 在 04/29/2023 10:58:18 上) 失败 ORA-19566: 超出损坏块限制 0 (文件 E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMRV63.DBF) 继续执行其他作业步骤, 将不重新运行失败的作业 RMAN-03009: backup 命令 (c1 通道上, 在 04/29/2023 11:04:03 上) 失败 ORA-19566: 超出损坏块限制 0 (文件 E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMRV64.DBF) 继续执行其他作业步骤, 将不重新运行失败的作业

看报错描述是有坏块,而且坏块较多,导致备份失败,检查数据库alert日志:

Fri Apr 28 16:06:43 2023 Corrupt Block FoundTSN = 6, TSNAME = TSP_JHEMRRFN = 10, BLK = 498361, RDBA = 42441401OBJN = 76083, OBJD = 79812, OBJECT = PAT_MASTER_INDEX, SUBOBJECT = SEGMENT OWNER = JHEMR, SEGMENT TYPE = Table Segment Errors in file e:\app\administrator\diag\rdbms\jhemr\jhemr\trace\jhemr_ora_5364.trc (incident=51031): ORA-01578: ORACLE 数据块损坏 (文件号 10, 块号 498361) ORA-01110: 数据文件 10: 'E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMRV63.DBF' Incident details in: e:\app\administrator\diag\rdbms\jhemr\jhemr\incident\incdir_51031\jhemr_ora_5364_i51031.trc Fri Apr 28 16:07:01 2023 Trace dumping is performing id=[cdmp_20230428160701] Fri Apr 28 16:07:01 2023 Sweep [inc][51031]: completed Hex dump of (file 10, block 498352) in trace file e:\app\administrator\diag\rdbms\jhemr\jhemr\incident\incdir_51031\jhemr_m000_8072_i51031_a.trc Corrupt block relative dba: 0x02879ab0 (file 10, block 498352) Fractured block found during validation Data in bad block:type: 6 format: 2 rdba: 0x02879ab0last change scn: 0x0000.9d71bca2 seq: 0x1 flg: 0x06spare1: 0x0 spare2: 0x0 spare3: 0x0consistency value in tail: 0x00000000check value in block header: 0x2919computed block checksum: 0xa86b Reread of blocknum=498352, file=E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMRV63.DBF. found same corrupt data Reread of blocknum=498352, file=E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMRV63.DBF. found same corrupt data Reread of blocknum=498352, file=E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMRV63.DBF. found same corrupt data Reread of blocknum=498352, file=E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMRV63.DBF. found same corrupt data

数据库alert日志中有出现ORA-01578、ORA-01110数据坏块告警。 先通过RMAN VALIDATE校验一下坏块情况:

C:\Users\Administrator>rman target /恢复管理器: Release 11.2.0.1.0 - Production on 星期六 4月 29 10:24:25 2023Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.连接到目标数据库: JHEMR (DBID=1381176348)RMAN> validate database;启动 validate 于 29-4月 -23 使用目标数据库控制文件替代恢复目录 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=15 设备类型=DISK 通道 ORA_DISK_1: 正在开始验证数据文件 通道 ORA_DISK_1: 正在指定数据文件进行验证 输入数据文件: 文件号=00008 名称=E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMR1.DBF 输入数据文件: 文件号=00009 名称=E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMR2.DBF 输入数据文件: 文件号=00005 名称=E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMRV61.DBF 输入数据文件: 文件号=00006 名称=E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMRV62.DBF 输入数据文件: 文件号=00007 名称=E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\APJHEMRV64.DBF 输入数据文件: 文件号=00010 名称=E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMRV63.DBF 输入数据文件: 文件号=00011 名称=E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMRV64.DBF 输入数据文件: 文件号=00001 名称=E:\APP\ADMINISTRATOR\ORADATA\JHEMR\SYSTEM01.DBF 输入数据文件: 文件号=00003 名称=E:\APP\ADMINISTRATOR\ORADATA\JHEMR\UNDOTBS01.DBF 输入数据文件: 文件号=00002 名称=E:\APP\ADMINISTRATOR\ORADATA\JHEMR\SYSAUX01.DBF 输入数据文件: 文件号=00012 名称=E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMR65.DBF 输入数据文件: 文件号=00004 名称=E:\APP\ADMINISTRATOR\ORADATA\JHEMR\USERS01.DBF通道 ORA_DISK_1: 验证完成, 用时: 00:12:35 数据文件列表 ================= 文件状态 标记为损坏 空块 已检查的块 高 SCN ---- ------ -------------- ------------ --------------- ---------- 1 OK 0 28971 663041 2642827419文件名: E:\APP\ADMINISTRATOR\ORADATA\JHEMR\SYSTEM01.DBF块类型 失败的块 已处理的块---------- -------------- ----------------数据 0 617083索引 0 13785其他 0 3201文件状态 标记为损坏 空块 已检查的块 高 SCN ---- ------ -------------- ------------ --------------- ---------- 2 OK 0 34430 377622 2642832275文件名: E:\APP\ADMINISTRATOR\ORADATA\JHEMR\SYSAUX01.DBF块类型 失败的块 已处理的块---------- -------------- ----------------数据 0 97534索引 0 57480其他 0 188156文件状态 标记为损坏 空块 已检查的块 高 SCN ---- ------ -------------- ------------ --------------- ---------- 3 OK 0 3688 598400 2642827456文件名: E:\APP\ADMINISTRATOR\ORADATA\JHEMR\UNDOTBS01.DBF块类型 失败的块 已处理的块---------- -------------- ----------------数据 0 0索引 0 0其他 0 594712文件状态 标记为损坏 空块 已检查的块 高 SCN ---- ------ -------------- ------------ --------------- ---------- 4 OK 0 481 640 942238文件名: E:\APP\ADMINISTRATOR\ORADATA\JHEMR\USERS01.DBF块类型 失败的块 已处理的块---------- -------------- ----------------数据 0 15索引 0 2其他 0 142文件状态 标记为损坏 空块 已检查的块 高 SCN ---- ------ -------------- ------------ --------------- ---------- 5 OK 0 32532 4194176 2642835455文件名: E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMRV61.DBF块类型 失败的块 已处理的块---------- -------------- ----------------数据 0 720563索引 0 1064182其他 0 2376899文件状态 标记为损坏 空块 已检查的块 高 SCN ---- ------ -------------- ------------ --------------- ---------- 6 OK 0 41704 4194176 2642834758文件名: E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMRV62.DBF块类型 失败的块 已处理的块---------- -------------- ----------------数据 0 720155索引 0 1049984其他 0 2382333文件状态 标记为损坏 空块 已检查的块 高 SCN ---- ------ -------------- ------------ --------------- ---------- 7 FAILED 0 32125 4194176 2642835935文件名: E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\APJHEMRV64.DBF块类型 失败的块 已处理的块---------- -------------- ----------------数据 0 708816索引 0 1035407其他 14 2417828文件状态 标记为损坏 空块 已检查的块 高 SCN ---- ------ -------------- ------------ --------------- ---------- 8 OK 0 7 4194302 2642838719文件名: E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMR1.DBF块类型 失败的块 已处理的块---------- -------------- ----------------数据 0 504239索引 0 580859其他 0 3109197文件状态 标记为损坏 空块 已检查的块 高 SCN ---- ------ -------------- ------------ --------------- ---------- 9 FAILED 0 3353 4194302 2642836629文件名: E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMR2.DBF块类型 失败的块 已处理的块---------- -------------- ----------------数据 0 421677索引 0 312738其他 1 3456534文件状态 标记为损坏 空块 已检查的块 高 SCN ---- ------ -------------- ------------ --------------- ---------- 10 FAILED 0 29169 1615872 2642835408文件名: E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMRV63.DBF块类型 失败的块 已处理的块---------- -------------- ----------------数据 1 175544索引 0 108430其他 12 1302729文件状态 标记为损坏 空块 已检查的块 高 SCN ---- ------ -------------- ------------ --------------- ---------- 11 FAILED 0 136817 1615872 2642835685文件名: E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMRV64.DBF块类型 失败的块 已处理的块---------- -------------- ----------------数据 0 162777索引 0 84571其他 33 1231707文件状态 标记为损坏 空块 已检查的块 高 SCN ---- ------ -------------- ------------ --------------- ---------- 12 OK 0 129817 131072 2642835621文件名: E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMR65.DBF块类型 失败的块 已处理的块---------- -------------- ----------------数据 0 1104索引 0 0其他 0 151验证找到一个或多个损坏的块 有关详细资料, 请参阅跟踪文件 e:\app\administrator\diag\rdbms\jhemr\jhemr\trace\jhemr_ora_6936.trc 通道 ORA_DISK_1: 正在开始验证数据文件 通道 ORA_DISK_1: 正在指定数据文件进行验证 包括要进行验证的当前控制文件 备份集内包括当前的 SPFILE 通道 ORA_DISK_1: 验证完成, 用时: 00:00:01 控制文件和 SPFILE 的列表 =============================== 文件类型 状态 失败的块 已检查的块 ------------ ------ -------------- --------------- SPFILE OK 0 2 控制文件 OK 0 892 完成 validate 于 29-4月 -23

RMAN VALIDATE后,错误信息会记录到v d a t a b a s e b l o c k c o r r u p t i o n 视图中,查询 v database_block_corruption视图中,查询v databaseb​lockc​orruption视图中,查询vdatabase_block_corruption视图:

SQL> select file#,block#,corruption_type from v$database_block_corruption;FILE# BLOCK# CORRUPTIO ---------- ---------- ---------7 4109671 ALL ZERO 7 4109668 ALL ZERO 9 504703 CORRUPT 10 498352 FRACTURED 11 913502 ALL ZERO 11 914363 ALL ZERO 11 914358 ALL ZERO 11 914356 ALL ZERO 11 914353 ALL ZERO 11 914350 ALL ZERO 11 914219 ALL ZERO FILE# BLOCK# CORRUPTIO ---------- ---------- ---------11 914216 ALL ZERO 11 914213 ALL ZERO 11 914210 ALL ZERO 11 914206 ALL ZERO 已选择15行。

可看到,数据文件坏块较多,通过dba_extents查看坏块上的对象是什么。

SELECT * FROM dba_extents WHERE file_id = &AFN and &BL between block_id AND block_id + blocks - 1;

在这里插入图片描述统计了一下,除了一个是索引,其他都是同一张表,索引好处理,drop掉重建,表中有业务数据,需要另外想办法。参考MOS文档:Extracting Data from a Corrupt Table using DBMS_REPAIR or Event 10231 (文档 ID 33405.1) 在这里插入图片描述先通过设置10231事件后尝试创建表。 在这里插入图片描述

此次处理过程中,表创建成功,比对下跟原表的数据差异。 在这里插入图片描述 比原表少了1473条记录,相对于35W+条记录的表来说,1473算比较可观的数据了,跟业务沟通后,该表是通过另一个库的视图获取数据,业务部门比对下缺失的数据,通过工具重新拉一下数据即可。

表创建成功后,需要马上备份一下数据库,防止有更多的坏块发生,甚至系统表空间坏块发生导致数据库无法启动,但是数据文件有大量的坏块,备份是会有RMAN-03009、ORA-19566报错的。

RMAN-03009: backup 命令 (c3 通道上, 在 04/29/2023 10:58:11 上) 失败 ORA-19566: 超出损坏块限制 0 (文件 E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMR2.DBF) 继续执行其他作业步骤, 将不重新运行失败的作业 RMAN-03009: backup 命令 (c2 通道上, 在 04/29/2023 10:58:18 上) 失败 ORA-19566: 超出损坏块限制 0 (文件 E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMRV63.DBF) 继续执行其他作业步骤, 将不重新运行失败的作业 RMAN-03009: backup 命令 (c1 通道上, 在 04/29/2023 11:04:03 上) 失败 ORA-19566: 超出损坏块限制 0 (文件 E:\APP\ADMINISTRATOR\ORADATA\JHSEMR\JHEMRV64.DBF) 继续执行其他作业步骤, 将不重新运行失败的作业

此时RMAN备份可通过添加set maxcorrupt for datafile参数解决。

run{ allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; allocate channel c4 type disk; allocate channel c5 type disk; set maxcorrupt for datafile 7 to 10; set maxcorrupt for datafile 9 to 10; set maxcorrupt for datafile 10 to 10; set maxcorrupt for datafile 11 to 10; backup as compressed backupset full database filesperset = 5 format "e:\rman\full_%d_%T_%s"; }

备份完成后,此时,数据库中仍然出现坏块报错,处理步骤规划: 1、新表按照坏表的规格创建索引 2、申请业务停机时间,坏表重命名,例如xxx_old 3、新表重命名为正式业务表名 4、业务比对数据 5、drop坏表



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有