当前位置:  数据库>oracle

Oracle启动时提示ORA-01578错误解决

    来源: 互联网  发布时间:2017-06-05

    本文导语: Oracle数据库启动的时候遇到坏块,特别是SYSTEM表空间中的一些底层表,如UNDO$,OBJ$等一些表,会导致数据库不能正常open,当然我们可以通过增加一些隐藏参数来达到跳过坏块来启动数据库,也可以通过bbed工具来手动修复块来。下...

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

1,数据库版本

SQL> select * from v$version;

 

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

PL/SQL Release 11.2.0.3.0 - Production

CORE    11.2.0.3.0      Production

TNS for Linux: Version 11.2.0.3.0 - Production

NLSRTL Version 11.2.0.3.0 - Production

 

[oracle@www.htz.pw ~]$sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.3.0 Production on Sun May 25 04:36:03 2014

 

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

 

Connected to an idle instance.

 

SQL> startup

ORACLE instance started.

 

Total System Global Area  237998080 bytes

Fixed Size                  2227216 bytes

Variable Size            146801648 bytes

Database Buffers          83886080 bytes

Redo Buffers                5083136 bytes

Database mounted.

ORA-01092: ORACLE instance terminated. Disconnection forced

ORA-00604: error occurred at recursive SQL level 1

ORA-00607: Internal error occurred while making a change to a data block

ORA-00600: internal error code, arguments: [kdBlkCheckError], [1], [225],

[6108], [], [], [], [], [], [], [], []

Process ID: 12178

Session ID: 1 Serial number: 5
 

2,启动报错

[oracle@www.htz.pw ~]$sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Sun May 25 04:20:44 2014

 

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

 

Connected to an idle instance.

 

SQL> startup

ORACLE instance started.

 

Total System Global Area  237998080 bytes

Fixed Size                  2227216 bytes

Variable Size            146801648 bytes

Database Buffers          83886080 bytes

Redo Buffers                5083136 bytes

Database mounted.

ORA-01092: ORACLE instance terminated. Disconnection forced

ORA-00604: error occurred at recursive SQL level 1

ORA-01578: ORACLE data block corrupted (file # 1, block # 225)

ORA-01110: data file 1: '/oracle/app/oracle/oradata/orcl1123/system01.dbf'

Process ID: 1617

Session ID: 1 Serial number: 5

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

3,bbed修复坏块

BBED> verify

DBVERIFY - Verification starting

FILE = /oracle/app/oracle/oradata/orcl1123/system01.dbf

BLOCK = 225

 

Block Checking: DBA = 4194529, Block Type = KTB-managed data block

Found block already marked corrupted

 

DBVERIFY - Verification complete

 

Total Blocks Examined        : 1

Total Blocks Processed (Data) : 1

Total Blocks Failing  (Data) : 0

Total Blocks Processed (Index): 0

Total Blocks Failing  (Index): 0

Total Blocks Empty            : 0

Total Blocks Marked Corrupt  : 0

Total Blocks Influx          : 0

Message 531 not found;  product=RDBMS; facility=BBED

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

BBED> p kcbh

struct kcbh, 20 bytes                      @0     

  ub1 type_kcbh                            @0        0x06

  ub1 frmt_kcbh                            @1        0xa2

  ub1 spare1_kcbh                          @2        0x00

  ub1 spare2_kcbh                          @3        0x00

  ub4 rdba_kcbh                            @4        0x004000e1

  ub4 bas_kcbh                            @8        0x0021beaa

  ub2 wrp_kcbh                            @12      0x0000

  ub1 seq_kcbh                            @14      0xff

  ub1 flg_kcbh                            @15      0x04 (KCBHFCKV)

  ub2 chkval_kcbh                          @16      0x4cba

  ub2 spare3_kcbh                          @18      0x0000

 

BBED> set mode edit

        MODE            Edit

 

BBED> set count 16

        COUNT          16

 

BBED> modify /x 00 offset 14

Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y

 File: /oracle/app/oracle/oradata/orcl1123/system01.dbf (0)

 Block: 225              Offsets:  14 to  29          Dba:0x00000000

------------------------------------------------------------------------

 0004ba4c 00000100 00000f00 0000aabe

 

 

 

 

BBED> set offset 8188

        OFFSET          8188

 

BBED> dump

 File: /oracle/app/oracle/oradata/orcl1123/system01.dbf (0)

 Block: 225              Offsets: 8188 to 8191          Dba:0x00000000

------------------------------------------------------------------------

 ff06aabe

 

 

 

BBED> modify /x 00 offset 8188

 File: /oracle/app/oracle/oradata/orcl1123/system01.dbf (0)

 Block: 225              Offsets: 8188 to 8191          Dba:0x00000000

------------------------------------------------------------------------

 0006aabe

 

 

 

BBED> p tailchk

ub4 tailchk                                @8188    0xbeaa0600

 

 

BBED> sum apply

Check value for File 0, Block 225:

current = 0x4cba, required = 0x4cba

 

BBED> verify

DBVERIFY - Verification starting

FILE = /oracle/app/oracle/oradata/orcl1123/system01.dbf

BLOCK = 225

 

Block Checking: DBA = 4194529, Block Type = KTB-managed data block

data header at 0x2a98b8725c

kdbchk: row locked by non-existent transaction

        table=0  slot=20

        lockid=1  ktbbhitc=2

Block 225 failed with check code 6101

 

DBVERIFY - Verification complete

 

Total Blocks Examined        : 1

Total Blocks Processed (Data) : 1

Total Blocks Failing  (Data) : 1

Total Blocks Processed (Index): 0

Total Blocks Failing  (Index): 0

Total Blocks Empty            : 0

Total Blocks Marked Corrupt  : 0

Total Blocks Influx          : 0

Message 531 not found;  product=RDBMS; facility=BBED

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

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

 

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

tl: 58 fb: --H-FL-- lb: 0x1  cc: 17

col  0: [ 2]  c1 15

col  1: [10]  5f 53 59 53 53 4d 55 32 30 24

col  2: [ 2]  c1 02

col  3: [ 2]  c1 06

col  4: [ 3]  c2 03 49

col  5: [ 5]  c4 02 62 0a 09

col  6: [ 1]  80

col  7: [ 3]  c2 03 2a

col  8: [ 3]  c2 02 3e

col  9: [ 1]  80

col 10: [ 2]  c1 04

col 11: [ 2]  c1 06

col 12: *NULL*

col 13: *NULL*

col 14: *NULL*

col 15: *NULL*

col 16: [ 2]  c1 0

 

BBED> p *kdbr[20]

rowdata[634]

------------

ub1 rowdata[634]                            @1823    0x2c

 

BBED> set offset 1823

        OFFSET          1823

 

BBED> dump

 File: /oracle/app/oracle/oradata/orcl1123/system01.dbf (0)

 Block: 225              Offsets: 1823 to 1838          Dba:0x00000000

------------------------------------------------------------------------

 2c011102 c1150a5f 53595353 4d553230

BBED> modify /x 2c00

 File: /oracle/app/oracle/oradata/orcl1123/system01.dbf (0)

 Block: 225              Offsets: 1823 to 1838          Dba:0x00000000

------------------------------------------------------------------------

 2c001102 c1150a5f 53595353 4d553230

 

 

 

 

 

BBED> sum apply

Check value for File 0, Block 225:

current = 0x6ec1, required = 0x6ec1

 

BBED> verify

DBVERIFY - Verification starting

FILE = /oracle/app/oracle/oradata/orcl1123/system01.dbf

BLOCK = 225

 

 

DBVERIFY - Verification complete

 

Total Blocks Examined        : 1

Total Blocks Processed (Data) : 1

Total Blocks Failing  (Data) : 0

Total Blocks Processed (Index): 0

Total Blocks Failing  (Index): 0

Total Blocks Empty            : 0

Total Blocks Marked Corrupt  : 0

Total Blocks Influx          : 0

Message 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.

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

Oracle 11gR2 在VMWare虚拟机中安装步骤

 


    
 
 

您可能感兴趣的文章:

  • Oracle数据库运行Oracle form时避免出现提示信息
  • fedora10安装oracle11g提示物理内存不足怎么办?
  • linux 安装 oracle 运行./runinstall 提示没有这个文件
  • 請問INSTALL ORACLE時,提示 not set DISPLAY是怎麼回事?
  • 安装oracle9,提示DISPALY not set
  • 求救:HPUNIX下的ORACLE7执行select * from tablename提示权限不足!!
  • Linux下安装Oracle 10G提示“bad interpreter: 权限不够”的解决
  • 用Jbuilder编译文件,提示找不到oracle驱动?
  • Oracle AS关键字 提示错误
  • 在linux下装oracle9i到了最后时候,提示/tmp空间不够了,怎么增加,谢谢!
  • 连接Oracle817数据库的错误提示
  • RedHat AS 4 安装oracle9i的时候,执行Disk1下的runInstaller后提示正在初始化虚拟机,请等待后就再无反应
  • Oracle安装提示INFO: /usr/lib/: No such file or directory解决
  • 避免Oracle中英文提示信息的两个好方法
  • win7安装oracle10g 提示程序异常终止 发生未知错误
  • 小弟想直接上传图片到Oracle的Blob中,诸位仁兄给点思路或提示或资料或源码
  • oracle 使用递归的性能提示测试对比
  • PL/SQL Dev连接Oracle弹出空白提示框的解决方法分享
  • Oracle修改提示符方法
  • 安装Oracle加载数据库错误areasQueries的解决
  • 我在安装oracle的时候出现了这个错误,请懂行人赐教~~附图!~~
  • 记录Linux下一次oracle启动错误
  • shell如何获取oracle错误码 在线等
  • Linux系统下安装Oracle X11错误解决办法
  • 求助前辈们:solaris 10 x86 安装oracle 10g 错误
  • 有 ORACLE 错误码文档吗? 谢谢大家!
  • Eclipse连接Oracle数据库的ORA-00604 ORA-12705错误
  • ORACLE安装时/tmp/orainstRoot.sh 执行发生错误
  • 关于提高Oracle数据库性能的四个错误认识
  • C++使用OCCI连Oracle10g的错误
  • Linux上管理本机Oracle的时候出现找不到ServiceName的错误
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • Linux系统下Oracle的启动与Oracle监听的启动
  • linux下安装oracle后使用命令行启动的方法 linux启动oracle
  • 让Oracle服务随Linux系统的启动而启动
  • 配置Oracle management server /Oracle启动OMS
  • solaris9下怎么查看oracle服务是否启动,以及怎么启动,在线等待。
  • 启动oracle是报错了
  • 深入理解Oracle数据库的启动和关闭
  • Linux系统查看Oracle服务是否启动
  • linux下oracle的自启动脚本解析
  • linux oracle8.17 下的Management server 如何启动
  • Unix/Linux上启动oracle数据库
  • Linux下命令行启动oracle时报错的解决
  • Linux下如何启动ORACLE 的Managerment Server服务????
  • 为何用dbstart启动oracle10g不好用
  • 高分求助:安装完oracle9i后启动不了
  • 关于Oracle启动无法启动netmgr问题的解决
  • linux上安装oracle 数据库后,是否能写shell程序实现数据库的自动启动。
  • Linux下如何启动oracle的Listener服务??
  • 如何启动和关闭安装在UNIX下的ORACLE数据库?
  • Oracle 12c发布简单介绍及官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • oracle 11g最新版官方下载地址
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle EBS R12 支持 Oracle Database 11g
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,