暂无图片
分享
默人
2019-02-25
ORA-0600报错

ORA -0600报错:

Fri Feb 15 18:44:11 2019

Restarting dead background process CJQ0

Fri Feb 15 18:44:11 2019

CJQ0 started with pid=33, OS id=3992 

Errors in file f:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_cjq0_3992.trc  (incident=210531):

ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], [], [], [], [], []

Errors in file f:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_cjq0_3992.trc  (incident=210532):

ORA-00600: internal error code, arguments: [600], [ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], [], [], [], [], []

], [], [], [], [], [], [], [], [], [], []


收藏
分享
9条回答
默认
最新
默人
上传附件:Oracle日志.rar
暂无图片 评论
暂无图片 有用 0
打赏 0
Kamus

较大概率您的数据文件有损坏。

image.png


ORA-600 [kdsgrp1] 在Oracle尝试读取一个数据却发现fetch error的时候会报出。

暂无图片 评论
暂无图片 有用 0
打赏 0
章芋文

这个库确实有问题了。

如果数据库还能打开,使用EXPDP/EXP导出重建库吧,或者通过RMAN备份恢复,

如果不能打开,没有备份,可以用ODU把业务数据抽出来。

暂无图片 评论
暂无图片 有用 0
打赏 0
下岗的扫地僧

能简单的描述下,之前做过相关的操作吗?从现在日志看你们进行了异常恢复操作,这个是由于

主机断电?存储异常?导致的

暂无图片 评论
暂无图片 有用 0
打赏 0
章芋文

另外,如果库能打开的话可以参考Eygle之前的文章,http://www.eygle.com/archives/2011/07/ora-600_kdsgrp1.html

先判断是什么对象,再做处理

select owner,segment_name,segment_type from dba_extents where file_id=1 and block_id<=88308 and (block_id+blocks)>=88308;
复制
暂无图片 评论
暂无图片 有用 0
打赏 0
默人

之前装的时候好像就有问题,断过一两次电

暂无图片 评论
暂无图片 有用 0
打赏 0
默人
上传附件:日志.rar
暂无图片 评论
暂无图片 有用 0
打赏 0
lx

hi,你好:

ORA-600 [kdsgrp1]错误通常在一些强制open数据库操作之后出现,以我过往的经验一般都是索引和表不一致导致的,可以很容易的模拟出ORA-600 [kdsgrp1]错误,如下所示:

test:

SQL> create table t as select rownum a,rownum b from dual connect by rownum<=100;


Table created.


SQL> create index i_t1 on t(a);


Index created.


SQL> select a,DBMS_ROWID.ROWID_RELATIVE_FNO(a.ROWID) FILE_ID,DBMS_ROWID.ROWID_BLOCK_NUMBER(a.ROWID) BLOCK_ID from t a where a=1; 


         A    FILE_ID   BLOCK_ID

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

         1          1      34753

此时bbed手动删除a=1的行,bbed操作过程忽略不计。构造出索引与表不一致的情况。

SQL> select /*+full(t)*/ count(*) from t 

  2  union all

  3  select /*+index(t)*/ count(*) from t where a is not null;


  COUNT(*)

----------

        99

       100

此时通过a=1对索引进行访问,回表时发现行并不存在时就会报ORA-600 [kdsgrp1]

SQL> select /*+index(t)*/ * from t where a=1;

select /*+index(t)*/ * from t where a=1

                            *

ERROR at line 1:

ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [],

[], [], [], [], []

trace会显示:

* kdsgrp1-1: *************************************************

            row 0x004087c1.0 continuation at

            0x004087c1.0 file# 1 block# 34753 slot 0 not found

KDSTABN_GET: 0 ..... ntab: 1

curSlot: 0 ..... nrows: 100

kdsgrp - dump CR block dba=0x004087c1

Block header dump:  0x004087c1

 Object id on Block? Y

 seg/obj: 0x39a5  csc: 0x00.10827c  itc: 3  flg: -  typ: 1 - DATA

     fsl: 0  fnx: 0x0 ver: 0x01

重建索引(一定要online哦)后报错消失:

SQL> alter index i_t1 rebuild online;


Index altered.


SQL> select /*+index(t)*/ * from t where a=1;


no rows selected

所以你可以通过trace找出报错的对象,重建该对象所有的索引即可。

暂无图片 评论
暂无图片 有用 0
打赏 0
章芋文
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
zabbix-server log报找不到这个odbc驱动,文件是存在的,然后使用isql 也能登录 ldd这个文件也是正常的 ldconfig 也正常
回答 2
已采纳
缺少环境变量配置,试试配置下oracle环境变量cat/etc/sysconfig/zabbixserverexportORACLEHOME/usr/lib/oracle/11.2/client64e
dblink超时问题
回答 5
可以测试每次执行了DBLINK后执行rollback或者commit。等几分钟后再次执行看看。最大可能是防火墙会中断非活动的TCP连接。
AWR分析报告问题求助:数据库突然变得卡慢,想知道是什么原因引起的
回答 2
enq:TXrowlockcontention:%DBtime40.8%以下sql查询一下锁selects.SID,s.SERIAL,s.MACHINE,s.TYPE,l.TYPE,l.CTIME,l
Oracle rac集群的缺点是什么
回答 3
已采纳
贵。
Oracle 19c 打补丁到最新的RU:35319490,删库后重新全导入的一个库,还需要再打一次补丁吗?
回答 1
不用,你是删库,又不是删除软件
为什么执行计划中因含有INSTR、LIKE、ERGEXP_LIKE等而导致的嵌套循环,被驱动表不能走索引?
回答 1
已采纳
INSTR、LIKE、ERGEXPLIKE等会匹配所有数据,走索引的访问路径只能是INDEXFULLSCAN。而INDEXFULLSCAN是单块读,全表扫描是多块读。如果INDEXFULLSCAN需要
Oracle 11g搭建的DG,可以用数据泵在备库上导数据吗?
回答 4
数据泵不能直接在屋里备库上导数据,导数据时数据泵会创建和维护一个表,需要写入权限,一般物理备库是readonly状态。如果一定要使用逻辑备份,建议使用exp操作
Sql server和oralce的查询同一个日期时间段内同一个视图表,为什么sql 查询oracle的视图表查询的记录条数和sql server 查询的记录数不一致?
回答 1
一般来说不会不一致的,除非查的不是同一个东西。建议通过其他测试来确定是不是连的同一个实例同一个用户
oracle 启动不起来
回答 3
那不是提示数据库资源已经运行了吗?你还执行startup做什么
Oracle能进行锁升级吗?
回答 1
已采纳
Oracle从来不会进行锁升级(lockescalation),但它会执行锁转换(lockconversion)。Oracle会尽可能地尝试使用最低级别的锁,如有必要,再把这个锁转换为一个受限更多的级
问题信息
请登录之后查看
附件列表
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~