{"id":9669,"date":"2017-01-10T17:39:40","date_gmt":"2017-01-10T16:39:40","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/"},"modified":"2017-01-10T17:39:40","modified_gmt":"2017-01-10T16:39:40","slug":"ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/","title":{"rendered":"ORA-12801 and ORA-12154 with OracleRestart \/ GRID \/ RAC on Oracle Database 12c"},"content":{"rendered":"<h2>ORA-12801 and ORA-12154 with OracleRestart \/ GRID \/ RAC on Oracle Database 12c<\/h2>\n<h3>Symptom\/Analysis:<\/h3>\n<p>Using Oracle 12c in a RAC environment, you may encounter the following errors:<\/p>\n<p>ORA-12801: error signaled in parallel query server P000, instance rac2.localdomain:DBRAC2 (2)<br \/>\nORA-12154: TNS:could not resolve the connect identifier specified<\/p>\n<p>In this article, we will present you an issue that is inspired from a real case:<\/p>\n<pre class=\"brush: bash; gutter: false; first-line: 1; tab-size: 8;  highlight: [0]\">olivier@olivier-ThinkPad-T550 ~ $ sqlplus sys\/***@DBRAC1 as sysdba\n<\/pre>\n<pre class=\"brush: sql; gutter: true; first-line: 1; tab-size: 8;  highlight: [8,11,12]\">SQL*Plus: Release 12.1.0.2.0 Production on Mon Jan 9 15:03:42 2017\nCopyright (c) 1982, 2014, Oracle.  All rights reserved.\nConnected to:\nOracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production\nWith the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,\nAdvanced Analytics and Real Application Testing options\nSQL&gt; \nselect count(*) from DBA_OBJECTS@DBLINK_ONE_MYHOME_TNS, SCOTT.OBJECTS;\nexit\nERROR at line 1:\nORA-12801: error signaled in parallel query server P000, instance rac2.localdomain:DBRAC2 (2)\nORA-12154: TNS:could not resolve the connect identifier specified\n<\/pre>\n<p>The following queries return answers with no error:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; tab-size: 8;  highlight: [1]\">SQL&gt; select count(*) from DBA_OBJECTS@DBLINK_ONE_MYHOME_TNS;\nCOUNT(*)\n----------\n20342\n<\/pre>\n<pre class=\"brush: sql; gutter: true; first-line: 1; tab-size: 8;  highlight: [1]\">SQL&gt; select count(*) from SCOTT.OBJECTS;\nCOUNT(*)\n----------\n90951\n<\/pre>\n<p>Strange !<br \/>\nselect * from A is working.<br \/>\nselect * from B is working.<br \/>\nselect * from A,B is not working.<\/p>\n<p>Let&#8217;s check if TNS_ADMIN Oracle environment variable is set in the session:<br \/>\nWe will use the <b>dbms_system.get_env<\/b> function<\/p>\n<pre class=\"brush: sql; gutter: false; first-line: 1; tab-size: 8;  highlight: [0]\">dbms_system.get_env()\n<\/pre>\n<pre class=\"brush: sql; gutter: true; first-line: 1; tab-size: 8;  highlight: [11]\">SQL&gt; \nset serveroutput on\nDECLARE\nRetVal VARCHAR2(4000);\nBEGIN\ndbms_system.get_env('TNS_ADMIN', RetVal);\ndbms_output.put_line('TNS_ADMIN: '||RetVal);\nEND;\n\/\nSQL&gt; 2 3 4 5 6 7\nTNS_ADMIN: \/u01\/app\/MyNetworkAdmin\/\nPL\/SQL procedure successfully completed.\nTNS_ADMIN is set correctly.<\/pre>\n<p>The dblink is working and is correctly created:<\/p>\n<pre class=\"brush: sql; gutter: false; first-line: 1; tab-size: 8;  highlight: [0]\">dba_db_links\n<\/pre>\n<pre class=\"brush: sql; gutter: true; first-line: 1; tab-size: 8;  highlight: [0]\">SQL&gt; SELECT owner, db_link, username, host FROM   dba_db_links ORDER BY owner, db_link;\nOWNER\tDB_LINK \t\t  USERNAME   HOST\n------- ------------------------- ---------- --------------------\nPUBLIC\tDBLINK_ONE_MYHOME_TNS\t  SYSTEM     DBONE-MYHOME-TNS\n<\/pre>\n<pre class=\"brush: sql; gutter: false; first-line: 1; tab-size: 8;  highlight: [0]\">DBMS_METADATA.GET_DDL\n<\/pre>\n<pre class=\"brush: sql; gutter: true; first-line: 1; tab-size: 8;  highlight: [0]\">\nSQL&gt; SELECT DBMS_METADATA.GET_DDL('DB_LINK','DBLINK_ONE_MYHOME_TNS','PUBLIC') ddl from dual;\nDDL\n-------------------------------------------------------------------------\nCREATE PUBLIC DATABASE LINK \"DBLINK_ONE_MYHOME_TNS\" \n   CONNECT TO \"SYSTEM\" IDENTIFIED BY VALUES ':1' USING 'DBONE-MYHOME-TNS'\n<\/pre>\n<pre class=\"brush: bash; gutter: false; first-line: 1\">\/u01\/app\/MyNetworkAdmin\/tnsnames.ora\n<\/pre>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">DBONE-MYHOME-TNS =\n  (DESCRIPTION =\n    (ADDRESS = (PROTOCOL = TCP)(HOST = X.X.X.X)(PORT = 1521))\n    (CONNECT_DATA =\n      (SERVER = DEDICATED)\n      (SID = ONE)\n    )\n  )\n<\/pre>\n<p>So what ?<br \/>\nLet&#8217;s print the SQL plan:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; tab-size: 8;  highlight: [0]\">SQL&gt; explain plan for\n2 select count(*) from DBA_OBJECTS@DBLINK_ONE_MYHOME_TNS,SCOTT.OBJECTS;\nExplained<\/pre>\n<pre class=\"brush: sql; gutter: true; first-line: 1; tab-size: 8; highlight: [10,11,15,16,19]\">SQL&gt; select * from table(dbms_xplan.display);\nPLAN_TABLE_OUTPUT\n-------------------------------------------------------------------------------------------------------------\nPlan hash value: 1869185832\n-------------------------------------------------------------------------------------------------------------\n| Id  | Operation\t\t | Name        | Rows  | Cost (%CPU)| Time     | TQ\/Ins |IN-OUT| PQ Distrib |\n-------------------------------------------------------------------------------------------------------------\n|   0 | SELECT STATEMENT\t |\t       |     1 | 19591\t (2)| 00:00:01 |\t|      |\t    |\n|   1 |  SORT AGGREGATE \t |\t       |     1 |\t    |\t       |\t|      |\t    |\n|   2 |   PX COORDINATOR\t |\t       |       |\t    |\t       |\t|      |\t    |\n|   3 |    PX SEND QC (RANDOM)\t | :TQ10001    |     1 |\t    |\t       |  Q1,01 | P-&gt;S | QC (RAND)  |\n|   4 |     SORT AGGREGATE\t |\t       |     1 |\t    |\t       |  Q1,01 | PCWP |\t    |\n|   5 |      MERGE JOIN CARTESIAN|\t       |  1810M| 19591\t (2)| 00:00:01 |  Q1,01 | PCWP |\t    |\n|   6 |       BUFFER SORT\t |\t       |       |\t    |\t       |  Q1,01 | PCWC |\t    |\n|   7 |        PX RECEIVE\t |\t       | 19911 |    65\t (0)| 00:00:01 |  Q1,01 | PCWP |\t    |\n|   8 | \tPX SEND BROADCAST| :TQ10000    | 19911 |    65\t (0)| 00:00:01 |\t| S-&gt;P | BROADCAST  |\n|   9 | \t REMOTE \t | DBA_OBJECTS | 19911 |    65\t (0)| 00:00:01 | DBLIN~ | R-&gt;S |\t       |\n|  10 |       BUFFER SORT\t |\t       | 90951 | 19526\t (2)| 00:00:01 |  Q1,01 | PCWP |\t    |\n|  11 |        PX BLOCK ITERATOR |\t       | 90951 |    15\t (0)| 00:00:01 |  Q1,01 | PCWC |\t    |\n|  12 | \tTABLE ACCESS FULL| OBJECTS     | 90951 |    15\t (0)| 00:00:01 |  Q1,01 | PCWP |\t    |\n-------------------------------------------------------------------------------------------------------------\nRemote SQL Information (identified by operation id):\n----------------------------------------------------\n9 - SELECT 0 FROM \"DBA_OBJECTS\" \"DBA_OBJECTS\" (accessing 'DBLINK_ONE_MYHOME_TNS' )\nNote\n-----\n- Degree of Parallelism is 4 because of table property\n29 rows selected.\n \n<\/pre>\n<p>Parallelism is enabled for the query.<br \/>\nLet&#8217;s disable it !<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; tab-size: 8;  highlight: [0]\">SQL&gt; ALTER SESSION disable parallel query;\n<\/pre>\n<p>Let&#8217;s run our query again:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; tab-size: 8;  highlight: [0]\">SQL&gt; select count(*) from DBA_OBJECTS@DBLINK_ONE_MYHOME_TNS,SCOTT.OBJECTS;\n  COUNT(*)\n----------\n1850125242\n<\/pre>\n<p>It is working now, but without using parallelism features.<\/p>\n<h3>Problem:<\/h3>\n<p>In fact, the problem comes from the environment variable TNS_ADMIN that is not (or not correctly) set for the PX servers process:<\/p>\n<p>When parallelism is enabled, the PX servers are doing all the work. (as shown in our parallel plans)<br \/>\nOn the server, PX server processes can be easily identified on the OS level. On Linux they are the processes ora_p***:<br \/>\n<a href=\"http:\/\/www.oracle.com\/technetwork\/database\/bi-datawarehousing\/twp-parallel-execution-fundamentals-133639.pdf\">Source: http:\/\/www.oracle.com\/technetwork\/database\/bi-datawarehousing\/twp-parallel-execution-fundamentals-133639.pdf<\/a><\/p>\n<pre class=\"brush: bash; gutter: false; first-line: 1; tab-size: 8;  highlight: [0]\">[oracle@rac1 admin]$ ps -ef | grep ora_p0\n<\/pre>\n<pre class=\"brush: bash; gutter: true; first-line: 1; tab-size: 8;  highlight: [1]\">oracle 25803 1 0 11:21 ? 00:00:00 ora_p000_DBRAC1\noracle 25805 1 0 11:21 ? 00:00:00 ora_p001_DBRAC1\noracle 25807 1 0 11:21 ? 00:00:00 ora_p002_DBRAC1\noracle 25809 1 0 11:21 ? 00:00:00 ora_p003_DBRAC1\noracle 28021 1 0 14:25 ? 00:00:00 ora_p004_DBRAC1\noracle 28023 1 0 14:25 ? 00:00:00 ora_p005_DBRAC1\noracle 28025 1 0 14:25 ? 00:00:00 ora_p006_DBRAC1\noracle 28027 1 0 14:25 ? 00:00:00 ora_p007_DBRAC1\noracle 28029 1 0 14:25 ? 00:00:00 ora_p008_DBRAC1\noracle 28031 1 0 14:25 ? 00:00:00 ora_p009_DBRAC1\noracle 28033 1 0 14:25 ? 00:00:00 ora_p00a_DBRAC1\noracle 28035 1 0 14:25 ? 00:00:00 ora_p00b_DBRAC1\noracle 28037 1 0 14:25 ? 00:00:00 ora_p00c_DBRAC1\noracle 28039 1 0 14:25 ? 00:00:00 ora_p00d_DBRAC1\noracle 28041 1 0 14:25 ? 00:00:00 ora_p00e_DBRAC1\noracle 28047 1 0 14:25 ? 00:00:00 ora_p00f_DBRAC1\n<\/pre>\n<p>The file \/proc\/<b>25803<\/b>\/environ contains the Oracle environment variables set for the P000 Process:<br \/>\nCommand &#8220;sudo strings \/proc\/<b>25803<\/b>\/environ | grep TNS_&#8221; give no result.<br \/>\n<a href=\"https:\/\/blogs.oracle.com\/myoraclediary\/entry\/how_to_check_environment_variables\">Source: https:\/\/blogs.oracle.com\/myoraclediary\/entry\/how_to_check_environment_variables<\/a><\/p>\n<p>If we check the environ file of the listener processes, we can see that the TNS_ADMIN is correctly set.<\/p>\n<pre class=\"brush: bash; gutter: false; first-line: 1; tab-size: 8;  highlight: [0]\">[oracle@rac1 ~]$ ps -ef | grep lsn\n<\/pre>\n<pre class=\"brush: bash; gutter: true; first-line: 1; tab-size: 8;  highlight: [5]\">oracle 2731 12705 0 14:49 pts\/0 00:00:00 grep --color=auto lsn\noracle 4176 1 0 08:57 ? 00:00:00 \/u01\/app\/grid\/bin\/tnslsnr MGMTLSNR -no_crs_notify -inherit\noracle 4309 1 0 08:57 ? 00:00:00 \/u01\/app\/grid\/bin\/tnslsnr LISTENER_SCAN2 -no_crs_notify -inherit\noracle 4320 1 0 08:57 ? 00:00:00 \/u01\/app\/grid\/bin\/tnslsnr LISTENER_SCAN3 -no_crs_notify -inherit\noracle 9059 1 0 12:01 ? 00:00:00 \/u01\/app\/grid\/bin\/tnslsnr LISTENER -no_crs_notify -inherit\n<\/pre>\n<pre class=\"brush: bash; gutter: false; first-line: 1; tab-size: 8;  highlight: [0]\">[oracle@rac1 ~]$ sudo strings \/proc\/9059\/environ | grep TNS_\n<\/pre>\n<pre class=\"brush: bash; gutter: true; first-line: 1; tab-size: 8;  highlight: [1]\">TNS_ADMIN=\/u01\/app\/MyNetworkAdmin\n<\/pre>\n<p>This small environ.sh script for the lazy one can list the Oracle environment variables set for all the PX Server process and pmon:<\/p>\n<pre class=\"brush: bash; gutter: false; first-line: 0\">environ.sh\n<\/pre>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">#!\/bin\/bash\nmypspmon='\/tmp\/pspmon'\nmyprocess1='pmon_DB'\nmyprocess2='ora_p00'\nps -ef | grep $myprocess1 | awk '{print $2}' &gt; $mypspmon\nps -ef | grep $myprocess2 | awk '{print $2}' &gt;&gt; $mypspmon\nwhile read ligne;\ndo\nmyenvironfile=\"\/proc\/${ligne#* }\/environ\"\nif [ -e \"$myenvironfile\" ]\nthen\nstrings $myenvironfile\nfi\ndone &lt; $mypspmon\n<\/pre>\n<p>&#8220;sudo .\/environ.sh | grep TNS&#8221; give no result<br \/>\nThe TNS_ADMIN Oracle environment variable is not set for the PX server processes that are spawn to handle the parallel queries.<\/p>\n<h3>Solution:<\/h3>\n<ol>\n<li>\n<b><span style=\"text-decoration: underline\">Be sure to set the TNS_ADMIN with srvctl !!<\/span><\/b><\/li>\n<p><a href=\"https:\/\/docs.oracle.com\/cd\/B19306_01\/rac.102\/b14197\/srvctladmin.htm#i1010191\">Source: https:\/\/docs.oracle.com\/cd\/B19306_01\/rac.102\/b14197\/srvctladmin.htm#i1010191<\/a><\/p>\n<pre class=\"brush: bash; gutter: false; first-line: 1; tab-size: 8;  highlight: [0]\">[oracle@rac1 ~]$ srvctl setenv listener -l LISTENER -t TNS_ADMIN='\/u01\/app\/MyNetworkAdmin\/'\n[oracle@rac1 ~]$ srvctl setenv database -d DBRAC -t TNS_ADMIN='\/u01\/app\/MyNetworkAdmin\/'\n<\/pre>\n<p>Let&#8217;s check if the variable are correctly set<\/p>\n<pre class=\"brush: bash; gutter: false; first-line: 1; tab-size: 8;  highlight: [0]\">[oracle@rac1 ~]$ srvctl getenv listener -l LISTENER -t TNS_ADMIN\n<\/pre>\n<pre class=\"brush: bash; gutter: true; first-line: 1; tab-size: 8;  highlight: [0]\">LISTENER:\nTNS_ADMIN=\/u01\/app\/MyNetworkAdmin\/\n<\/pre>\n<pre class=\"brush: bash; gutter: false; first-line: 1; tab-size: 8;  highlight: [0]\">[oracle@rac1 ~]$ srvctl getenv database -d DBRAC -t TNS_ADMIN\n<\/pre>\n<pre class=\"brush: bash; gutter: true; first-line: 1; tab-size: 8;  highlight: [0]\">DBRAC:\nTNS_ADMIN=\/u01\/app\/MyNetworkAdmin\/\n<\/pre>\n<p>TNS_ADMIN seems to be correctly set but we still receive ORA-12801 ORA-12154 errors.<br \/>\nMoreover &#8220;sudo .\/environ.sh | grep TNS&#8221; still gives no result !<br \/>\n<b><span style=\"text-decoration: underline\">You need to restart database to set up thoroughly the TNS_ADMIN environment variable database !!<\/span><\/b><\/p>\n<pre class=\"brush: bash; gutter: false; first-line: 1; tab-size: 8;  highlight: [0]\">[oracle@rac1 admin]$ srvctl stop listener -l LISTENER\n[oracle@rac1 admin]$ srvctl start listener -l LISTENER\n[oracle@rac1 admin]$ srvctl stop database -d DBRAC\n[oracle@rac1 admin]$ srvctl start database -d DBRAC\n<\/pre>\n<pre class=\"brush: bash; gutter: false; first-line: 1; tab-size: 8;  highlight: [0]\">[oracle@rac1 admin]$ srvctl status listener -l LISTENER\n<\/pre>\n<pre class=\"brush: bash; gutter: true; first-line: 1; tab-size: 8;  highlight: [0]\">Listener LISTENER is enabled\nListener LISTENER is running on node(s): rac1,rac2\n<\/pre>\n<pre class=\"brush: bash; gutter: false; first-line: 1; tab-size: 8;  highlight: [0]\">[oracle@rac1 admin]$ srvctl status database -d DBRAC\n<\/pre>\n<pre class=\"brush: bash; gutter: true; first-line: 1; tab-size: 8;  highlight: [0]\">Instance DBRAC1 is running on node rac1\nInstance DBRAC2 is running on node rac2\n<\/pre>\n<p>Now our &#8220;sudo .\/environ.sh | grep TNS&#8221; commands list the TNS_ADMIN environment variable used by our pmon and px server processes.<\/p>\n<pre class=\"brush: bash; gutter: false; first-line: 1; tab-size: 8;  highlight: [0]\">TNS_ADMIN=\/u01\/app\/MyNetworkAdmin\/\nTNS_ADMIN=\/u01\/app\/MyNetworkAdmin\/\nTNS_ADMIN=\/u01\/app\/MyNetworkAdmin\/\nTNS_ADMIN=\/u01\/app\/MyNetworkAdmin\/\n[...]\nTNS_ADMIN=\/u01\/app\/MyNetworkAdmin\/\n<\/pre>\n<p>And our query is working using parallelism features.<\/p>\n<li>Other solutions exist:<\/li>\n<p>One of them would consist in modifying USR_ORA_ENV cluster resources attribute values with crsctl<\/p>\n<pre class=\"brush: bash; gutter: false; first-line: 1; tab-size: 8;  highlight: [0]\">[oracle@rac1 admin]$ crsctl modify resource ora.dbrac.db -attr \"USR_ORA_ENV=TNS_ADMIN=\/u01\/app\/MyNetworkAdmin\/\"\n<\/pre>\n<pre class=\"brush: bash; gutter: true; first-line: 1; tab-size: 8;  highlight: [0]\">CRS-4995: The command 'Modify resource' is invalid in crsctl. Use srvctl for this command.\n<\/pre>\n<p>In 12c, just add the flag -unsupported ad the end to avoid CRS-4995 errors.<br \/>\n[oracle@rac1 admin]$ crsctl modify resource ora.dbrac.db -attr &#8220;USR_ORA_ENV=TNS_ADMIN=\/u01\/app\/MyNetworkAdmin\/&#8221; <b>-unsupported<\/b><\/p>\n<\/ol>\n<h3>Comments:<\/h3>\n<ol>\n<li>This issue is inspired from a real case. You can easily reproduce the issue<\/li>\n<p>SCOTT.OBJECTS table was created like that.<\/p>\n<pre class=\"brush: sql; gutter: false; first-line: 1; tab-size: 8;  highlight: [0]\">SCOTT.OBJECTS\n<\/pre>\n<pre class=\"brush: sql; gutter: true; first-line: 1; tab-size: 8;  highlight: [0]\">create table SCOTT.OBJECTS as select * from DBA_OBJECTS;\nalter table scott parallel 32;\n<\/pre>\n<p>Add an entry in your tnsnames.ora and create a dblink<br \/>\nYou can remove TNS_ADMIN environment database with &#8220;srvctl unsetenv database -d database -t TNS_ADMIN&#8221; command. And restart.<\/p>\n<li>\nOn 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<\/li>\n<p>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.<\/p>\n<pre class=\"brush: bash; gutter: false; first-line: 1; tab-size: 8;  highlight: [0]\">[oracle@rac1 admin]$ pwd\n<\/pre>\n<pre class=\"brush: bash; gutter: true; first-line: 1; tab-size: 8;  highlight: [0]\">\/u01\/app\/oracle\/product\/12.1.0.2\/db_1\/network\/admin\n<\/pre>\n<pre class=\"brush: bash; gutter: false; first-line: 1; tab-size: 8;  highlight: [0]\">[oracle@rac1 admin]$ ll\n<\/pre>\n<pre class=\"brush: bash; gutter: true; first-line: 1; tab-size: 8;  highlight: [0]\">total 0\nlrwxrwxrwx 1 oracle oinstall 36 Jan 10 09:53 listener.ora -&gt; \/u01\/app\/MyNetworkAdmin\/listener.ora\nlrwxrwxrwx 1 oracle oinstall 34 Jan 10 09:53 sqlnet.ora -&gt; \/u01\/app\/MyNetworkAdmin\/sqlnet.ora\nlrwxrwxrwx 1 oracle oinstall 36 Jan 10 09:53 tnsnames.ora -&gt; \/u01\/app\/MyNetworkAdmin\/tnsnames.ora\n<\/pre>\n<\/ol>\n<p>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 !!<br \/>\nIf not, you may encounter ORA-12154 errors.<br \/>\nAnd not only for PDML !!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[],"type_dbi":[],"class_list":["post-9669","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>ORA-12801 and ORA-12154 with OracleRestart \/ GRID \/ RAC on Oracle Database 12c - dbi Blog<\/title>\n<meta name=\"description\" content=\"ORA-12801 ORA-12154 OracleRestart GRID RAC Oracle Database 12c parallel\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ORA-12801 and ORA-12154 with OracleRestart \/ GRID \/ RAC on Oracle Database 12c\" \/>\n<meta property=\"og:description\" content=\"ORA-12801 ORA-12154 OracleRestart GRID RAC Oracle Database 12c parallel\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-01-10T16:39:40+00:00\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"ORA-12801 and ORA-12154 with OracleRestart \/ GRID \/ RAC on Oracle Database 12c\",\"datePublished\":\"2017-01-10T16:39:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/\"},\"wordCount\":652,\"commentCount\":0,\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/\",\"name\":\"ORA-12801 and ORA-12154 with OracleRestart \/ GRID \/ RAC on Oracle Database 12c - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2017-01-10T16:39:40+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"description\":\"ORA-12801 ORA-12154 OracleRestart GRID RAC Oracle Database 12c parallel\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ORA-12801 and ORA-12154 with OracleRestart \/ GRID \/ RAC on Oracle Database 12c\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"ORA-12801 and ORA-12154 with OracleRestart \/ GRID \/ RAC on Oracle Database 12c - dbi Blog","description":"ORA-12801 ORA-12154 OracleRestart GRID RAC Oracle Database 12c parallel","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/","og_locale":"en_US","og_type":"article","og_title":"ORA-12801 and ORA-12154 with OracleRestart \/ GRID \/ RAC on Oracle Database 12c","og_description":"ORA-12801 ORA-12154 OracleRestart GRID RAC Oracle Database 12c parallel","og_url":"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/","og_site_name":"dbi Blog","article_published_time":"2017-01-10T16:39:40+00:00","author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"ORA-12801 and ORA-12154 with OracleRestart \/ GRID \/ RAC on Oracle Database 12c","datePublished":"2017-01-10T16:39:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/"},"wordCount":652,"commentCount":0,"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/","url":"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/","name":"ORA-12801 and ORA-12154 with OracleRestart \/ GRID \/ RAC on Oracle Database 12c - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2017-01-10T16:39:40+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"description":"ORA-12801 ORA-12154 OracleRestart GRID RAC Oracle Database 12c parallel","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/ora-12801-and-ora-12154-with-oraclerestart-grid-rac-on-oracle-database-12c-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"ORA-12801 and ORA-12154 with OracleRestart \/ GRID \/ RAC on Oracle Database 12c"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/9669","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=9669"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/9669\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=9669"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=9669"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=9669"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=9669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}