Ora 12801 error signaled in parallel query server p008

Error ORA-12801 Error signaled in parallel query server. This error occurs when adding a calculation as follows: Variance calculation (A-B). This is successful. Add % Variance ( (A-B)/A) and the error occurs.

Troubleshooting

Problem

Error

ORA-12801 Error signaled in parallel query server.

This error occurs when adding a calculation as follows:
Variance calculation (A-B). This is successful.
Add % Variance ( (A-B)/A) and the error occurs.

Resolving The Problem

ORA-12801 error signaled in parallel query server name
Cause: A parallel query server encountered an exception as described in the accompanying message(s).
Action: Correct the error described in the accompanying message.

To resolve this issue, use the method to resolve divide-by-zero errors. This will force local processing (not doing A/B or if (B<>0) then (A/B) else (0).

Calculation:(if (B<>0 then (A) else (0)) / (if (B<>0) then (B) else (1))

[{«Product»:{«code»:»SSTQPQ»,»label»:»IBM Cognos Series 7 PowerPlay»},»Business Unit»:{«code»:»BU053″,»label»:»Cloud & Data Platform»},»Component»:»Impromptu»,»Platform»:[{«code»:»PF025″,»label»:»Platform Independent»},{«code»:»PF033″,»label»:»Windows»}],»Version»:»Impromptu 5.0;Impromptu 7.1;Impromptu Web Reports 7.0″,»Edition»:»»,»Line of Business»:{«code»:»LOB10″,»label»:»Data and AI»}},{«Product»:{«code»:»SSTQPQ»,»label»:»IBM Cognos Series 7 PowerPlay»},»Business Unit»:{«code»:»BU053″,»label»:»Cloud & Data Platform»},»Component»:»Impromptu Web Reports»,»Platform»:[{«code»:»»,»label»:»»}],»Version»:»»,»Edition»:»»,»Line of Business»:{«code»:»LOB10″,»label»:»Data and AI»}}]

oracle tutorial webinars

One of the greatest achievements of Oracle database software is its ability to process massive sums of information into a multitude of tables and functions. The downside is that in any system, dealing with huge amounts of data can naturally carry some headaches and frustration along the way. The ORA-12801 would most easily fall into this category, an Oracle error emanating most often in response to errors when processing large jobs.

The Problem

The ORA-12801 is an Oracle error that has some confusing origins, but is described as an error resulting in some form from a parallel query server. The error frequently accompanies another error, often the ORA-01652 (which concerns an inability to extend the temp segment in a tablespace). The ORA-12801 is essentially a general error, a sort of catchall for parallel query issues.

At this juncture, some of you may be wondering yourselves, “What is a parallel query?” First showing up in later versions of Oracle7, a parallel query option lets multiple processes request and receive data and perform operations at the same time. As you would imagine, this can greatly enhance the speed of the system. To achieve this kind of efficiency, there are several conditions for the parallel query that require attention. So what are those conditions and how do they pertain to resolving an ORA-12801 error?

The Solution

An absolutely crucial element in successful parallel query operation is the appropriate use of query slaves. If too few or too many are put to use, the system will receive little advantage from their presence. Generally, a good rule to follow is duplicate the number of disks or computers that the operation is used across, and set that as your number of parallel query slaves. Additionally, your tables should account for the parallel query. Run a full table scan to assess the timing of various settings for the degrees of parallel function to determine the best variable size for your performance.

Due to the nature of the ORA-12801, it’s a good idea to examine the error more closely. Set the event to 10397 to gather up information on the error (including the cause, action and some simple comments). You can also check out trace files in the BACKGROUND_DUMP_TEST and USER_DUMP_TEST for more details, as well as your alert.log. You will typically be given a parallel query server number in the error that will give an idea of how many processes are being run, hopefully reminding your of the aforementioned rule of thumb in keeping your query slave numbers at a level that can accommodate your operation. When accompanied with an error such as ORA-01652, you can typically increase the size of your sort_area_size or TEMP tablespace to allow for the job to run effectively.

Looking forward

Avoiding an ORA-12801 can be complicated, but should you remain cognizant of your parallel query operations and know the basics of investigating your system, you should be okay. Staying on top of parallel queries and ensuring that the proper amount of slave and table degree variables are allocated to the job can go a long way in preventing this (and several other) errors. Furthermore, by referring to your alert.log and dump tests from time to time, you can spot the origins of potential errors or obtain additional information of a pending error that is proving to be enigmatic. If you find that generic system errors such as the ORA-12801 are still tripping you up, it wouldn’t hurt to contact a licensed Oracle consultant to assist you with these problems and optimize your experience with Oracle products.

ORA-12801 and ORA-12154 with OracleRestart / GRID / RAC on Oracle Database 12c

Symptom/Analysis:

Using Oracle 12c in a RAC environment, you may encounter the following errors:

ORA-12801: error signaled in parallel query server P000, instance rac2.localdomain:DBRAC2 (2)
ORA-12154: TNS:could not resolve the connect identifier specified

In this article, we will present you an issue that is inspired from a real case:

[email protected] ~ $ sqlplus sys/***@DBRAC1 as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Mon Jan 9 15:03:42 2017
Copyright (c) 1982, 2014, Oracle.  All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing options
SQL> 
select count(*) from [email protected]_ONE_MYHOME_TNS, SCOTT.OBJECTS;
exit
ERROR at line 1:
ORA-12801: error signaled in parallel query server P000, instance rac2.localdomain:DBRAC2 (2)
ORA-12154: TNS:could not resolve the connect identifier specified

The following queries return answers with no error:

SQL> select count(*) from [email protected]_ONE_MYHOME_TNS;
COUNT(*)
----------
20342
SQL> select count(*) from SCOTT.OBJECTS;
COUNT(*)
----------
90951

Strange !
select * from A is working.
select * from B is working.
select * from A,B is not working.

Let’s check if TNS_ADMIN Oracle environment variable is set in the session:
We will use the dbms_system.get_env function

dbms_system.get_env()
SQL> 
set serveroutput on
DECLARE
RetVal VARCHAR2(4000);
BEGIN
dbms_system.get_env('TNS_ADMIN', RetVal);
dbms_output.put_line('TNS_ADMIN: '||RetVal);
END;
/
SQL> 2 3 4 5 6 7
TNS_ADMIN: /u01/app/MyNetworkAdmin/
PL/SQL procedure successfully completed.
TNS_ADMIN is set correctly.

The dblink is working and is correctly created:

dba_db_links
SQL> SELECT owner, db_link, username, host FROM   dba_db_links ORDER BY owner, db_link;
OWNER	DB_LINK 		  USERNAME   HOST
------- ------------------------- ---------- --------------------
PUBLIC	DBLINK_ONE_MYHOME_TNS	  SYSTEM     DBONE-MYHOME-TNS
DBMS_METADATA.GET_DDL
SQL> SELECT DBMS_METADATA.GET_DDL('DB_LINK','DBLINK_ONE_MYHOME_TNS','PUBLIC') ddl from dual;
DDL
-------------------------------------------------------------------------
CREATE PUBLIC DATABASE LINK "DBLINK_ONE_MYHOME_TNS" 
   CONNECT TO "SYSTEM" IDENTIFIED BY VALUES ':1' USING 'DBONE-MYHOME-TNS'
/u01/app/MyNetworkAdmin/tnsnames.ora
DBONE-MYHOME-TNS =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = X.X.X.X)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = ONE)
    )
  )

So what ?
Let’s print the SQL plan:

SQL> explain plan for
2 select count(*) from [email protected]_ONE_MYHOME_TNS,SCOTT.OBJECTS;
Explained
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
-------------------------------------------------------------------------------------------------------------
Plan hash value: 1869185832
-------------------------------------------------------------------------------------------------------------
| Id  | Operation		 | Name        | Rows  | Cost (%CPU)| Time     | TQ/Ins |IN-OUT| PQ Distrib |
-------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT	 |	       |     1 | 19591	 (2)| 00:00:01 |	|      |	    |
|   1 |  SORT AGGREGATE 	 |	       |     1 |	    |	       |	|      |	    |
|   2 |   PX COORDINATOR	 |	       |       |	    |	       |	|      |	    |
|   3 |    PX SEND QC (RANDOM)	 | :TQ10001    |     1 |	    |	       |  Q1,01 | P->S | QC (RAND)  |
|   4 |     SORT AGGREGATE	 |	       |     1 |	    |	       |  Q1,01 | PCWP |	    |
|   5 |      MERGE JOIN CARTESIAN|	       |  1810M| 19591	 (2)| 00:00:01 |  Q1,01 | PCWP |	    |
|   6 |       BUFFER SORT	 |	       |       |	    |	       |  Q1,01 | PCWC |	    |
|   7 |        PX RECEIVE	 |	       | 19911 |    65	 (0)| 00:00:01 |  Q1,01 | PCWP |	    |
|   8 | 	PX SEND BROADCAST| :TQ10000    | 19911 |    65	 (0)| 00:00:01 |	| S->P | BROADCAST  |
|   9 | 	 REMOTE 	 | DBA_OBJECTS | 19911 |    65	 (0)| 00:00:01 | DBLIN~ | R->S |	       |
|  10 |       BUFFER SORT	 |	       | 90951 | 19526	 (2)| 00:00:01 |  Q1,01 | PCWP |	    |
|  11 |        PX BLOCK ITERATOR |	       | 90951 |    15	 (0)| 00:00:01 |  Q1,01 | PCWC |	    |
|  12 | 	TABLE ACCESS FULL| OBJECTS     | 90951 |    15	 (0)| 00:00:01 |  Q1,01 | PCWP |	    |
-------------------------------------------------------------------------------------------------------------
Remote SQL Information (identified by operation id):
----------------------------------------------------
9 - SELECT 0 FROM "DBA_OBJECTS" "DBA_OBJECTS" (accessing 'DBLINK_ONE_MYHOME_TNS' )
Note
-----
- Degree of Parallelism is 4 because of table property
29 rows selected.
 

Parallelism is enabled for the query.
Let’s disable it !

SQL> ALTER SESSION disable parallel query;

Let’s run our query again:

SQL> select count(*) from [email protected]_ONE_MYHOME_TNS,SCOTT.OBJECTS;
  COUNT(*)
----------
1850125242

It is working now, but without using parallelism features.

Problem:

In fact, the problem comes from the environment variable TNS_ADMIN that is not (or not correctly) set for the PX servers process:

When parallelism is enabled, the PX servers are doing all the work. (as shown in our parallel plans)
On the server, PX server processes can be easily identified on the OS level. On Linux they are the processes ora_p***:
Source: http://www.oracle.com/technetwork/database/bi-datawarehousing/twp-parallel-execution-fundamentals-133639.pdf

[[email protected] admin]$ ps -ef | grep ora_p0
oracle 25803 1 0 11:21 ? 00:00:00 ora_p000_DBRAC1
oracle 25805 1 0 11:21 ? 00:00:00 ora_p001_DBRAC1
oracle 25807 1 0 11:21 ? 00:00:00 ora_p002_DBRAC1
oracle 25809 1 0 11:21 ? 00:00:00 ora_p003_DBRAC1
oracle 28021 1 0 14:25 ? 00:00:00 ora_p004_DBRAC1
oracle 28023 1 0 14:25 ? 00:00:00 ora_p005_DBRAC1
oracle 28025 1 0 14:25 ? 00:00:00 ora_p006_DBRAC1
oracle 28027 1 0 14:25 ? 00:00:00 ora_p007_DBRAC1
oracle 28029 1 0 14:25 ? 00:00:00 ora_p008_DBRAC1
oracle 28031 1 0 14:25 ? 00:00:00 ora_p009_DBRAC1
oracle 28033 1 0 14:25 ? 00:00:00 ora_p00a_DBRAC1
oracle 28035 1 0 14:25 ? 00:00:00 ora_p00b_DBRAC1
oracle 28037 1 0 14:25 ? 00:00:00 ora_p00c_DBRAC1
oracle 28039 1 0 14:25 ? 00:00:00 ora_p00d_DBRAC1
oracle 28041 1 0 14:25 ? 00:00:00 ora_p00e_DBRAC1
oracle 28047 1 0 14:25 ? 00:00:00 ora_p00f_DBRAC1

The file /proc/25803/environ contains the Oracle environment variables set for the P000 Process:
Command “sudo strings /proc/25803/environ | grep TNS_” give no result.
Source: https://blogs.oracle.com/myoraclediary/entry/how_to_check_environment_variables

If we check the environ file of the listener processes, we can see that the TNS_ADMIN is correctly set.

[[email protected] ~]$ ps -ef | grep lsn
oracle 2731 12705 0 14:49 pts/0 00:00:00 grep --color=auto lsn
oracle 4176 1 0 08:57 ? 00:00:00 /u01/app/grid/bin/tnslsnr MGMTLSNR -no_crs_notify -inherit
oracle 4309 1 0 08:57 ? 00:00:00 /u01/app/grid/bin/tnslsnr LISTENER_SCAN2 -no_crs_notify -inherit
oracle 4320 1 0 08:57 ? 00:00:00 /u01/app/grid/bin/tnslsnr LISTENER_SCAN3 -no_crs_notify -inherit
oracle 9059 1 0 12:01 ? 00:00:00 /u01/app/grid/bin/tnslsnr LISTENER -no_crs_notify -inherit
[[email protected] ~]$ sudo strings /proc/9059/environ | grep TNS_
TNS_ADMIN=/u01/app/MyNetworkAdmin

This small environ.sh script for the lazy one can list the Oracle environment variables set for all the PX Server process and pmon:

environ.sh
#!/bin/bash
mypspmon='/tmp/pspmon'
myprocess1='pmon_DB'
myprocess2='ora_p00'
ps -ef | grep $myprocess1 | awk '{print $2}' > $mypspmon
ps -ef | grep $myprocess2 | awk '{print $2}' >> $mypspmon
while read ligne;
do
myenvironfile="/proc/${ligne#* }/environ"
if [ -e "$myenvironfile" ]
then
strings $myenvironfile
fi
done < $mypspmon

“sudo ./environ.sh | grep TNS” give no result
The TNS_ADMIN Oracle environment variable is not set for the PX server processes that are spawn to handle the parallel queries.

Solution:

  1. Be sure to set the TNS_ADMIN with srvctl !!
  2. Source: https://docs.oracle.com/cd/B19306_01/rac.102/b14197/srvctladmin.htm#i1010191

    [[email protected] ~]$ srvctl setenv listener -l LISTENER -t TNS_ADMIN='/u01/app/MyNetworkAdmin/'
    [[email protected] ~]$ srvctl setenv database -d DBRAC -t TNS_ADMIN='/u01/app/MyNetworkAdmin/'
    

    Let’s check if the variable are correctly set

    [[email protected] ~]$ srvctl getenv listener -l LISTENER -t TNS_ADMIN
    
    LISTENER:
    TNS_ADMIN=/u01/app/MyNetworkAdmin/
    
    [[email protected] ~]$ srvctl getenv database -d DBRAC -t TNS_ADMIN
    
    DBRAC:
    TNS_ADMIN=/u01/app/MyNetworkAdmin/
    

    TNS_ADMIN seems to be correctly set but we still receive ORA-12801 ORA-12154 errors.
    Moreover “sudo ./environ.sh | grep TNS” still gives no result !
    You need to restart database to set up thoroughly the TNS_ADMIN environment variable database !!

    [[email protected] admin]$ srvctl stop listener -l LISTENER
    [[email protected] admin]$ srvctl start listener -l LISTENER
    [[email protected] admin]$ srvctl stop database -d DBRAC
    [[email protected] admin]$ srvctl start database -d DBRAC
    
    [[email protected] admin]$ srvctl status listener -l LISTENER
    
    Listener LISTENER is enabled
    Listener LISTENER is running on node(s): rac1,rac2
    
    [[email protected] admin]$ srvctl status database -d DBRAC
    
    Instance DBRAC1 is running on node rac1
    Instance DBRAC2 is running on node rac2
    

    Now our “sudo ./environ.sh | grep TNS” commands list the TNS_ADMIN environment variable used by our pmon and px server processes.

    TNS_ADMIN=/u01/app/MyNetworkAdmin/
    TNS_ADMIN=/u01/app/MyNetworkAdmin/
    TNS_ADMIN=/u01/app/MyNetworkAdmin/
    TNS_ADMIN=/u01/app/MyNetworkAdmin/
    [...]
    TNS_ADMIN=/u01/app/MyNetworkAdmin/
    

    And our query is working using parallelism features.

  3. Other solutions exist:
  4. One of them would consist in modifying USR_ORA_ENV cluster resources attribute values with crsctl

    [[email protected] admin]$ crsctl modify resource ora.dbrac.db -attr "USR_ORA_ENV=TNS_ADMIN=/u01/app/MyNetworkAdmin/"
    
    CRS-4995: The command 'Modify resource' is invalid in crsctl. Use srvctl for this command.
    

    In 12c, just add the flag -unsupported ad the end to avoid CRS-4995 errors.
    [[email protected] admin]$ crsctl modify resource ora.dbrac.db -attr “USR_ORA_ENV=TNS_ADMIN=/u01/app/MyNetworkAdmin/” -unsupported

Comments:

  1. This issue is inspired from a real case. You can easily reproduce the issue
  2. SCOTT.OBJECTS table was created like that.

    SCOTT.OBJECTS
    
    create table SCOTT.OBJECTS as select * from DBA_OBJECTS;
    alter table scott parallel 32;
    

    Add an entry in your tnsnames.ora and create a dblink
    You can remove TNS_ADMIN environment database with “srvctl unsetenv database -d database -t TNS_ADMIN” command. And restart.

  3. On the server, on the OS level, if ORACLE_HOME is set and TNS_ADMIN is not set then $ORACLE_HOME/network/admin is used to locate tnsname.ora
  4. So it can be interesting to use symlink (ln -s) in $ORACLE_HOME/network/admin to point and use the same tnsnames.ora file when using sqlplus from the server.

    [[email protected] admin]$ pwd
    
    /u01/app/oracle/product/12.1.0.2/db_1/network/admin
    
    [[email protected] admin]$ ll
    
    total 0
    lrwxrwxrwx 1 oracle oinstall 36 Jan 10 09:53 listener.ora -> /u01/app/MyNetworkAdmin/listener.ora
    lrwxrwxrwx 1 oracle oinstall 34 Jan 10 09:53 sqlnet.ora -> /u01/app/MyNetworkAdmin/sqlnet.ora
    lrwxrwxrwx 1 oracle oinstall 36 Jan 10 09:53 tnsnames.ora -> /u01/app/MyNetworkAdmin/tnsnames.ora
    

But remember, although the TNS_ADMIN environment is set on the OS level when starting the instance, you need to set the TNS_ADMIN with srvctl or crsctl before !!
If not, you may encounter ORA-12154 errors.
And not only for PDML !!

Post Views: 190

Yesterday I got request from one of the user saying his job failed giving following error:


Severity Timestamp Node Thread Message Code Message
ERROR 2014/10/24 02:59:32 PM node-uat-informatika READER_1_1_1 RR_4035 SQL Error [
ORA-12801: error signaled in parallel query server P178, instance rmb-uat-db-gik1:DBGIK1 (1)
ORA-12853: insufficient memory for PX buffers: current 4347776K, max needed 78766080K
ORA-04031: unable to allocate 65560 bytes of shared memory ("large pool","unknown object","large pool","PX msg pool")
Database driver error...
Function Name : Execute
SQL Stmt : SELECT APPS.XXXLA_TRX_NOT_IN_GL_V.COUNTRY_CODE, APPS.XXXLA_TRX_NOT_IN_GL_V.EVENT_ID, APPS.XXXLA_TRX_NOT_IN_GL_V.PKEY, APPS.XXXLA_TRX_NOT_IN_GL_V.TDS_BATCH_ID, APPS.XXXLA_TRX_NOT_IN_GL_V.TYPE FROM APPS.XXXLA_TRX_NOT_IN_GL_V
Oracle Fatal Error
Database driver error...
Function Name : Execute
SQL Stmt : SELECT APPS.XXXLA_TRX_NOT_IN_GL_V.COUNTRY_CODE, APPS.XXXLA_TRX_NOT_IN_GL_V.EVENT_ID, APPS.XXXLA_TRX_NOT_IN_GL_V.PKEY, APPS.XXXLA_TRX_NOT_IN_GL_V.TDS_BATCH_ID, APPS.XXXLA_TRX_NOT_IN_GL_V.TYPE FROM APPS.XXXLA_TRX_NOT_IN_GL_V
Oracle Fatal Error].

ORA-04031 is error message related to lack of available SGA memory component. When a process needs some memory from SGA and memory is not available in this situation ORA-04031 occurs.

Ofcourse in my case large pool was getting full. but WHY? I concerntrated on other error i.e. ORA-12801: error signaled in parallel query server P178.

After checking parameterd related to parallel processing, I found parallel_max_servers was set to very high value : 2560.

After checking v$sga_dynamic_compnents for large_pool size I got following stats:


COMPONENT CURRENT_SIZE MIN_SIZE MAX_SIZE USER_SPECIFIED_SIZE OPER_COUNT LAST_OPER_TYP LAST_OPER LAST_OPER_TIME GRANULE_SIZE
---------------- ------------ ---------- ---------- ------------------- ---------- ------------- --------- -------------------- ------------
large pool 2617245696 335544320 5100273664 0 4116 GROW IMMEDIATE 24-OCT-2014 15:03:47 67108864

So we can say large_pool was grown & given ORA-04031 once it was having insufficient memory to grow.

I decided to minimize parallel_max_servers.


15:06:11 SQL> alter system set parallel_max_servers=200;
system altered.

v$sga_dynamic_compnents statistics for large_pool post parameter change:


COMPONENT CURRENT_SIZE MIN_SIZE MAX_SIZE USER_SPECIFIED_SIZE OPER_COUNT LAST_OPER_TYP LAST_OPER LAST_OPER_TIME GRANULE_SIZE
---------------- ------------ ---------- ---------- ------------------- ---------- ------------- --------- -------------------- ------------
large pool 536870912 335544320 5100273664 0 4118 SHRINK DEFERRED 24-OCT-2014 15:06:41 67108864

As soon as I minimized parallel_max_servers, current size for large_pool decreased from 2617MB to 536MB.

I suggested User to rerun his job. He confirmed about successful execution of job 🙂

Hope so u will find this post very useful 🙂

Cheers

Regards,

Adityanath

June 7, 2021

When I run the SQL, I got ” ORA-12801: error signaled in parallel query server ” error.

ORA-12801: error signaled in parallel query server

Details of error are as follows.

ORA-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.
declare
v_dyn clob;
begin

   begin
      execute immediate 'drop table ' || 'ODI' || '.' || 'ODI_TABLE purge';
   exception when others then null;
   end;
         v_dyn := '
           CREATE TABLE "ODI"."ODI_TABLE" 
            ( "SUBSCR_ID" NUMBER NOT NULL ENABLE, 
               "SUBSCR_CLASS_SCHEME_CD" VARCHAR2(16 CHAR) NOT NULL ENABLE, 
               "VALID_FROM_DT" DATE NOT NULL ENABLE, 
               "VALID_UNTIL_DT" DATE NOT NULL ENABLE, 
               "SUBSCR_CLASS_VALUE_CD" VARCHAR2(16 CHAR) NOT NULL ENABLE, 
               "SOURCE_SYSTEM_CD" VARCHAR2(5 CHAR) NOT NULL ENABLE, 
               "INSERT_DT" DATE, 
               "UPDATE_DT" DATE
            ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255  NOLOGGING 
           STORAGE(
           BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
           TABLESPACE "MSD_TBS" 
           PARTITION BY RANGE ("VALID_UNTIL_DT") INTERVAL (NUMTODSINTERVAL(1,''DAY'')) 
           SUBPARTITION BY LIST ("SUBSCR_CLASS_SCHEME_CD") 
           SUBPARTITION TEMPLATE ( 
             SUBPARTITION "SP_LOB" VALUES ( ''LOB'' ), 
             SUBPARTITION "SP_SGIB" VALUES ( ''SGIB'' ), 
             SUBPARTITION "SP_VIP" VALUES ( ''VIP'' ) ) 
          (PARTITION "P_LOW"  VALUES LESS THAN (TO_DATE('' 1980-01-01 00:00:00'', ''SYYYY-MM-DD HH24:MI:SS'', ''NLS_CALENDAR=GREGORIAN'')) 
         PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
           STORAGE(
           BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
           TABLESPACE "MSD_TBS" 
          ( SUBPARTITION "P_LOW_SP_LOB"  VALUES (''LOB'')  
           STORAGE(
           BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
           TABLESPACE "MSD_TBS" 
          COMPRESS BASIC , 
           SUBPARTITION "SYS_SUBP459877"  VALUES (''SGIB'') 
           STORAGE(
           BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
           TABLESPACE "MSD_TBS" 
          COMPRESS BASIC , 
           SUBPARTITION "SYS_SUBP672811"  VALUES (''VIP'')  
           STORAGE(
           BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
           TABLESPACE "MSD_TBS" 
          COMPRESS BASIC ) ) 
           PARALLEL 16 ';
         execute immediate v_dyn;


       execute immediate 'alter session enable parallel dml';
            insert /*+  append parallel(64)   */ into ODI.ODI_TABLE 
             partition for (to_date('2049-12-31 00:00:00', 'YYYY-MM-DD HH24:MI:SS'))
            select  /*+ parallel(64) */ t1.* from ODI2.SUBSCR_CLASS partition for (to_date('2049-12-31 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) t1;
         commit;
       execute immediate 'alter session disable parallel dml';   

end;
/
ERROR at line 1:
ORA-12801: error signaled in parallel query server P00F
ORA-12804: parallel query server appears to have died
ORA-06512: at line 54

This error is related with Partitioned table and Parallel execution on Cluster Nodes.

Temp 12801

To solve this problem, You can run the same SQL as follows.

set the following trace events, then run the same SQL as follows.

alter session set events '10384 trace name context forever , level 16384';
declare
v_dyn clob;
begin

begin
execute immediate 'drop table ' || 'ODI' || '.' || 'ODI_TABLE purge';
exception when others then null;
end;
v_dyn := '
CREATE TABLE "ODI"."ODI_TABLE" 
( "SUBSCR_ID" NUMBER NOT NULL ENABLE, 
"SUBSCR_CLASS_SCHEME_CD" VARCHAR2(16 CHAR) NOT NULL ENABLE, 
"VALID_FROM_DT" DATE NOT NULL ENABLE, 
"VALID_UNTIL_DT" DATE NOT NULL ENABLE, 
"SUBSCR_CLASS_VALUE_CD" VARCHAR2(16 CHAR) NOT NULL ENABLE, 
"SOURCE_SYSTEM_CD" VARCHAR2(5 CHAR) NOT NULL ENABLE, 
"INSERT_DT" DATE, 
"UPDATE_DT" DATE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOLOGGING 
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "MSD_TBS" 
PARTITION BY RANGE ("VALID_UNTIL_DT") INTERVAL (NUMTODSINTERVAL(1,''DAY'')) 
SUBPARTITION BY LIST ("SUBSCR_CLASS_SCHEME_CD") 
SUBPARTITION TEMPLATE ( 
SUBPARTITION "SP_LOB" VALUES ( ''LOB'' ), 
SUBPARTITION "SP_SGIB" VALUES ( ''SGIB'' ), 
SUBPARTITION "SP_VIP" VALUES ( ''VIP'' ) ) 
(PARTITION "P_LOW" VALUES LESS THAN (TO_DATE('' 1980-01-01 00:00:00'', ''SYYYY-MM-DD HH24:MI:SS'', ''NLS_CALENDAR=GREGORIAN'')) 
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "MSD_TBS" 
( SUBPARTITION "P_LOW_SP_LOB" VALUES (''LOB'') 
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "MSD_TBS" 
COMPRESS BASIC , 
SUBPARTITION "SYS_SUBP459877" VALUES (''SGIB'') 
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "MSD_TBS" 
COMPRESS BASIC , 
SUBPARTITION "SYS_SUBP672811" VALUES (''VIP'') 
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "MSD_TBS" 
COMPRESS BASIC ) ) 
PARALLEL 16 ';
execute immediate v_dyn;


execute immediate 'alter session enable parallel dml';
insert /*+ append parallel(64) */ into ODI.ODI_TABLE 
partition for (to_date('2049-12-31 00:00:00', 'YYYY-MM-DD HH24:MI:SS'))
select /*+ parallel(64) */ t1.* from ODI2.SUBSCR_CLASS partition for (to_date('2049-12-31 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) t1;
commit;
execute immediate 'alter session disable parallel dml'; 

end;
  /

PL/SQL procedure successfully completed.

SQL>

OR

set sort_area_size as follows

alter session set sort_area_size = 2048576000 scope both sid=’*’;

OR

Increase Temp tablespace by adding new tempfile as follows.

ALTER TABLESPACE TEMP ADD TEMPFILE '+DATA' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;

Do you want to learn Oracle Database for Beginners, then read the following articles.

https://ittutorial.org/oracle-database-19c-tutorials-for-beginners/

 1,433 views last month,  3 views today

About Mehmet Salih Deveci

I am Founder of SysDBASoft IT and IT Tutorial and Certified Expert about Oracle & SQL Server database, Goldengate, Exadata Machine, Oracle Database Appliance administrator with 10+years experience.I have OCA, OCP, OCE RAC Expert Certificates I have worked 100+ Banking, Insurance, Finance, Telco and etc. clients as a Consultant, Insource or Outsource.I have done 200+ Operations in this clients such as Exadata Installation & PoC & Migration & Upgrade, Oracle & SQL Server Database Upgrade, Oracle RAC Installation, SQL Server AlwaysOn Installation, Database Migration, Disaster Recovery, Backup Restore, Performance Tuning, Periodic Healthchecks.I have done 2000+ Table replication with Goldengate or SQL Server Replication tool for DWH Databases in many clients.If you need Oracle DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS Consultancy and Training you can send my email adress [email protected].-                                                                                                                                                                                                                                                 -Oracle DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS ve linux Danışmanlık ve Eğitim için  [email protected] a mail atabilirsiniz.

ПК работает медленно?

  • 1. Загрузите ASR Pro с веб-сайта
  • 2. Установите его на свой компьютер.
  • 3. Запустите сканирование, чтобы найти вредоносные программы или вирусы, которые могут скрываться в вашей системе.
  • Улучшите скорость своего компьютера сегодня, загрузив это программное обеспечение — оно решит проблемы с вашим ПК. г.

    Надеюсь, что если ваша система действительно показывает ошибку ora-12801 на узле параллельного запроса p000 ora-01652, это руководство может вам помочь.

    Советы Дональда Берлесона по базам данных Oracle

    Вопрос:Когда я запускаю синхронизированный запрос Oracle, я получаю прерывистое сообщениеОтличный пример: такие ошибки:

    ОШИБКА: функция ORACLEОшибка: ORA-12801: ошибка запроса параллельного хостинга P017
    ORA-01652 временный сегмент в отношении
    не может быть продлен314 в таблице дисциплины ТЕМП.

    Я понимаю, что ошибка ORA-01652, вероятно, вызвананедостаточно места, но я не понимаю ORA-12801.Вау,

    Ответ: P017, это прекрасное количество параллельных запросовПросто убедитесь, что у вас достаточно процессоров для этого.Заряжен. Я видел, что эта ошибка ORA-12801 периодически появляетсяочевидная причина, обычно, когда самый важный сервер особенно занят, и вы обнаруживаете, что он всегдавторое сообщение (в вашем случае ORA-01652).

    MOSCTroubleshoot And Resolve Error Ora-12801 That Appears On Parallel Query Server P000 Ora-01652
    Felsöka Och Lösa Fel Ora-12801 Som Visas På Parallell Frågeserver P000 Ora-01652
    Solucione Problemas Y Elija El Error Ora-12801 Que Aparece En El Host De Consultas En Paralelo P000 Ora-01652
    Dépanner Et également Résoudre L’erreur Ora-12801 Qui Apparaît Sur Le Serveur De Requêtes Associé P000 Ora-01652
    Rozwiązywanie Problemów, A Nawet Usuwanie Błędu Ora-12801, Który Pojawia Się Na Równoległym Serwerze Zapytań P000 Ora-01652
    Problemen Oplossen En Oplossen Fout Ora-12801 Waar Verschijnt Op Parallelle Queryserver P000 Ora-01652
    Beheben Und Verwalten Sie Den Fehler Ora-12801, Der Im Parallelen Abfragesystem P000 Ora-01652 Auftritt
    Risolvi I Problemi E Poi Risolvi L’errore Ora-12801 Che Appare Sul Server Di Interrogazione Parallelo P000 Ora-01652
    병렬 쿼리 컴퓨터 P000 Ora-01652에 나타나는 오류 Ora-12801 문제 해결 및 설정
    Solucione E Resolva O Erro Ora-12801 Que Aparece No Servidor De Preocupação Paralelo P000 Ora-01652

    г.

    Понравилась статья? Поделить с друзьями:

    Читайте также:

  • Ora 12705 как исправить
  • Oracle error in materialized view refresh path
  • Oracle error handling
  • Oracle error 31623
  • Oracle error 28000

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии