insert變數太多導致例項重啟ORA-00600、ORA-01006

lmxx2020發表於2024-01-09

rac資料庫各節點頻繁重啟,alert日誌總會報ORA-00600和ORA-01006,如下:

Thu Dec 28 08:35:12 2023 Errors in file /u01/app/oracle/diag/rdbms/$service_name/$sid/trace/$sid_ora_104818.trc  (incident=583224): ORA-00600: internal error code, arguments: [17147], [0xD60651138], [], [], [], [], [], [], [], [], [], [] ORA-01006: bind variable does not exist Incident details in: /u01/app/oracle/diag/rdbms/zjyyhis/zjyyhis1/incident/incdir_583224/zjyyhis1_ora_104818_i583224.trc Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details. Thu Dec 28 08:36:02 2023 Thread 1 advanced to log sequence 319552 (LGWR switch) Current log# 1 seq# 319552 mem# 0: +DATA/zjyyhis/onlinelog/group_1.324.1013771043 Thu Dec 28 08:36:02 2023 LNS: Standby redo logfile selected for thread 1 sequence 319552 for destination LOG_ARCHIVE_DEST_3 Thu Dec 28 08:36:02 2023 LNS: Standby redo logfile selected for thread 1 sequence 319552 for destination LOG_ARCHIVE_DEST_2 Thu Dec 28 08:36:03 2023 Archived Log entry 1617307 added for thread 1 sequence 319551 ID 0x2e44ae14 dest 1: Thu Dec 28 08:36:15 2023 Dumping diagnostic data in directory=[cdmp_20231228083615], requested by (instance=1, osid=104818), summary=[incident=583224]. Thu Dec 28 08:36:15 2023 opiodr aborting process unknown ospid (104818) as a result of ORA-600 Thu Dec 28 08:36:16 2023 Sweep [inc][583224]: completed Sweep [inc2][583224]: completed Thu Dec 28 08:36:18 2023 Errors in file /u01/app/oracle/diag/rdbms/ $service_name/$sid/trace/$sid_pmon_144462.trc  (incident=579864): ORA-00600: internal error code, arguments: [17147], [0xD60651138], [], [], [], [], [], [], [], [], [], [] Incident details in: /u01/app/oracle/diag/rdbms/ $service_name/$sid/incident/incdir_579864/$sid_pmon_144462_i579864.trc Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details. Errors in file /u01/app/oracle/diag/rdbms/zjyyhis/zjyyhis1/trace/zjyyhis1_pmon_144462.trc: ORA-00600: internal error code, arguments: [17147], [0xD60651138], [], [], [], [], [], [], [], [], [], [] PMON (ospid: 144462): terminating the instance due to error 472 Thu Dec 28 08:36:20 2023 opiodr aborting process unknown ospid (153107) as a result of ORA-1092 Thu Dec 28 08:36:20 2023 opiodr aborting process unknown ospid (129928) as a result of ORA-1092 System state dump requested by (instance=1, osid=144462 (PMON)), summary=[abnormal instance termination]. System State dumped to trace file /u01/app/oracle/diag/rdbms/ $service_name/$sid/trace/$sid_diag_144502_20231228083620.trc Thu Dec 28 08:36:20 2023 opiodr aborting process unknown ospid (141027) as a result of ORA-1092 Thu Dec 28 08:36:20 2023 opiodr aborting process unknown ospid (128422) as a result of ORA-1092 Thu Dec 28 08:36:20 2023 opiodr aborting process unknown ospid (99093) as a result of ORA-1092 Thu Dec 28 08:36:21 2023 opiodr aborting process unknown ospid (105556) as a result of ORA-1092 Thu Dec 28 08:36:21 2023 opiodr aborting process unknown ospid (119579) as a result of ORA-1092 Thu Dec 28 08:36:21 2023 opiodr aborting process unknown ospid (128851) as a result of ORA-1092 Thu Dec 28 08:36:27 2023 ORA-1092 : opitsk aborting process Thu Dec 28 08:36:28 2023 License high water mark = 412 Thu Dec 28 08:36:30 2023 Termination issued to instance processes. Waiting for the processes to exit Instance termination failed to kill one or more processes Instance terminated by PMON, pid = 144462 USER (ospid: 170956): terminating the instance Thu Dec 28 08:36:41 2023 Instance terminated by USER, pid = 170956 Thu Dec 28 08:36:59 2023 Adjusting the default value of parameter parallel_max_servers from 3600 to 2970 due to the value of parameter processes (3000)

檢查:

/u01/app/oracle/diag/rdbms/ $service_name/$sid/trace/$sid_ora_104818.trc

檔案中報錯如下:

Incident 583224 created, dump file: /u01/app/oracle/diag/rdbms/zjyyhis/zjyyhis1/incident/incdir_583224/zjyyhis1_ora_104818_i583224.trc ORA-00600: internal error code, arguments: [17147], [0xD60651138], [], [], [], [], [], [], [], [], [], [] ORA-01006: bind variable does not exist

再檢查:

/u01/app/oracle/diag/rdbms/ $service_name/$sid/incident/incdir_583224/$sid_ora_104818_i583224.trc

日誌裡檢視sql_id,發現有變數超過13萬多:

Permanent space    =       80

******************************************************

----- End of Customized Incident Dump(s) -----


*** 2023-12-28 08:35:13.029

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

----- Current SQL Statement for this session (sql_id=35ft123xvfqxq) -----

begin

  

insert into table_name(d_id,d_name,p_id, create_time)

values (:1 , :2 ,:3 ,:4 ) ; 

insert into table_name(d_id,d_name,p_id, create_time)

values (:5 , :6 ,:7 ,:8 ) ; 

.............................

insert into table_name(d_id,d_name,p_id, create_time)

values (:130529 , :130530 ,:130531 ,:130532 ) ; 

insert into table_name(d_id,d_name,p_id, create_time)

values (:130533 , :130534 ,:130535 ,:130536 )

;end;


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

透過mos發現,這是一個bug,變數個數不能超過 65535個,不然可能造成實際當機,參考

Instance crashed after ORA-7445 [opiaba] and ORA-600 [17147] ( Doc ID 1466343.1 ) 

Bug 12578873 - ORA-7445 [opiaba] when using more than 65535 bind variables ( Doc ID 12578873.8 )

來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/22967847/viewspace-3003231/,如需轉載,請註明出處,否則將追究法律責任。

相關文章