C_OBJ#_INTCOL#坏块导致数据库无法open故障---惜分飞

news/2025/10/25 16:10:29/文章来源:https://www.cnblogs.com/xifenfei/p/19165549

联系:手机/微信(+86 17813235971) QQ(107644445)QQ咨询惜分飞

标题:C_OBJ#_INTCOL#坏块导致数据库无法open故障处理

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

客户通过硬件恢复出来数据文件之后,尝试启动数据库报错,他们经过多轮尝试依旧无法open数据库,还原到恢复出来文件的初始状态,通过Oracle数据库异常恢复检查脚本(Oracle Database Recovery Check)脚本检测,发现file# 3 需要sequence#为3200的日志,其他文件需要sequence#为3205的日志
lowscn


检查发现数据库为非归档模式,而且sequence#为3200的redo已经被覆盖
redo


基于上述情况,可以确认除file# 3之外,其他文件可以正常recover

 

[oracle@oracledb check_db]$ sqlplus / as sysdba
 
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Oct 15 16:08:33 2025
Version 19.3.0.0.0
 
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
 
 
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
 
SQL> recover datafile 1;
Media recovery complete.
SQL> recover datafile 2,4,5,7,8,9,10,11,12,13,14,15,16,17;
Media recovery complete.
SQL> recover datafile 18,19,20,21;
Media recovery complete.

对于缺少日志的数据文件,直接使用自研的m_scn(modify scn)工具进行修改

[oracle@oracledb check_db]$ chmod +x m_scn
[oracle@oracledb check_db]$ ./m_scn 1.txt
Please Enter Password:
 
===== Starting Datafile Header modification program =====
Datafile list file: 1.txt
Operation Mode: Only Modify Datafile Header CheckPoint
Block Size: 8192
Log Path: /tmp/modify_scn
---------------------------------------------------------
Preparing Datafile list file...
Verifying Datafile existence...
ERROR: Datafile  does not exist!
Datafile verification passed
Initializing working directory...
Recovery script created: /tmp/modify_scn/backup/recover_datafile.sh
---------------------------------------------------------
Starting Datafile Header processing (total 3 files)...
[1/3] Processing Datafile Header: /data/20251014HF/oradata/system01.dbf (File number: 1)
  - Skipping file number 1 (control file)
---------------------------------------------------------
[2/3] Processing Datafile Header: /data/20251014HF/oradata/sysaux01.dbf (File number: 3)
  - Backing up Datafile header...
  - Executing Datafile Header modification with block size 8192...
  - Datafile Header processing completed
---------------------------------------------------------
Cleaning up temporary files...
================= All operations completed =================
 
Note: Execute /tmp/modify_scn/backup/recover_datafile.sh operation for rollback
[oracle@oracledb check_db]$ sqlplus / as sysdba
 
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Oct 15 16:15:12 2025
Version 19.3.0.0.0
 
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
 
 
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
 
SQL> recover datafile 3;
Media recovery complete.

然后尝试打开数据库报ORA-01092 ORA-01578等错误

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00604: error occurred at recursive SQL level 2
ORA-01578: ORACLE data block corrupted (file # 1, block # 132585)
ORA-01110: data file 1: '/data/app/oracle/oradata/ORCL/system01.dbf'
Process ID: 1617
Session ID: 1 Serial number: 5

报错比较明显是由于坏块导致数据库无法打开,进一步检查alert日志

2025-10-14T21:38:22.889985+08:00
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
stopping change tracking
2025-10-14T21:38:22.909799+08:00
Starting background process SMCO
2025-10-14T21:38:22.930114+08:00
SMCO started with pid=57, OS id=1630
2025-10-14T21:38:23.000833+08:00
ARC0 (PID:1616): Archived Log entry 3 added for T-1.S-3205 ID 0x6539a8b7 LAD:1
2025-10-14T21:38:23.524409+08:00
Undo initialization recovery: err:0 start: 19911054 end: 19911123 diff: 69 ms (0.1 seconds)
2025-10-14T21:38:23.826920+08:00
[26765] Successfully onlined Undo Tablespace 2.
Undo initialization online undo segments: err:0 start: 19911123 end: 19911426 diff: 303 ms (0.3 seconds)
Undo initialization finished serial:0 start:19911054 end:19911454 diff:400 ms (0.4 seconds)
Dictionary check beginning
Tablespace 'TEMP' #3 found in data dictionary,
but not in the controlfile. Adding to controlfile.
Dictionary check complete
Verifying minimum file header compatibility for tablespace encryption..
Verifying file header compatibility for tablespace encryption completed for pdb 0
*********************************************************************
WARNING: The following temporary tablespaces contain no files.
         This condition can occur when a backup controlfile has
         been restored.  It may be necessary to add files to these
         tablespaces.  That can be done using the SQL statement:
  
         ALTER TABLESPACE <tablespace_name> ADD TEMPFILE
  
         Alternatively, if these temporary tablespaces are no longer
         needed, then they can be dropped.
           Empty temporary tablespace: TEMP
*********************************************************************
Database Characterset is AL32UTF8
No Resource Manager plan active
2025-10-14T21:38:24.645423+08:00
Hex dump of (file 1, block 132585) in trace file /u01/app/diag/rdbms/orcl/ORCL/trace/ORCL_ora_26765.trc
 
Invalid temporary block relative dba: 0x004205e9 (file 1, block 132585)
Bad header found during buffer read
Data in bad block:
 type: 66 format: 2 rdba: 0x4c444242
 last change scn: 0x4c44.4242.4c444242 seq: 0x44 flg: 0x4c
 spare3: 0x4c44
 consistency value in tail: 0xfcc60601
 check value in block header: 0x4242
 computed block checksum: 0x9e0a
 
Reading datafile '/data/app/oracle/oradata/ORCL/system01.dbf' for corrupt data at rdba:0x004205e9(file 1,block 132585)
Reread (file 1, block 132585) found same corrupt data (no logical check)
2025-10-14T21:38:24.838291+08:00
Errors in file /u01/app/diag/rdbms/orcl/ORCL/trace/ORCL_ora_26765.trc  (incident=51502):
ORA-01578: ORACLE data block corrupted (file # 1, block # 132585)
ORA-01110: data file 1: '/data/app/oracle/oradata/ORCL/system01.dbf'
Incident details in: /u01/app/diag/rdbms/orcl/ORCL/incident/incdir_51502/ORCL_ora_26765_i51502.trc
2025-10-14T21:38:24.861113+08:00
Corrupt Block Found
         TIME STAMP (GMT) = 10/14/2025 21:38:23
         CONT = 0, TSN = 0, TSNAME = SYSTEM
         RFN = 1, BLK = 132585, RDBA = 4326889
         OBJN = 66, OBJD = 64, OBJECT = C_OBJ#_INTCOL#, SUBOBJECT =
         SEGMENT OWNER = SYS, SEGMENT TYPE = Cluster Segment
2025-10-14T21:38:26.554220+08:00
*****************************************************************
An internal routine has requested a dump of selected redo.
This usually happens following a specific internal error, when
analysis of the redo logs will help Oracle Support with the
diagnosis.
It is recommended that you retain all the redo logs generated (by
all the instances) during the past 12 hours, in case additional
redo dumps are required to help with the diagnosis.
*****************************************************************
2025-10-14T21:38:26.769742+08:00
Errors in file /u01/app/diag/rdbms/orcl/ORCL/trace/ORCL_ora_26765.trc:
ORA-00604: error occurred at recursive SQL level 2
ORA-01578: ORACLE data block corrupted (file # 1, block # 132585)
ORA-01110: data file 1: '/data/app/oracle/oradata/ORCL/system01.dbf'
2025-10-14T21:38:26.769940+08:00
Errors in file /u01/app/diag/rdbms/orcl/ORCL/trace/ORCL_ora_26765.trc:
ORA-00604: error occurred at recursive SQL level 2
ORA-01578: ORACLE data block corrupted (file # 1, block # 132585)
ORA-01110: data file 1: '/data/app/oracle/oradata/ORCL/system01.dbf'
Error 604 happened during db open, shutting down database
Errors in file /u01/app/diag/rdbms/orcl/ORCL/trace/ORCL_ora_26765.trc  (incident=51503):
ORA-00603: ORACLE server session terminated by fatal error
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00604: error occurred at recursive SQL level 2
ORA-01578: ORACLE data block corrupted (file # 1, block # 132585)
ORA-01110: data file 1: '/data/app/oracle/oradata/ORCL/system01.dbf'
Incident details in: /u01/app/diag/rdbms/orcl/ORCL/incident/incdir_51503/ORCL_ora_26765_i51503.trc
Invalid temporary block relative dba: 0x004205e9 (file 1, block 132585)
Bad header found during validation
Data in bad block:
 type: 66 format: 2 rdba: 0x4c444242
 last change scn: 0x4c44.4242.4c444242 seq: 0x44 flg: 0x4c
 spare3: 0x4c44
 consistency value in tail: 0xfcc60601
 check value in block header: 0x4242
 computed block checksum: 0x9e0a
 
Reread of blocknum=132585, file=/data/app/oracle/oradata/ORCL/system01.dbf. found same corrupt data
Reread of blocknum=132585, file=/data/app/oracle/oradata/ORCL/system01.dbf. found same corrupt data
Reread of blocknum=132585, file=/data/app/oracle/oradata/ORCL/system01.dbf. found same corrupt data
Reread of blocknum=132585, file=/data/app/oracle/oradata/ORCL/system01.dbf. found same corrupt data
Reread of blocknum=132585, file=/data/app/oracle/oradata/ORCL/system01.dbf. found same corrupt data
Checker run found 1 new persistent data failures
2025-10-14T21:38:27.515191+08:00
opiodr aborting process unknown ospid (26765) as a result of ORA-603
2025-10-14T21:38:27.528063+08:00
ORA-603 : opitsk aborting process
License high water mark = 18
USER (ospid: (prelim)): terminating the instance due to ORA error
2025-10-14T21:38:28.576271+08:00
Instance terminated by USER(prelim), pid = 26765

通过分析alert日志可以确定是由于file 1, block 132585损坏,对应的对象为C_OBJ#_INTCOL#,该对象是histgrm$表的cluster,非数据库必须核心对象,可以在启动的时候跳过该对象,启动数据库,然后设置event对该对象进行处理

SQL> alter database open;
 
Database altered.
 
SQL>  create table good_histgrm$ as select * from histgrm$;
 
Table created.
 
SQL> truncate cluster c_obj#_intcol#;
 
Cluster truncated.
 
SQL> insert into histgrm$ select * from good_histgrm$ ;
 
286071 rows created.
 
SQL> commit;
 
Commit complete.
 
SQL> select /*+ full(a) */ count(*) from histgrm$ a ;
 
  COUNT(*)
----------
    286071
 
SQL> select /*+ full(a) */ count(*) from histgrm$ a ;
 
  COUNT(*)
----------
    286071

至此整体上完成该库的恢复任务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/946234.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unreal:如何设置监听服务器

开启监听服务器的最简单办法,创建一个桌面快捷方式,修改目标为UnrealEditor.exe MyProject.uproject ?listen -game 加入则直接将启动参数?listen修改为ip注意前面没有- 在编辑器内也可以直接通过监听服务器连接 服…

2025年西安楼盘品牌排行推荐榜及开发商推荐权威指南

文章摘要 本文深入分析2025年西安楼盘品牌与开发商排行推荐,聚焦国企背景的陕西地建嘉信置业有限公司开发的地建嘉信臻城项目。项目以万科原团队运营、超配配套和交通优势为核心卖点,为空港区域提供高端人居解决方案…

docker 命令补充

docker 命令补充启动并立刻进入到容器里 docker run --name c7 -it centos:7 /bin/bash docker run --name c7 -it -d centos:7 /bin/bash docker ps docker ps -q 查看所有的容器 docker ps -a docker ps -aq 启动容器…

ProfiNet 转 MODBUS RTU三菱 PLC 经 232 协议和测量机电脑通信的经典案例

在当今快速发展的汽车制造行业,生产自动化和智能化程度不断提高,设备之间的高效通信成为提升生产效率和产品质量的关键因素。然而,不同设备往往采用不同的通信协议,这给系统集成带来了挑战。本文将详细介绍 ProfiN…

Unreal:如何在UE中实现SSH隧道,安全访问远程服务

前言 在UE项目开发中,经常需要访问远程服务器上的数据库、API或内网服务。直接暴露这些服务到公网存在安全风险,而SSH隧道(SSH Tunnel)提供了一种安全的解决方案:通过SSH加密通道转发本地端口到远程服务,既保证了数据传…

2025年货运车报警器实力厂家权威推荐榜单:环卫车报警器/电动汽车报警器(EVAS)/CAN通讯报警器源头厂家精选

随着商用车安全法规的加严和物流行业效率要求的提升,货运车报警器已从简单的警示装置升级为智能安全系统的重要组成部分。 在货运车安全领域,各种专业报警器正发挥着不可替代的作用。环卫车盲区报警器通过雷达或摄像…

2025 年建筑钢结构厂家最新推荐榜:聚焦不锈钢 / 网架 / 钢梁领域,权威精选,赋能建筑工地与厂房顶梁工程精准选型

引言 随着建筑钢结构行业步入高质量发展阶段,市场对优质品牌的需求愈发迫切。据中国建筑金属结构协会 2025 年度行业测评数据显示,当前钢结构市场合规品牌仅占总量的 68%,超三成企业存在资质不全、技术不达标等问题…

一个功能强大的控件,用于展示和编辑富文本内容,支持格式化文本(如粗体、斜体、颜色)、嵌入图像、超链接等就是在 WPF 中,`RichTextBox`

一个功能强大的控件,用于展示和编辑富文本内容,支持格式化文本(如粗体、斜体、颜色)、嵌入图像、超链接等就是在 WPF 中,`RichTextBox`2025-10-25 16:03 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-spac…

2025 年最新推荐煎饼机优质厂家榜单:涵盖全自动 / 半自动 / 仿手工 / 导热油等多类型,附中国食品机械协会测评权威结果

引言 当前煎饼机采购市场面临诸多选择难题,为帮助采购者精准筛选优质产品,中国食品机械协会联合行业专家开展 2025 年度煎饼机厂家测评工作。测评采用 “四维评估体系”,从技术实力、产品适配性、售后服务、市场口碑…

Day4表格的基本使用与表格结构标签(后者了解即可)

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">…

102302156 李子贤 数据采集第一次作业

作业1 用requests和BeautifulSoup库方法定向爬取给定网址(http://www.shanghairanking.cn/rankings/bcur/2020 )的数据,屏幕打印爬取的大学排名信息。 (1)代码和运行结果点击查看代码 import urllib.request from…

梦熊CSPS模拟草稿

#include<bits/stdc++.h> using namespace std; #define int long long struct q{int x,xx,y,yy;int v; }s[100];void init(){s[1].v=1;s[2].v=1;for(int i=3;i<=90;i++){s[i].v=s[i-1].v+s[i-2].v;}s[1].x=-…

Unreal:遍历Actor所有属性进入Sequence记录

void AMyDrivingReplayActor::AddInterp(const UStruct* ObjectClass) {for (TFieldIterator<FProperty> It(ObjectClass); It; ++It){It->SetPropertyFlags(CPF_Interp);if (const FStructProperty* AsStruc…

docker 进入容器:

docker 进入容器:[root@localhost ~]# [root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e40e729d2da2 centos:7 "/bin/bash" …

密码和验证码防止暴力破解 - 详解

密码和验证码防止暴力破解 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

2025 年商用直饮机租赁公司最新推荐排行榜:精选优质企业助力健康饮水,聚焦实力品牌广州/上海/南京/北京/济南/杭州直饮机租赁公司推荐

引言 当前商用净饮水市场需求持续攀升,各类企事业单位、公共场所对健康饮水的重视程度日益提高,但市场乱象却让不少需求方陷入选择困境。众多直饮机品牌混杂,部分品牌技术滞后导致净化效果不达标,难以适配不同场景…

2025年香油石磨机直销厂家权威推荐榜单:全自动香油石磨/电动香油石磨/香油石磨设备源头厂家精选

在追求健康饮食与传统风味回归的今天,香油石磨机以其低速低温的研磨特性,正成为保留食材天然营养与醇香的关键设备。 香油石磨机市场近年来保持稳定增长,其中全自动和电动型号的需求提升尤为明显,年增长率预计在10…

Paper: SALT: Step-level Advantage Assignment for Long-horizon Agents via Trajectory Graph

中文标题:SALT:通过轨迹图为长程智能体进行步级优势分配 作者机构:Jiazheng Li, et al. University of Connecticut, Amazon 论文地址:https://arxiv.org/pdf/2510.20022v1 论文贡献: 1)提出SALT,一个用于长程智…

Unreal:自定义配置DeveloperSettings

创建创建一个继承自UDeveloperSettings的类 类属性中Config=Game意思是在Game.ini中配置,加上DefaultConfig,就是DefaultGame.ini config=后面跟的就是配置文件名 所以这里是在DefaultVehicle.ini中配置 ini配置格式…

Unreal:无缝地图切换

原理 无缝地图切换有别于传统的流送地图,流送地图是在一个地图中放置子关卡,通过控制子关卡的加载和卸载来切换不同的地图 而无缝地图切换,是在切换地图的时候,先切换到一个简单的地图中,在后台加载地图,加载完成…