[Oracle工程師手記] ORA-12850 錯誤的分析


查看 alert log, 確實看到了 ORA-12850 錯誤的信息。

NI cryptographic checksum mismatch error: 12599.

  VERSION INFORMATION:
    TNS for Linux: Version 12.1.0.2.0 - Production
    Oracle Bequeath NT Protocol Adapter for Linux: Version 12.1.0.2.0 - Production
    TCP/IP NT Protocol Adapter for Linux: Version 12.1.0.2.0 - Production
  Time: 29-MAR-2021 18:41:18
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12599
    
TNS-12599: TNS:cryptographic checksum mismatch
    ns secondary err code: 2526
    nt main err code: 0
    nt secondary err code: 0
    nt OS err code: 0
Mon Mar 27 18:41:36 2021
Errors in file /opt/app/oracle/myorcl/trace/myorcl_m001_34933.trc:
ORA-12850: cannot assign slaves to all specified instances: 2 required, 1 allocated
Mon Mar 27 18:42:26 2021


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

NI cryptographic checksum mismatch error: 12599. ***

  VERSION INFORMATION:
    TNS for Linux: Version 12.1.0.2.0 - Production
    Oracle Bequeath NT Protocol Adapter for Linux: Version 12.1.0.2.0 - Production
    TCP/IP NT Protocol Adapter for Linux: Version 12.1.0.2.0 - Production
  Time: 29-MAR-2021 18:42:26
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12599
    
TNS-12599: TNS:cryptographic checksum mismatch
    ns secondary err code: 2526
    nt main err code: 0
    nt secondary err code: 0
    nt OS err code: 0
Mon Mar 27 18:43:01 2021

 
看 trace 文件當時的輸出內容,可以看到出現問題時,正在訪問 GV$SQL_MONITOR 表。

<myorcl_m001_34933.trc>

*** 2021-03-27 18:41:36.167
*** SESSION ID:(159.44654) 2021-03-27 18:41:36.167
*** CLIENT ID:() 2021-03-27 18:41:36.167
*** SERVICE NAME:(SYS$BACKGROUND) 2021-03-27 18:41:36.167
*** MODULE NAME:(MMON_SLAVE) 2021-03-27 18:41:36.167
*** CLIENT DRIVER:() 2021-03-27 18:41:36.167
*** ACTION NAME:(Automatic Report Flush) 2021-03-27 18:41:36.167
 
ORA-12850: cannot assign slaves to all specified instances: 2 required, 1 allocated
Dump of memory from 0x0000000122533648 to 0x000000011568D38C
122533640                   48544957 4E4F4D20          [WITH MON]
122533650 524F5449 5441445F 53412041 45532820  [ITOR_DATA AS (SE]
122533660 5443454C 534E4920 44495F54 454B202C  [LECT INST_ID, KE]
122533670 4E202C59 28324C56 515F5850 44495343  [Y, NVL2(PX_QCSID]
......

122533F50 44495F4E 4F524620 5647204D 4C515324  [N_ID FROM GV$SQL]
122533F60 4E4F4D5F 524F5449 314F4D20 45485720  [_MONITOR MO1 WHE]
122533F70 4D204552 492E314F 5F54534E 42204449  [RE MO1.INST_ID B]

 

但凡涉及到 GV$ 表,oracle 數據庫都是要訪問 RAC 各個節點上的內容。而在當時,DB 的 alert log 中,已經同時出現了多次的 TNS 錯誤,可以認為,此節點與其他節點或客戶端無法通信,推測RAC的節點間通信可能是有問題的。因為這個原因,oracle 數據庫無法訪問所有的節點,所以 ORA-12850 錯誤就產生了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM