Oracle故障处理:数据库启动时遇到ORA-01578错误

news/2025/9/29 15:54:00/文章来源:https://www.cnblogs.com/www-htz-pw/p/19118916

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。

Oracle故障处理:数据库启动时遇到ORA-01578错误

数据库启动的时候遇到坏块,特别是SYSTEM表空间中的一些底层表,如UNDO$,OBJ$等一些表,会导致数据库不能正常open,当然我们可以通过增加一些隐藏参数来达到跳过坏块来启动数据库,也可以通过bbed工具来手动修复块来。下面是自己的一个测试环境遇到这样的错误,通过bbed工具来修复

欢迎大家加入ORACLE超级群:17115662 免费解决各种ORACLE问题,以后BLOG将迁移到http://www.htz.pw

1,数据库版本

SQL> select * from v$version;BANNER——————————————————————————–Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit ProductionPL/SQL Release 11.2.0.3.0 – ProductionCORE    11.2.0.3.0      ProductionTNS for Linux: Version 11.2.0.3.0 – ProductionNLSRTL Version 11.2.0.3.0 – Production[oracle@www.htz.pw ~]$sqlplus / as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on Sun May 25 04:36:03 2014Copyright (c) 1982, 2011, Oracle.  All rights reserved.Connected to an idle instance.SQL> startupORACLE instance started.Total System Global Area  237998080 bytesFixed Size                  2227216 bytesVariable Size             146801648 bytesDatabase Buffers           83886080 bytesRedo Buffers                5083136 bytesDatabase mounted.ORA-01092: ORACLE instance terminated. Disconnection forcedORA-00604: error occurred at recursive SQL level 1ORA-00607: Internal error occurred while making a change to a data blockORA-00600: internal error code, arguments: [kdBlkCheckError], [1], [225],[6108], [], [], [], [], [], [], [], []Process ID: 12178Session ID: 1 Serial number: 5

2,启动报错

[oracle@www.htz.pw ~]$sqlplus / as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on Sun May 25 04:20:44 2014Copyright (c) 1982, 2011, Oracle.  All rights reserved.Connected to an idle instance.SQL> startupORACLE instance started.Total System Global Area  237998080 bytesFixed Size                  2227216 bytesVariable Size             146801648 bytesDatabase Buffers           83886080 bytesRedo Buffers                5083136 bytesDatabase mounted.ORA-01092: ORACLE instance terminated. Disconnection forcedORA-00604: error occurred at recursive SQL level 1ORA-01578: ORACLE data block corrupted (file # 1, block # 225)ORA-01110: data file 1: ‘/oracle/app/oracle/oradata/orcl1123/system01.dbf’Process ID: 1617Session ID: 1 Serial number: 5

此块就是存储undo$基表的块,在数据库启动的时候,做恢复的时候,是需要去读undo块的,所以导致报错

3,bbed修复坏块

BBED> verifyDBVERIFY – Verification startingFILE = /oracle/app/oracle/oradata/orcl1123/system01.dbfBLOCK = 225Block Checking: DBA = 4194529, Block Type = KTB-managed data blockFound block already marked corruptedDBVERIFY – Verification completeTotal Blocks Examined         : 1Total Blocks Processed (Data) : 1Total Blocks Failing   (Data) : 0Total Blocks Processed (Index): 0Total Blocks Failing   (Index): 0Total Blocks Empty            : 0Total Blocks Marked Corrupt   : 0Total Blocks Influx           : 0Message 531 not found;  product=RDBMS; facility=BBED

这里发现块被标记为坏块,其实这里知道就是把seq更改为FF了,下面我们修改回来就可以了

BBED> p kcbhstruct kcbh, 20 bytes                       @0      ub1 type_kcbh                            @0        0x06ub1 frmt_kcbh                            @1        0xa2ub1 spare1_kcbh                          @2        0x00ub1 spare2_kcbh                          @3        0x00ub4 rdba_kcbh                            @4        0x004000e1ub4 bas_kcbh                             @8        0x0021beaaub2 wrp_kcbh                             @12       0x0000ub1 seq_kcbh                             @14       0xffub1 flg_kcbh                             @15       0x04 (KCBHFCKV)ub2 chkval_kcbh                          @16       0x4cbaub2 spare3_kcbh                          @18       0x0000BBED> set mode editMODE            EditBBED> set count 16COUNT           16BBED> modify /x 00 offset 14Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) yFile: /oracle/app/oracle/oradata/orcl1123/system01.dbf (0)Block: 225              Offsets:   14 to   29           Dba:0x00000000————————————————————————0004ba4c 00000100 00000f00 0000aabe<32 bytes per line>BBED> set offset 8188OFFSET          8188BBED> dumpFile: /oracle/app/oracle/oradata/orcl1123/system01.dbf (0)Block: 225              Offsets: 8188 to 8191           Dba:0x00000000————————————————————————ff06aabe<32 bytes per line>BBED> modify /x 00 offset 8188File: /oracle/app/oracle/oradata/orcl1123/system01.dbf (0)Block: 225              Offsets: 8188 to 8191           Dba:0x00000000————————————————————————0006aabe<32 bytes per line>BBED> p tailchkub4 tailchk                                 @8188     0xbeaa0600BBED> sum applyCheck value for File 0, Block 225:current = 0x4cba, required = 0x4cbaBBED> verifyDBVERIFY – Verification startingFILE = /oracle/app/oracle/oradata/orcl1123/system01.dbfBLOCK = 225Block Checking: DBA = 4194529, Block Type = KTB-managed data blockdata header at 0x2a98b8725ckdbchk: row locked by non-existent transactiontable=0   slot=20lockid=1   ktbbhitc=2Block 225 failed with check code 6101DBVERIFY – Verification completeTotal Blocks Examined         : 1Total Blocks Processed (Data) : 1Total Blocks Failing   (Data) : 1Total Blocks Processed (Index): 0Total Blocks Failing   (Index): 0Total Blocks Empty            : 0Total Blocks Marked Corrupt   : 0Total Blocks Influx           : 0Message 531 not found;  product=RDBMS; facility=BBED

这里看到报了ITL相当的一些东西,原因是由于原来做实验的时候,手动提交了数据。

报错代码的意思是,slot=20的行被锁住,占用了itl2.

下面是dump数据库看一下第21号的lb标记符

tl: 58 fb: –H-FL– lb: 0x1  cc: 17col  0: [ 2]  c1 15col  1: [10]  5f 53 59 53 53 4d 55 32 30 24col  2: [ 2]  c1 02col  3: [ 2]  c1 06col  4: [ 3]  c2 03 49col  5: [ 5]  c4 02 62 0a 09col  6: [ 1]  80col  7: [ 3]  c2 03 2acol  8: [ 3]  c2 02 3ecol  9: [ 1]  80col 10: [ 2]  c1 04col 11: [ 2]  c1 06col 12: *NULL*col 13: *NULL*col 14: *NULL*col 15: *NULL*col 16: [ 2]  c1 0BBED> p *kdbr[20]rowdata[634]————ub1 rowdata[634]                            @1823     0x2cBBED> set offset 1823OFFSET          1823BBED> dumpFile: /oracle/app/oracle/oradata/orcl1123/system01.dbf (0)Block: 225              Offsets: 1823 to 1838           Dba:0x00000000————————————————————————2c011102 c1150a5f 53595353 4d553230BBED> modify /x 2c00File: /oracle/app/oracle/oradata/orcl1123/system01.dbf (0)Block: 225              Offsets: 1823 to 1838           Dba:0x00000000————————————————————————2c001102 c1150a5f 53595353 4d553230<32 bytes per line>BBED> sum applyCheck value for File 0, Block 225:current = 0x6ec1, required = 0x6ec1BBED> verifyDBVERIFY – Verification startingFILE = /oracle/app/oracle/oradata/orcl1123/system01.dbfBLOCK = 225DBVERIFY – Verification completeTotal Blocks Examined         : 1Total Blocks Processed (Data) : 1Total Blocks Failing   (Data) : 0Total Blocks Processed (Index): 0Total Blocks Failing   (Index): 0Total Blocks Empty            : 0Total Blocks Marked Corrupt   : 0Total Blocks Influx           : 0Message 531 not found;  product=RDBMS; facility=BBED

块不在报错。验证通过

4,数据库正常打开

SQL> alter database open;Database altered.undo块能正常访问SQL> select name from undo$;NAME——————————SYSTEM_SYSSMU1$_SYSSMU10$_SYSSMU11$_SYSSMU12$_SYSSMU13$_SYSSMU14$_SYSSMU15$_SYSSMU16$_SYSSMU17$_SYSSMU18$NAME——————————_SYSSMU19$_SYSSMU2$_SYSSMU20$_SYSSMU3$_SYSSMU4$_SYSSMU5$_SYSSMU6$_SYSSMU7$_SYSSMU8$_SYSSMU9$21 rows selected.

------------------作者介绍-----------------------
姓名:黄廷忠
现就职:Oracle中国高级服务团队
曾就职:OceanBase、云和恩墨、东方龙马等
电话、微信、QQ:18081072613
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)

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

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

相关文章

建设网站过程视频dede查看网站

项目场景&#xff1a; 项目首页使用RadioGroupRadioButtonFragment实现页面切换&#xff0c;出现了一个问题fragment会出现重叠问题&#xff0c;就是一个fragment显示了两层&#xff0c; 并不是必现问题。 经过排查发现是项目主页面Activity被销毁重建了&#xff0c;但是之前…

【ACM出版|连续三届EI检索】第四届人工智能与智能信息处理国际学术会议(AIIIP 2025)

第四届人工智能与智能信息处理国际学术会议(AIIIP 2025)将于2025年10月24日-26日在中国-青岛举行。新一代人工智能理论的快速发展为信息处理技术的提供了新方法,促进了智能信息处理的发展与应用。智能信息处理是信号…

实用指南:梦回童年,将JSNES 游戏模拟器移植到 HarmonyOS 移植指南

实用指南:梦回童年,将JSNES 游戏模拟器移植到 HarmonyOS 移植指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &quo…

