ITPub博客

首页 > 数据库 > Oracle > Oracle 12.2 ORA-600 数据库发生重启案例

Oracle 12.2 ORA-600 数据库发生重启案例

原创 Oracle 作者:xfhuangfu 时间:2026-06-09 15:01:38 0 删除 编辑

**适用范围**

Oracle Database 12.2+

**问题概述**

Oracle 12.2 RAC一个节点发生重启,重启前有ORA-00600: internal error code, arguments: [kcbk_populate_history_1]报错。

**问题原因**

Oracle 12.2.0.1.180417 下Bug 31600023 - ORA-700 [kcbk_populate_history_1], ORA-600 [17090], ORA-469 and Instance Crash 导致的。

**解决方案**

1、为数据库应用Oracle 12.2.0.1.201020RU或者12.2更高版本的RU;

2、升级到19c次新版本。

**分析过程**

1、数据库日志

```sql

...

Errors in file /u01/app/oracle/diag/rdbms/xfdb/xfdb1/trace/xfdb1_ckpt_21807.trc  (incident=72289):

ORA-00600: internal error code, arguments: [kcbk_populate_history_1], [0], [1278], [], [], [], [], [], [], [], [], []

Incident details in: /u01/app/oracle/diag/rdbms/xfdb/xfdb1/incident/incdir_72289/xfdb1_ckpt_21807_i72289.trc

2026-05-06T21:16:40.516546+08:00

Use ADRCI or Support Workbench to package the incident.

See Note 411.1 at My Oracle Support for error and packaging details.

2026-05-06T21:16:40.519028+08:00

Dumping diagnostic data in directory=[cdmp_20260506211640], requested by (instance=1, osid=21807 (CKPT)), summary=[incident=72289].

2026-05-06T21:16:40.520774+08:00

Errors in file /u01/app/oracle/diag/rdbms/xfdb/xfdb1/trace/xfdb1_ckpt_21807.trc:

ORA-00600: internal error code, arguments: [kcbk_populate_history_1], [0], [1278], [], [], [], [], [], [], [], [], []

Errors in file /u01/app/oracle/diag/rdbms/xfdb/xfdb1/trace/xfdb1_ckpt_21807.trc  (incident=72290):

ORA-469 [] [] [] [] [] [] [] [] [] [] [] []

2026-05-06T21:16:41.960159+08:00

USER (ospid: 21807): terminating the instance due to error 469

2026-05-06T21:16:42.133928+08:00

System state dump requested by (instance=1, osid=21807 (CKPT)), summary=[abnormal instance termination].

...

```

从数据库日志中可以看到ORA-00600 [kcbk_populate_history_1]报错后,数据库发生了重启。

2、trace

