ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr]

早上同事说连不上fgdb但是可以连上xpnew这个库,让我给看下。第一反应是昨天停电服务器没有起来,然后自己测试连接如下。

C:\Windows\System32>sqlplus system/oracle@fgdb

SQL*Plus: Release 11.2.0.4.0 Production on 星期三 7月 14 09:40:01 2021

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

ERROR:
ORA-01033: ORACLE 正在初始化或关闭
进程 ID: 0
会话 ID: 0 序列号: 0


请输入用户名:

然后直接远程到服务器用本地登录的方式连接到数据库,发现已经mount但是没有open,就直接使用命令open,报错如下。

SQL> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
fgdb             MOUNTED

SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [32], [89560],[89575], [], [], [], [], [], [], []

看到这个中600的错误心头一紧,赶紧看日志。
alter database open
Beginning crash recovery of 1 threads
 parallel recovery started with 5 processes
Started redo scan
Completed redo scan
 read 72 KB redo, 39 data blocks need recovery
Errors in file E:\APP\ADMINISTRATOR\diag\rdbms\fgdb\fgdb\trace\fgdb_ora_6740.trc  (incident=7354):
ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [32], [89560], [89575], [], [], [], [], [], [], []
Incident details in: E:\APP\ADMINISTRATOR\diag\rdbms\fgdb\fgdb\incident\incdir_7354\fgdb_ora_6740_i7354.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Aborting crash recovery due to error 600
Errors in file E:\APP\ADMINISTRATOR\diag\rdbms\fgdb\fgdb\trace\fgdb_ora_6740.trc:
ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [32], [89560], [89575], [], [], [], [], [], [], []
Errors in file E:\APP\ADMINISTRATOR\diag\rdbms\fgdb\fgdb\trace\fgdb_ora_6740.trc:
ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [32], [89560], [89575], [], [], [], [], [], [], []
ORA-600 signalled during: alter database open...
Wed Jul 14 09:42:39 2021
Dumping diagnostic data in directory=[cdmp_20210714094239], requested by (instance=1, osid=6740), summary=[incident=7354].
Wed Jul 14 09:42:39 2021

查看trc文件如下内容
Successfully allocated 5 recovery slaves
Using 28 overflow buffers per recovery slave
Thread 1 checkpoint: logseq 32, block 2, scn 2779044
  cache-low rba: logseq 32, block 89416
    on-disk rba: logseq 32, block 89575, scn 2784760
  start recovery at logseq 32, block 89416, scn 0

*** 2021-07-14 09:42:37.636
Started writing zeroblks thread 1 seq 32 blocks 89560-89567

*** 2021-07-14 09:42:37.641
Completed writing zeroblks thread 1 seq 32
==== Redo read statistics for thread 1 ====
Total physical reads (from disk and memory): 4096Kb
-- Redo read_disk statistics --
Read rate (ASYNC): 72Kb in 0.31s => 0.23 Mb/sec
Longest record: 3Kb, moves: 0/98 (0%)
Change moves: 0/14 (0%), moved: 0Mb
Longest LWN: 5Kb, moves: 0/54 (0%), moved: 0Mb
Last redo scn: 0x0000.002a7de4 (2784740)
----------------------------------------------
----- Recovery Hash Table Statistics ---------
Hash table buckets = 262144
Longest hash chain = 1
Average hash chain = 39/39 = 1.0
Max compares per lookup = 1
Avg compares per lookup = 317/373 = 0.8
----------------------------------------------
WARNING! Crash recovery of thread 1 seq 32 is
ending at redo block 89560 but should not have ended before
redo block 89575
Incident 7354 created, dump file: E:\APP\ADMINISTRATOR\diag\rdbms\fgdb\fgdb\incident\incdir_7354\fgdb_ora_6740_i7354.trc
ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [32], [89560], [89575], [], [], [], [], [], [], []

ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [32], [89560], [89575], [], [], [], [], [], [], []
ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [32], [89560], [89575], [], [], [], [], [], [], []

*** 2021-07-14 09:47:31.330
*** 2021-07-14 09:47:31.330 5444 dbsdrv.c

在oracle官方网站没有找到类似的信息,在百度中看到
4.解决方法

SQL> SELECT STATUS FROM V$INSTANCE;
 
STATUS
------------
MOUNTED
 
--尝试直接recover database
SQL> RECOVER DATABASE ;
ORA-00283: 恢复会话因错误而取消
ORA-00264: 不要求恢复
--提示不用恢复
 
--再打开数据库,还是kcratr_nab_less_than_odr错误警告
SQL> ALTER DATABASE OPEN;
ALTER DATABASE OPEN
*
第 1 行出现错误:
ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [99189],
[43531], [43569], [], [], [], [], [], [], []
 
--尝试不完全恢复
SQL> RECOVER DATABASE UNTIL CANCEL;
ORA-10879: error signaled in parallel recovery slave
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01152: 文件 1 没有从过旧的备份中还原
ORA-01110: 数据文件 1: 'D:\DBDMS\DATA\SYSTEM01.DBF'
 
--重建控制文件
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS 'D:/1.TXT';
 
数据库已更改。
 
SQL> SHUTDOWN IMMEDIATE;
ORA-01109: 数据库未打开
 
 
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> STARTUP NOMOUNT;
ORACLE 例程已经启动。
 
Total System Global Area  417546240 bytes
Fixed Size                  2176328 bytes
Variable Size             268438200 bytes
Database Buffers          138412032 bytes
Redo Buffers                8519680 bytes
SQL> CREATE CONTROLFILE REUSE DATABASE "DBDMS" NORESETLOGS  NOARCHIVELOG
  2      MAXLOGFILES 16
  3      MAXLOGMEMBERS 3
  4      MAXDATAFILES 100
  5      MAXINSTANCES 8
  6      MAXLOGHISTORY 18688
  7  LOGFILE
  8    GROUP 1 'D:\DBDMS\LOG\REDO01.LOG'  SIZE 50M BLOCKSIZE 512,
  9    GROUP 2 'D:\DBDMS\LOG\REDO02.LOG'  SIZE 50M BLOCKSIZE 512,
 10    GROUP 3 'D:\DBDMS\LOG\REDO03.LOG'  SIZE 50M BLOCKSIZE 512
 11  DATAFILE
 12    'D:\DBDMS\DATA\SYSTEM01.DBF',
 13    'D:\DBDMS\DATA\SYSAUX01.DBF',
 14    'D:\DBDMS\DATA\RBSG01.DBF',
 15    'D:\DBDMS\DATA\DATA01.DBF',
 16    'D:\DBDMS\DATA\INDX01.DBF',
 17    'D:\DBDMS\DATA\DATA02.DBF',
 18    'D:\DBDMS\DATA\DATA03.DBF',
 19    'D:\DBDMS\DATA\DATA04.DBF',
 20    'D:\DBDMS\DATA\INDX02.DBF',
 21    'D:\DBDMS\DATA\SYSTEM02.DBF'
 22  CHARACTER SET ZHS16GBK
 23  ;
 
控制文件已创建。
 
--继续尝试恢复
SQL> RECOVER DATABASE ;
完成介质恢复。
SQL> ALTER DATABASE OPEN;
 
数据库已更改。
--open成功
在这次恢复中,主要就是重建控制文件,然后直接恢复成功,如果redo有损坏,那么可能需要使用不完全恢复,然后使用resetlogs打开数据库

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值