ora-600 4194错

来源:互联网 发布:数据安全管理指引 编辑:程序博客网 时间:2024/05/01 13:54

客户电话说一个测试库报ora-600 4194错误,着急用,所以跑过去看情况。

windows虚拟机环境

测试库

10.2.0.3版本

alert日志发现大量的:

ora-27300

ora-27301

ora-27302

报错,google了解到这是一个bug,可以通过修改操作系统参数或者打补丁方式解决,我的账号过期,也没法去mos查看确定下

日志什么没法带出来,客户性质决定,凭记忆写下处理过程,在断电后有个ora-600 [k~~]的报错,了解到确实是断电导致的,估计断电停开机没人关注到这个测试库吧。

数据库可以启动到mount状态,我recover databse一下,然后alter database open居然可以打开,几秒钟又断了,再连接打开还是报错。

网上有资料说这是实例打开而数据库并没有真正打开,说实话我不是很理解。

在库打开的短暂时候我查询了回滚段的内容,

show parameter undo ——回滚段使用的是undotbs1

select segment_name,tablespace_name,status from dba_rollback_segs;——(11,12,13是offline状态,其余都是在线状态)

注:4194错误产生原因是undo有坏块

决定使用隐含参数跳过有问题的回滚段

1.SQL>startup mount

   SQL>create pfile="d:\a.ora"   from spfile     ——习惯在路径外创建一个自己的pfile

   SQL>shutdown immediate

 2.修改pfile(d:\a.ora,写字板打开

undo_management=MANUAL

_corrupted_rollback_segments=(_SYSSMU11$,_SYSSMU12$,_SYSSMU13$),我只是把offline的段给屏蔽了

保存_SYSSMU11$

3.SQL>startup pfile=="d:\a.ora"

数据库成功启动了

开始想是不是删除那几个offline的段就解决了呢,

我就drop了(_SYSSMU11$,_SYSSMU12$,_SYSSMU13$(命令:SQL> DROP ROLLBACK SEGMENT "_SYSSMU11$";),

呵呵~重启库还是不行,一样的报错,再次尝试短暂打开结果_SYSSMU1$——_SYSSMU10$全部都offline了。。有时间需要好好看看

4.我就重新设置pfile中_corrupted_rollback_segments参数中的值为从段1到段10

_corrupted_rollback_segments='_SYSSMU1$','_SYSSMU2$','_SYSSMU3$','_SYSSMU4$','_SYSSMU5$','_SYSSMU6$','_SYSSMU7$','_SYSSMU8$','_SYSSMU9$','_SYSSMU10'

使用修改后的pfile打开库

重建undo

SQL>create undo tablespace undotbs2  datafile 'D:/ORACLE/ORADATA/ORCL/UNDOTBS2.DBF'  size 10M;


SQl> alter system set undo_tablespace=undotbs2;

此时有个报错,是说必须在AUTO的模式下才能做此操作,大概这个意思
我把库关了,重新修改我的pfile文件,

undo_management=MANUAL

设置为

undo_management=AUTO

再次使用修改后的pfile文件打开库

此时再执行

SQl> alter system set undo_tablespace=undotbs2;

没有问题

然后 SQL> drop tablespace undotbs1 including contents and datafiles;

ok,好了,现在关库,重新打开看下

此时我重新打开还是用我自己的pfile,没问题

但是当用系统pfile直接SQL>startup时候

实例强制断开

打开alert有个3多少的报错,知道肯定是pfile问题啦

用我的a.ora再次打开库

SQL>create spfile from pfile;

之前系统的spfile已经被我删掉了,好啦,我再次启动应该没问题吧

SQl>startup

结果错误依旧,和之前一样,想了下,看来创建的时候不是依据我启动数据库的pfile内容创建的spfile,我用写字板打开spfile,看到信息依旧是使用undotbs1,不是我新更新后的undotbs1。确认这点,我直接把dbs路径下得pfile删掉,把我的拷贝过去,重新命名。

再次启动,ok,没问题了。

原创粉丝点击