```sql

xfdb1_ckpt_21807_i72289.trc


Dump file /u01/app/oracle/diag/rdbms/xfdb/xfdb1/incident/incdir_72289/xfdb1_ckpt_21807_i72289.trc

Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

Build label:    RDBMS_12.2.0.1.0_LINUX.X64_170125

ORACLE_HOME:    /u01/app/oracle/product/12.2.0.1/dbhome_1

System name: Linux

Node name: hostdb01

Release: 3.10.0-693.11.6.el7.x86_64

Version: #1 SMP Thu Dec 28 14:23:39 EST 2017

Machine: x86_64

Instance name: xfdb1

Redo thread mounted by this instance: 1

Oracle process number: 36

Unix process pid: 21807, image: oracle@hostdb01 (CKPT)


*** 2026-05-06T21:16:38.867035+08:00

*** SESSION ID:(194.5853) 2026-05-06T21:16:38.867060+08:00

*** CLIENT ID:() 2026-05-06T21:16:38.867071+08:00

*** SERVICE NAME:(SYS$BACKGROUND) 2026-05-06T21:16:38.867080+08:00

*** MODULE NAME:() 2026-05-06T21:16:38.867090+08:00

*** ACTION NAME:() 2026-05-06T21:16:38.867100+08:00

*** CLIENT DRIVER:() 2026-05-06T21:16:38.867109+08:00

 

[TOC00000]

Jump to table of contents

Dump continued from file: /u01/app/oracle/diag/rdbms/xfdb/xfdb1/trace/xfdb1_ckpt_21807.trc

[TOC00001]

ORA-00600: internal error code, arguments: [kcbk_populate_history_1], [0], [1278], [], [], [], [], [], [], [], [], []


[TOC00001-END]

[TOC00002]

========= Dump for incident 72289 (ORA 600 [kcbk_populate_history_1]) ========


*** 2026-05-06T21:16:38.873903+08:00

dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0)

[TOC00003]

----- SQL Statement (None) -----

Current SQL information unavailable - no cursor.

[TOC00003-END]


[TOC00004]

----- Call Stack Trace -----

calling              call     entry                argument values in hex      

location             type     point                (? means dubious value)     

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

ksedst()+119         call     kgdsdst()            7FFE78FC0E78 000000002

                                                   7FFE78FA28E0 ? 7FFE78FA29F8 ?

                                                   000000000 000000082 ?

dbkedDefDump()+1200  call     ksedst()             000000000 000000002 ?

                                                   7FFE78FA28E0 ? 7FFE78FA29F8 ?

                                                   000000000 ? 000000082 ?

ksedmp()+259         call     dbkedDefDump()       000000003 000000002

                                                   7FFE78FA28E0 ? 7FFE78FA29F8 ?

                                                   000000000 ? 000000082 ?

dbgexPhaseII()+2130  call     ksedmp()             0000003EB 000000002 ?

                                                   7FFE78FA28E0 ? 7FFE78FA29F8 ?

                                                   000000000 ? 000000082 ?

dbgexProcessError()  call     dbgexPhaseII()       7FA14C3276C0 7FA146E4B010

+2531                                              7FFE78FC57C0 7FFE78FA29F8 ?

                                                   000000000 ? 000000082 ?

dbgePostErrorKGE()+  call     dbgexProcessError()  7FA14C3276C0 7FA146E4B010

1767                                               000000001 000000000

                                                   000000000 ? 000000082 ?

dbkePostKGE_kgsf()+  call     dbgePostErrorKGE()   7FA14C3679A0 7FA1465B7678

90                                                 000000258 000000000 ?

                                                   000000000 ? 000000082 ?

kgeadse()+477        call     dbkePostKGE_kgsf()   7FA14C3679A0 7FA1465B7678

                                                   000000258 000000000 ?

                                                   000000000 ? 000000082 ?

kgerinv_internal()+  call     kgeadse()            7FA14C3679A0 ? 7FA1465B7678 ?

49                                                 000000258 ? 0118790DC

                                                   000000000 000000002

kgerinv()+40         call     kgerinv_internal()   7FA14C3679A0 ? 7FA1465B7678 ?

                                                   000000258 ? 0118790DC ?

                                                   000000000 ? 000000002 ?

kgeasnmierr()+150    call     kgerinv()            7FA14C3679A0 ? 7FA1465B7678 ?

                                                   000000258 ? 0118790DC ?

                                                   000000000 ? 000000002 ?

kcbk_populate_histo  call     kgeasnmierr()        7FA14C3679A0 ? 7FA1465B7678 ?

ry()+1767                                          000000258 ? 0118790DC ?

                                                   000000000 000000000

kcbk_prefetch_track  call     kcbk_populate_histo  000000003 ? 7FA1465B7678 ?

()+318                        ry()                 000000258 ? 0118790DC ?

                                                   000000000 ? 000000000 ?

kcbk_stat_act()+78   call     kcbk_prefetch_track  000000003 ? 7FA1465B7678 ?

                              ()                   000000258 ? 0118790DC ?

                                                   000000000 ? 000000000 ?

ksbcti()+247         call     kcbk_stat_act()      000000003 ? 7FA1465B7678 ?

                                                   000000258 ? 0118790DC ?

                                                   000000000 ? 000000000 ?

ksbabs()+11524       call     ksbcti()             000000003 ? 7FA146F79E40

                                                   000000001 0118790DC ?

                                                   000000000 ? 000000000 ?

ksbrdp()+1079        call     ksbabs()             000000003 ? 7FA146F79E40 ?

                                                   000000001 ? 0118790DC ?

                                                   000000000 ? 000000000 ?

opirip()+609         call     ksbrdp()             000000003 ? 7FA146F79E40 ?

                                                   000000001 0118790DC ?

                                                   000000000 ? 000000000 ?

opidrv()+602         call     opirip()             000000032 000000004

                                                   7FFE78FC9098 0118790DC ?

                                                   000000000 ? 000000000 ?

sou2o()+145          call     opidrv()             000000032 000000004

                                                   7FFE78FC9098 0118790DC ?

                                                   000000000 ? 000000000 ?

opimai_real()+202    call     sou2o()              7FFE78FC9070 000000032

                                                   000000004 7FFE78FC9098

                                                   000000000 ? 000000000 ?

ssthrdmain()+417     call     opimai_real()        000000000 7FFE78FC9380

                                                   000000004 ? 7FFE78FC9098 ?

                                                   000000000 ? 000000000 ?

main()+262           call     ssthrdmain()         000000000 000000003

                                                   7FFE78FC9380 000000001

                                                   000000000 000000000 ?

__libc_start_main()  call     main()               000000000 7FFE78FC9598

+245                                               7FFE78FC9380 ? 000000001 ?

                                                   000000000 ? 000000000 ?

_start()+41          call     __libc_start_main()  000D05DC0 000000001

                                                   7FFE78FC9598 7FA1475E6B35 ?

                                                   000000000 ? 000000000 ?

[TOC00004-END]

 


[TOC00005]

--------------------- Binary Stack Dump ---------------------

 


========== FRAME [1] (ksedst()+119 -> kgdsdst()) ==========

defined by frame pointers 0x7ffe78fc0fe0  and 0x7ffe78fc0e60

CALL TYPE: call   ERROR SIGNALED: no   COMPONENT: KSE


*** 2026-05-06T21:16:39.006315+08:00

RDI 00007FFE78FC0E78 RSI 0000000000000002 RDX 00007FFE78FA28E0 

RCX 00007FFE78FA29F8 R8 0000000000000000 R9 0000000000000082 

RAX 0000000000000000 RBX 00007FA14C3A9F40 RBP 00007FFE78FC0FE0 

R10 0000000000000000 R11 0000000000000000 R12 0000000000000000 

R13 0000000000000000 R14 0000000000000000 R15 0000000000002004 

RSP 00007FFE78FC0E70 RIP 0000000000D2FC87 

Dump of memory from 0x7ffe78fc0e60 to 0x7ffe78fc0fe0

7FFE78FC0E60 78FC0FE0 00007FFE 00D2FC87 00000000  [...x............]

7FFE78FC0E70 00000000 00000000 10A3BF20 00000000  [........ .......]

7FFE78FC0E80 00D2BE00 00000000 10A3BF20 00000000  [........ .......]

7FFE78FC0E90 00D2BE00 00000000 4C3679A0 00007FA1  [.........y6L....]

7FFE78FC0EA0 4C3679A0 00007FA1 4C2670A8 00007FA1  [.y6L.....p&L....]

7FFE78FC0EB0 00000100 00000000 4C39E3BC 00007FA1  [..........9L....]

7FFE78FC0EC0 00000001 00000000 4C371060 00007FA1  [........`.7L....]

