Oracle出现与并行相关的ORA-00600时的调查方法

出现了 ORA-00600[kxfpqsod_qc_sod], 如何调查呢?

例如:从trace 文件的 Call Stack,可以看到

Error:
ORA-600 [kxfpqsod_qc_sod] [] [] [] [] [] [] [] [] [] [] []
[00]: dbgexProcessError [diag_dde]
[01]: dbgeExecuteForError [diag_dde]
[02]: dbgePostErrorKGE [diag_dde]
[03]: dbkePostKGE_kgsf [rdbms_dde]
[04]: kgeadse []
[05]: kgerinv_internal []
[06]: kgerinv []
[07]: kgeasnmierr []
[08]: kxfpqsod_qc_sod [Parallel_Execution]<-- Signaling
[09]: kxfpqsod [Parallel_Execution]
[10]: kxfrdel [Parallel_Execution]
[11]: kxsffir [cursor]
[12]: kxsFreeExecutionHeap [cursor]
[13]: kxsCloseXsc [cursor]
[14]: kksCloseCursor [cursor]
[15]: opicca []
[16]: opiclo []
[17]: opicls []
[18]: opiodr []
[19]: rpidrus []
[20]: skgmstack []
[21]: rpiswu2 []
[22]: rpidrv []
[23]: psdcls [PLSQL_PSD_Generic]
[24]: plcurClose [PLSQL_Infrastructure]
[25]: kgscReleaseACursor []
[26]: kgscReleaseCursorGroup []
[27]: kgiscl []
[28]: ksuxds [ksu]
[29]: ksudel [ksu]
[30]: opidcl []
[31]: opidrv []
[32]: sou2o []
[33]: opimai_real []
[34]: ssthrdmain []
[35]: main []
[36]: __libc_start_main []

从参数上看,由于是和并行有关,可以考虑:如果时不时地在一个特定的时间段出现,可以针对这个时间段取并行 Trace:

开始:
alter system set events 'trace [parallel_execution] disk lowest';
alter system set events 'trace [px_messaging] memory high';

停止:
alter system set events 'trace [parallel_execution] disk lowest';
alter system set events 'trace [px_messaging] memory high';

原文地址:https://www.cnblogs.com/gaojian/p/7568606.html