单键触控感应芯片 电容是触控IC VKD233HS -永嘉微VINKA 原厂

VKD233HS是单通道触摸检测芯片,功耗低、工作电压范围 宽以及稳定的触摸检测效果可以广泛的满足不同应用的需求, 此触摸检测芯片是专为取代传统按键而设计,内建稳压电路, 提供稳定电压给触摸检测电路使用,触摸检测PAD…

文明网站建设方案深圳空间设计有限公司

JS字符串方法大全 JS-2490. 回环句 const list str.split( ); JS-2506. 统计相似字符串对的数目 words words.map(item > [...new Set(item)].sort().join())

CSS中多种边框的实现小窍门 - 教程

CSS中多种边框的实现小窍门 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&…

微算法科技(NASDAQ: MLGO)研发基于 DPoS 框架的 DL-DPoS(深度链接委托权益证明)机制,增强区块链的共识算法

随着区块链技术的广泛应用,传统共识算法在性能、激励机制等方面的局限性逐渐显现。DPoS机制虽有一定优势,但仍需进一步优化以适应复杂的应用场景和提高网络安全性。微算法科技(NASDAQ: MLGO)为提升区块链网络的整体…

treap树模板

#include<bits/stdc++.h> using namespace std; #define maxn 100010 #define INF 1e9 int ch[maxn][2],dat[maxn],size[maxn],val[maxn],cnt[maxn]; int tot,root;int newno(int v){val[++tot]=v;cnt[tot]=1;da…

优秀交互设计网站四川seo推广

背景 AndroidStudio默认连接的是dl.google的gadle仓库。 每次重新build时: 下载速度慢;等待了半天总时build faild;build到一半connection timeout;即使使用了魔法也难以一次build好;这严重影响了我们的学习、开发效率。 当前网络上的使用国内镜像的教程不全 网上的教程…

Spring Boot版本1.5.7.RELEASE升级到2.5.14

Spring Boot版本1.5.7.RELEASE升级到2.5.14内置tomcat升级,从8.5.x升级到9.0.x flyway升级,从4.2.0升级到5.2.3,配置:flyway.enabled=true flyway.baselineOnMigrate=true flyway.locations=db.migration修改为: …

健康网站模版wordpress 导航调用

前言 我之前写过一篇文章&#xff0c;探究了zeroTier的最基础的玩法&#xff0c;那篇文章结尾我提到了使用zeroTier虽然实现组网了&#xff0c;但是我只能访问局域网中制定的设备&#xff0c;局域网中其他设备无法访问&#xff0c;这篇文章我又研究了一套方案openwrtzeroTier旁…

实现邮件发送

实现发送邮件的功能,可以在判定用户异地登录后发送邮件提醒或者使用邮件发送验证码的多种使用场景。 引入邮件依赖 <!--邮件发送依赖包--> <dependency><groupId>org.springframework.boot</gro…

AGC073C 赛后补题记录

感觉还是因为考场上没有用草稿纸,一直在原地思考。在草稿纸上多画画,可以拓展可能的入手点,更直观地刻画。 考虑将整棵树划分为若干个块,其中同一个块内每个点的选择方案都相同,对应的 \(x\) 也相同,并且每个块是…

LuatOS赋能Air780EPM:FTP通信开发教程正式上线!

随着物联网应用深入,远程文件传输需求日益增长。本教程聚焦LuatOS在Air780EPM平台上的FTP功能实现,提供详尽的代码示例与调试指导。 一、什么是 FTP 1.1 基本概念 FTP 协议 在 4G 物联网场景中,FTP 协议(File Tran…

深入解析:【深度学习计算机视觉】03:目标检测和边界框

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

DM40万用表为何全网爆火?!它有哪些与众不同?DM40万用表比肩千元级表,让您轻松实现专业级测量自由!

电子测量的“矛盾”与 DM40 的破局之道 在电子工程师的世界里,“矛盾” 始终存在:新手被传统万用表的多旋钮、多插孔搞得晕头转向,甚至因插错档位烧毁设备;资深工程师则要背着万用表、示波器、信号发生器 “三件套…

树形dp [POI 2013] LUK-Triumphal arch

波兰人神秘题目。 题意 \(n\) 点的树,初始节点 1 为黑色,其余白色。 两个人在博弈。 B 一开始位于 1 点,进行如下的回合。 首先每轮 A 选择 K 个点,然后 B 选择一个相邻的节点进行移动。 若任意时刻 B 位于白色的节…

【论术】t-design tree组件判断点击了角标还是label

用以精确校准是否点击了节点本身还是仅仅展开// 树的点击事件 const handleTreeClick = (params) => {const event = params.e;const labelElement = event.target.closest(".t-tree__label");// 判断是角…

Redis基础篇——集成客户端 - 实践

Redis基础篇——集成客户端 - 实践2025-09-29 15:29 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !impo…

leetCode刷题记录1

近来在反思自己的技能树,为找工作做准备。从大一的C语言、C++,到大二的Java、Python,甚至还没学的大三C#——编程语言学了一堆,但每一门都只够应付考试,没一个能算熟练掌握。技术框架也接触了不少,SpringBoot、V…