7FFE78FC0ED0 00000001 00000000 00000000 00000000  [................]

7FFE78FC0EE0 00000000 00000000 4C3276C0 00007FA1  [.........v2L....]

7FFE78FC0EF0 00000000 00000000 00D05CC0 00000000  [.........\......]

7FFE78FC0F00 1105C7AE 00000000 00D31070 00000000  [........p.......]

7FFE78FC0F10 00000000 00000000 46F5C028 00007FA1  [........(..F....]

7FFE78FC0F20 0F1A4860 00000000 4C3679A0 00007FA1  [`H.......y6L....]

7FFE78FC0F30 BEBEA703 02050034 4C3A9F40 00007FA1  [....4...@.:L....]

7FFE78FC0F40 00000000 00000000 4C3A9F40 00007FA1  [........@.:L....]

7FFE78FC0F50 122DDF58 00000000 122DDFB8 00000000  [X.-.......-.....]

7FFE78FC0F60 78FC0F90 00007FFE 476D038D 00007FA1  [...x......mG....]

7FFE78FC0F70 00000000 00000000 10EE7EE8 00000000  [.........~......]

7FFE78FC0F80 04189374 00000000 30268486 00000000  [t.........&0....]

7FFE78FC0F90 78FC0FA0 00007FFE 10EE7E27 00000000  [...x....'~......]

7FFE78FC0FA0 78FC0FE0 00007FFE 00D2E756 00000000  [...x....V.......]

7FFE78FC0FB0 122DDF58 00000000 00000000 00000000  [X.-.............]

7FFE78FC0FC0 00000000 00000000 00000002 00000000  [................]

7FFE78FC0FD0 4C3A9F40 00007FA1 00000003 00000000  [@.:L............]


========== FRAME [2] (dbkedDefDump()+1200 -> ksedst()) ==========

...

```

trace中看的这些函数与buffer pool相关,kcbk_populate_history,kcbk_prefetch_track,kcbk_stat_act,这些函数应该由CKPT检查点进程维护。

**KCBK-[K]ernal [C]ache [B]uffer chec[K]**-KCBK应该是buffer pool的检查。

**kcbk_populate_history** - kernel cache buffers checkpoint queue manipulation populate history table for db_block_prefetching, make decision, write to fixed SGA

**kcbk_prefetch_track** - kernel cache buffers checkpoint queue manipulation db_block_prefetch administration

**kcbk_stat_act**   kcbk_stat_act - kernel cache buffers checkpoint queue manipulation

**【知识点】**

**buffer pool**:SGA中的一个内存区域,用于缓存数据库块以减少磁盘I/O并提高数据访问性能

**检查点进程 (CKPT)**:“检查点”是一种数据结构,用于定义数据库的重做线程中的系统更改号 (SCN)。检查点被记录在控制文件和每个数据文件头中。它们是恢复操作的关键元素。 


【小结】Oracle该版本的buffer pool结构信息异常报ORA-600 [kcbk_populate_history_1]然后发生了重启,建议生产环境及时打RU修复该bug。


-the end-

**MyBologs:**

https://www.myhfxf.com

https://www.xiaofeihuangfu.com

CSDN: https://blog.csdn.net/xfhuangfu

ITPUB: https://blog.itpub.net/28373936/

微信公众号:xfhuangfu


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28373936/viewspace-3173362/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Xiaofei Huangfu Oracle DBA,Oracle ACE Oracle 19c OCM12c OCM,11g OCM MySQL 5.6,5.7,8.0 OCP 18年以上IT从业经验,有丰富的数据库和开发领域经验,多年Oracle运维经验和java开发经验。

注册时间:2013-09-05

  • 博文量
    151
  • 访问量
    231216