ORA-12801: error signaled in parallel query server PZ99分析
分析結論
這個案例本身很簡單,不難,就是想和大家分享下(主要是ORACLE的初學者,牛人請無視之)1,查詢SQL的WHERE條件列的資料型別一定要明確
2,查詢報錯的幾個ORACLE錯誤,要學會分析,有些報錯可能只是表象,有煙霧彈的作用喲,小心上當
3,在分析排錯時,如果一種思路走不通,馬上嘗試另一種思路,本文我就採用了調換列值和反向思維,以及啟用自己的測試環境
(在自己的測試環境你可以大膽操作,先把原理搞清晰,再在生產上操作),切切
4,學習方法很重要,歡迎與大家交流,共同提升
案例
今天在某客戶監控資料庫時,分析latch free等待事件,發現執行如下查詢SQL竟然報錯資料庫版本
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE 11.2.0.4.0 Production
TNS for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
作業系統版本
SQL> host uname -a
AIX actdb4 1 6 00F902584C00
發現有並行查詢報錯,沒啟用並行喲,怪怪?
SQL> select count(*) from gv$active_session_history where p1='070000000003A8A0';
select count(*) from gv$active_session_history where p1='070000000003A8A0'
*
ERROR at line 1:
ORA-12801: error signaled in parallel query server PZ99, instance actdb4:act42 (2)
ORA-01722: invalid number
查查上述資料庫報錯的原因,可以透過10397 EVENT可以關閉這個報錯,再次執行SQL就會報出真正的錯誤
(但我沒用過這個10397事件喲,風險幾何,本人不知喲)
SQL> host oerr ora 12801
12801, 00000, "error signaled in parallel query server %s"
// *Cause: A parallel query server reached an exception condition.
// *Action: Check the following error message for the cause, and consult
// your error manual for the appropriate action.
// *Comment: This error can be turned off with event 10397, in which
// case the server's actual error is signaled instead.
SQL> host oerr ora 01722
01722, 00000, "invalid number"
// *Cause: The specified number was invalid.
// *Action: Specify a valid number.
SQL>
我們繼續分析,繼續上述有ORA-01722報錯
換一個值試下,卻是執行正常不錯嗎,可見是P1的值有問題
SQL> select p1 from gv$active_session_history where rownum=1;
P1
--------------------------
6844
可見用數字就OK了
SQL> select p1 from gv$active_session_history where p1='6844';
P1
--------------------------
6844
果然我們用特殊字元替代,哈哈報錯了
SQL> select p1 from gv$active_session_history where p1='07A8';
select p1 from gv$active_session_history where p1='07A8'
*
ERROR at line 1:
ORA-12801: error signaled in parallel query server PZ99, instance actdb4:act42 (2)
ORA-01722: invalid number
突然想起來,我們再看看P1的列資料型別,我的哈喲,是數字型別;回頭再想,確實和執行查詢SQL的第2個ORACLE報錯對應上了
SQL> desc gv$active_session_history;
Name Null? Type
----------------------------------------- -------- ----------------------------
INST_ID NUMBER
SAMPLE_ID NUMBER
SAMPLE_TIME TIMESTAMP(3)
IS_AWR_SAMPLE VARCHAR2(1)
SESSION_ID NUMBER
SESSION_SERIAL# NUMBER
SESSION_TYPE VARCHAR2(10)
FLAGS NUMBER
USER_ID NUMBER
SQL_ID VARCHAR2(13)
IS_SQLID_CURRENT VARCHAR2(1)
SQL_CHILD_NUMBER NUMBER
SQL_OPCODE NUMBER
FORCE_MATCHING_SIGNATURE NUMBER
TOP_LEVEL_SQL_ID VARCHAR2(13)
TOP_LEVEL_SQL_OPCODE NUMBER
SQL_OPNAME VARCHAR2(64)
SQL_PLAN_HASH_VALUE NUMBER
SQL_PLAN_LINE_ID NUMBER
SQL_PLAN_OPERATION VARCHAR2(30)
SQL_PLAN_OPTIONS VARCHAR2(30)
SQL_EXEC_ID NUMBER
SQL_EXEC_START DATE
PLSQL_ENTRY_OBJECT_ID NUMBER
PLSQL_ENTRY_SUBPROGRAM_ID NUMBER
PLSQL_OBJECT_ID NUMBER
PLSQL_SUBPROGRAM_ID NUMBER
QC_INSTANCE_ID NUMBER
QC_SESSION_ID NUMBER
QC_SESSION_SERIAL# NUMBER
PX_FLAGS NUMBER
EVENT VARCHAR2(64)
EVENT_ID NUMBER
EVENT# NUMBER
SEQ# NUMBER
P1TEXT VARCHAR2(64)
P1 NUMBER
個人簡介
8年oracle從業經驗,具備豐富的oracle技能,目前在國內北京某專業oracle服務公司從事高階技術顧問。
服務過的客戶:
中國電信
中國移動
中國聯通
中國電通
國家電網
四川達州商業銀行
湖南老百姓大藥房
山西省公安廳
中國郵政
北京302醫院
河北廊坊新奧集團公司
專案經驗:
中國電信3G專案AAA系統資料庫部署及最佳化
中國聯通4G資料庫效能分析與最佳化
中國聯通4G資料庫效能分析與最佳化
中國聯通CRM資料庫效能最佳化
中國移動10086電商平臺資料庫部署及最佳化
湖南老百姓大藥房ERR資料庫sql最佳化專案
四川達州商業銀行TCBS核心業務系統資料庫模型設計和RAC部署及最佳化
四川達州商業銀行TCBS核心業務系統後端批處理儲存過程功能模組編寫及最佳化
北京高鐵訊號監控系統RAC資料庫部署及最佳化
河南宇通客車資料庫效能最佳化
中國電信電商平臺核心採購模組表模型設計及最佳化
中國郵政儲蓄系統資料庫效能最佳化及sql最佳化
北京302醫院資料庫遷移實施
河北廊坊新奧data guard部署及最佳化
山西公安廳身份證審計資料庫系統故障評估
國家電網上海災備專案4 node rac+adg
貴州移動crm及客服資料庫效能最佳化專案
貴州移動crm及客服務資料庫sql稽核專案
深圳穆迪軟體有限公司資料庫效能最佳化專案
貴州移動crm及客服資料庫效能最佳化專案
貴州移動crm及客服務資料庫sql稽核專案
深圳穆迪軟體有限公司資料庫效能最佳化專案
聯絡方式:
手機:18201115468
qq : 305076427
qq微博: wisdomone1
新浪微博:wisdomone9
qq群:275813900
itpub部落格名稱:wisdomone1 http://blog.itpub.net/9240380/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-1723699/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Parallel query & viewsParallelView
- 關於Parallel queryParallel
- Parallel Query Wait EventsParallelAI
- Oracle並行操作——並行查詢(Parallel Query)Oracle並行Parallel
- oracle parallel並行_引數parameter_parallel_max_serverOracleParallel並行Server
- Parallel Query Tuning(並行化查詢優化)Parallel並行優化
- mysqldump: Error 2013: Lost connection to MySQL server during query when dumpingMySqlErrorServer
- alter session force parallel query與執行計劃變化SessionParallel
- 【Mysql】Last_Errno: 1755--parallel mode errorMySqlASTParallelError
- MySQL報錯ERROR 2013 (HY000): Lost connection to MySQL server during queryMySqlErrorServer
- How to Get a 10046 trace for a Parallel Query [ID 1102801.1]Parallel
- 【MySQL】mysqldump Error 3024: Query execution was interruptedMySqlError
- Internal Server Error..ServerError
- 關於ORA-12801,ORA-27090的簡單分析
- DZ論壇MySQL Query Error Errno:1046錯誤MySqlError
- "vSphere HA virtual machine failed to failover" error in vCenter Server問題分析MacAIErrorServer
- FATAL ERROR IN TWO-TASK SERVER: error = 12569ErrorServer
- 透過圖表分析oracle的parallel效能OracleParallel
- 通過圖表分析oracle的parallel效能OracleParallel
- FATAL ERROR IN TWO-TASK SERVER: error = 12152ErrorServer
- 求助:weblogic8.1 : Error 500--Internal Server ErrorWebErrorServer
- Microsoft SQL Server, Error: 15128 ()ROSSQLServerError
- 網站報錯:“Database Server Error”網站DatabaseServerError
- oracle hint_no_parallel_no_parallel_indexOracleParallelIndex
- oracle hint_parallel_parallel_indexOracleParallelIndex
- 10g RAC PZ99, PZ98 (PZnn) 程式
- RPC:authentication error:why = server rejected credentialRPCErrorServer
- Error: package MySQL-Cluster-server-gpl is not relocatableErrorPackageMySqlServer
- HTTP 錯誤 500.19 - Internal Server ErrorHTTPServerError
- mysqldump: Error: Binlogging on server not activeMySqlErrorServer
- OpenMP Parallel Construct 實現原理與原始碼分析ParallelStruct原始碼
- Tasks in parallelParallel
- Parallel DMLParallel
- 如何用pt-query-digest分析日誌
- HTTP 錯誤 500.19 - Internal Server Error(Windows Server 2012)HTTPServerErrorWindows
- psql: error: could not connect to server: No such file or directorySQLErrorServer
- mysql主從複製錯誤:Last_SQL_Error: Error 'Duplicate entry '327' for key 'PRIMARY'' on query. Default databa...MySqlASTError
- Mysql mysql lost connection to server during query 問題解決方法MySqlServer