ORACLE 12C Create PDB’s Techniques.

The techniques that you can use to create a PDB.
1.coping
a.copying files from the seed
b.cloning a pdb(locally,remotely(from a pdb or from a non-cdb)
2.plugging in
a.plugging in an unplugged pdb
b.plugging in a non-cdb as a pdb

一.Using the seed pdb to creating a pdb.
1.my database have to pdbs including:PDBEMREP and PDB$SEED

SYS@EMREP>select pdb_id,pdb_name,dbid,status from dba_pdbs;
    PDB_ID PDB_NAME                      DBID STATUS
---------- ---------------------------------------- ---------- ------------------
     3 PDBEMREP                    3183988881 NORMAL
     2 PDB$SEED                    4121219803 NORMAL

2.In SQL*Plus, ensure that the current container is the root

SYS@EMREP>SELECT SYS_CONTEXT ('USERENV', 'CON_NAME') FROM DUAL;
SYS_CONTEXT('USERENV','CON_NAME')
-------------------------------------------------------------------
CDB$ROOT

3.Run the CREATE PLUGGABLE DATABASE statement, and specify a local administrator for the PDB. Specify other clauses when they are required.

a.create pdbs datafile directory
mkdir -p /u02/oradata/pdbs/trsenpdb

b.runing create pdb sql on  root container.
CREATE PLUGGABLE DATABASE trsenpdb ADMIN USER trsenadmin IDENTIFIED BY oracle
  STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M)
  DEFAULT TABLESPACE trsen
    DATAFILE '/u02/oradata/pdbs/trsenpdb/trsen01.dbf' SIZE 50M AUTOEXTEND ON
  PATH_PREFIX = '/u02/oradata/pdbs/trsenpdb/'
  FILE_NAME_CONVERT = ('/u02/oradata/trsen/pdbseed/', '/u02/oradata/pdbs/trsenpdb/');

c.After you create the PDB, it is in mounted mode, and its status is NEW.
SYS@EMREP>select name,open_mode,status from dba_pdbs p ,v$pdbs s where p.con_id=s.con_id;
NAME                     OPEN_MODE          STATUS
---------------------------------------- -------------------- ------------------
PDB$SEED                 READ ONLY          NORMAL
PDBEMREP                 READ WRITE          NORMAL
TRSENPDB                 MOUNTED          NEW

4.Open the trsenpdb in read/write mode.

SYS@EMREP>ALTER PLUGGABLE DATABASE trsenpdb OPEN READ WRITE;
Pluggable database altered.

SYS@EMREP>select name,open_mode,status from dba_pdbs p ,v$pdbs s where p.con_id=s.con_id;
NAME                     OPEN_MODE          STATUS
---------------------------------------- -------------------- ------------------
PDB$SEED                 READ ONLY          NORMAL
PDBEMREP                 READ WRITE          NORMAL
TRSENPDB                 READ WRITE          NORMAL

二.Creating a PDB by Cloning an Existing PDB or Non-CDB
This technique clones a source PDB or non-CDB and plugs the clone into the CDB.
To use this technique, you must include a FROM clause that specifies the source.
The source is the existing PDB or non-CDB that is copied. The target PDB is the clone of the source.
The source can be a PDB in the local CDB, a PDB in a remote CDB, or a non-CDB.
When the source is a PDB in a remote CDB or non-CDB, you must specify a database link to the remote CDB or non-CDB in the FROM clause.
The CREATE PLUGGABLE DATABASE statement copies the files associated with the source to a new location and associates the files with the target PDB.

we will clone trsenpdb to clonpdb.we using the "create pluggable databaase …. from …" technique.
1.we will view all service information 

SYS@EMREP>select name,pdb from v$services;
NAME                     PDB
---------------------------------------- ------------------------------------------------------------
trsenpdb.com                 TRSENPDB
pdbemrep.com                 PDBEMREP
EMREPXDB                 CDB$ROOT
handpay.com                 CDB$ROOT
SYS$BACKGROUND                 CDB$ROOT
SYS$USERS                 CDB$ROOT

2.create datafile directory and create clonepdb pdbs. 
if the trsenpdb is remote or non-CDB,then create database link for trsenpdb. We can using the "create pluggable database xxx from xx@db_link …" statement.

mkdir -p /u02/oradata/pdbs/clonepdb

CREATE PLUGGABLE DATABASE clonepdb FROM trsenpdb
  PATH_PREFIX = '/u02/oradata/pdbs/clonepdb'
  FILE_NAME_CONVERT = ('/u02/oradata/pdbs/trsenpdb/', '/u02/oradata/pdbs/clonepdb')
  SERVICE_NAME_CONVERT = ('trsenpdb.com','clonepdb')
  NOLOGGING;

3.view the pdbs's informations;
​
SYS@EMREP>select name,open_mode,status from dba_pdbs p ,v$pdbs s where p.con_id=s.con_id;
NAME                     OPEN_MODE          STATUS
---------------------------------------- -------------------- ------------------
PDB$SEED                 READ ONLY          NORMAL
PDBEMREP                 READ WRITE          NORMAL
TRSENPDB                 READ WRITE          NORMAL
CLONEPDB                 MOUNTED          NEW

SYS@EMREP>select name,pdb from v$services;
NAME                     PDB
---------------------------------------- ------------------------------------------------------------
clonepdb.com                 CLONEPDB
trsenpdb.com                 TRSENPDB
pdbemrep.com                 PDBEMREP
EMREPXDB                 CDB$ROOT
handpay.com                 CDB$ROOT
SYS$BACKGROUND                 CDB$ROOT
SYS$USERS                 CDB$ROOT

SYS@EMREP>ALTER PLUGGABLE DATABASE clonepdb open read write;
Pluggable database altered.

SYS@EMREP>select name,open_mode,status from dba_pdbs p ,v$pdbs s where p.con_id=s.con_id;
NAME                     OPEN_MODE          STATUS
---------------------------------------- -------------------- ------------------
PDB$SEED                 READ ONLY          NORMAL
PDBEMREP                 READ WRITE          NORMAL
TRSENPDB                 READ WRITE          NORMAL
CLONEPDB                 READ WRITE          NORMAL

三.Creating a PDB by Plugging an Unplugged PDB into a CDB
This technique uses the XML metadata file that describes the PDB and the files associated with the PDB to plug it into the CDB.
The trsenpdb on emrep container , we will use XML file pluggable to CDB2.

1. to generate an XML file named trsenpdb.xml in the /u02/oradata/pdbs directory

SYS@EMREP>BEGIN
  DBMS_PDB.DESCRIBE(
    pdb_descr_file => '/u02/oradata/pdbs/trsenpdb.xml',
    pdb_name       => 'TRSENPDB');
END;
/  2    3    4    5    6  

PL/SQL procedure successfully completed.

2.check pdbs compatibility.if output is YES 

SET SERVEROUTPUT ON
DECLARE
  compatible CONSTANT VARCHAR2(3) := 
    CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
           pdb_descr_file => '/u02/oradata/pdbs/trsenpdb.xml',
           pdb_name       => 'TRSENPDB')
    WHEN TRUE THEN 'YES'
    ELSE 'NO'
END;
BEGIN
  DBMS_OUTPUT.PUT_LINE(compatible);
END;
/

3.close PDB trsenpdb and  then unplug it

SYS@EMREP>alter session set container=trsenpdb;
Session altered.

SYS@EMREP>shutdown immediate;
Pluggable Database closed.

SYS@EMREP>ALTER PLUGGABLE DATABASE trsenpdb UNPLUG INTO '/u02/oradata/pdbs/trsenpdb.xml';
Pluggable database altered.

4.Run the CREATE PLUGGABLE DATABASE statement, and specify the XML file in the USING clause and Open the new PDB in read/write mode.

SYS@CDB1>CREATE PLUGGABLE DATABASE trsenpdb USING '/u02/oradata/pdbs/trsenpdb.xml' NOCOPY TEMPFILE REUSE;
Pluggable database created.

SYS@CDB1>ALTER PLUGGABLE DATABASE trsenpdb open read write
Pluggable database altered.

SYS@CDB1>select name,open_mode,status from dba_pdbs p ,v$pdbs s where p.con_id=s.con_id;

NAME                     OPEN_MODE          STATUS
---------------------------------------- -------------------- ------------------
PDBTEST                  READ WRITE          NORMAL
PDB$SEED                 READ ONLY          NORMAL
TRSENPDB                 READ WRITE          NORMAL

ORACLE 12cR1 Common and Local users.

Common user is fresh concepts before 12c database .
 A common user is a database user that has the same identity in the root and in every existing and future PDB.
Every common user can connect to and perform operations within the root, and within any PDB in which it has privileges.
Every common user is either Oracle-supplied or user-created. Examples of Oracle-supplied common users are SYS and SYSTEM.

Common users have the following characteristics:
1.A common user can log in to any container (including CDB$ROOT) in which it has the CREATE SESSION privilege.but a common user
have different privilege in different pdbs.
2.The name of every user-created common user must begin with the characters c## or C##.
3.A common user resides in the root, but must be able to connect to every PDB with the same identity.
4. if c##dba is a common user that has privileges on multiple containers, 
then the c##dba schema in each of these containers may contain different objects.

Local Users in a CDB 
A local user is a database user that is not common and can operate only within a single PDB.
A local user have same funcation in a NO-CDB.

SQL> select NAME,CON_ID,PDB from v$services;
NAME                                                                     CON_ID PDB
-------------------------------------------------------------------------------------------------------------------------------- ---------- ------------------------------------------------------------
pdbemrep.com                                                                  3 PDBEMREP
EMREPXDB                                                                  1 CDB$ROOT
trsen.com                                                                  1 CDB$ROOT
SYS$BACKGROUND                                                                  1 CDB$ROOT
SYS$USERS                                                                  1 CDB$ROOT

SQL> sho con_name;
CON_NAME
------------------------------
CDB$ROOT

SQL> select username,common from dba_users

USERNAME                 COMMON
---------------------------------------- ------
ORACLE_OCM                 YES
OJVMSYS                  YES
SYSKM                     YES
XS$NULL                  YES
GSMCATUSER                 YES
MDDATA                     YES
SYSBACKUP                 YES
DIP                     YES
SYSDG                     YES
APEX_PUBLIC_USER             YES
SPATIAL_CSW_ADMIN_USR             YES
......
SQL> alter session set container=pdbemrep;
Session altered.

when we query dba_users on pdb ,then have user informations (common is NO)


SQL> show con_name
CON_NAME
--------
PDBEMREP

SQL>select username,common from dba_users
USERNAME                 COMMON
---------------------------------------- ------
BI                     NO
PM                     NO
IX                     NO
SH                     NO
OE                     NO
HR                     NO
SCOTT                     NO
ORACLE_OCM                 YES
OJVMSYS                  YES
SYSKM                     YES
XS$NULL                  YES
......

 

if we direct the pdb's any users ,then we can used network service way

first,query the listener informations and reference the servcie informations from v$services


LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 04-NOV-2016 19:40:43
Copyright (c) 1991, 2014, Oracle.  All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sitgc.trsen.cn)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date                03-NOV-2016 15:49:10
Uptime                    1 days 3 hr. 51 min. 35 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.0.1.2/db_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/sitgc/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sitgc.trsen.cn)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=sitgc.trsen.cn)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/admin/trsen/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "EMREPXDB.com" has 1 instance(s).
  Instance "EMREP", status READY, has 1 handler(s) for this service...
Service "trsen.com" has 1 instance(s).
  Instance "EMREP", status READY, has 1 handler(s) for this service...
Service "pdbemrep.com" has 1 instance(s).
  Instance "EMREP", status READY, has 1 handler(s) for this service...
The command completed successfully


[oracle@sitgc:/tmp]$sqlplus sh/sh@sitgc.trsen.cn:1521/pdbemrep.com
SQL*Plus: Release 12.1.0.2.0 Production on Fri Nov 4 19:40:54 2016
Copyright (c) 1982, 2014, Oracle.  All rights reserved.
Last Successful login time: Fri Nov 04 2016 18:44:25 +08:00
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> show user;
USER is "SH"
SQL> show con_name;
CON_NAME
------------------------------
PDBEMREP
SQL> select tname from tab;
TNAME
--------------------------------------------------------------------------------
SALES
COSTS
TIMES
PRODUCTS
CHANNELS
PROMOTIONS

ORACLE 12C Release 1 Install Informations


Today,we can study the oracle 12c's install for linux. The blog only records the Text information and not the picture.

Simple description:
In Oracle Database 12c Release 1 the concept of multitenant environment has been introduced.
The multitenant architecture enables an Oracle database to function as a multitenant container database (CDB) that includes zero, one, or many customer-created pluggable databases (PDBs).
A PDB is a portable collection of schemas, schema objects, and nonschema objects that appears to an Oracle Net client as a non-CDB. 
All Oracle databases before Oracle Database 12 were non-CDBs.

A CDB includes the following components:
1.Root
The root, named CDB$ROOT, stores Oracle-supplied metadata and common users. 
An example of metadata is the source code for Oracle-supplied PL/SQL packages.
 A common user is a database user known in every container. A CDB has exactly one root.

2.Seed
The seed, named PDB$SEED, is a template that you can use to create new PDBs. 
You cannot add objects to or modify objects in the seed. A CDB has exactly one seed.

3.PDBs
A PDB appears to users and applications as if it were a non-CDB.
For example, a PDB can contain the data and code required to support a specific application. 
A PDB is fully backward compatible with Oracle Database releases before Oracle Database 12c.
Each of these components is called a container. Therefore, the root is a container, the seed is a container, and each PDB is a container. 
Each container has a unique container ID and name within a CDB.

一、Basic (Typical) Installation
1.For Non-Container Database
(1).The Configure Security Updates window appears.
Deselect "I wish to receive security updates via My Oracle Support". Click Next to continue. Click "Yes" in the confirmation window
(2).The Download Software Updates window appears
Select "Skip software updates". Click Next to continue
(3).The Select Installation Option window appears. 
Select "Create and configure a database." Click Next.
(4).The System Class window appears.
Select "Server Class." Click Next.
(5).The Grid Installation Options window appears.
Select "Single instance database installation." Click Next.
(6).The Select Install Type window appears.
Select "Typical install." Click Next.
(7).The Typical Install Configuration window appears.
ps: De-select Create as Container Database. Click Next.
(8).The Create Inventory window appears.
Accept the defaults and click Next.
(9).The Summary window appears.
Review the settings and click Install.
(10).Install Product window appears.
(11).The Execute Configuration Scripts window appears.
on root user execute  the script as follows:

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/12.1.0/db_1/root.sh

(12).After executing the scripts in your terminal window, return to the Execute Configuration scripts window and click OK
(13).The Database Configuration Assistant window appear.
(14).Click "OK" and exist install window. The 12c database software and database finish installed. 

2.For Container Database(including Pluggable Database)
(1).The Configure Security Updates window appears.
Deselect "I wish to receive security updates via My Oracle Support". Click Next to continue. Click "Yes" in the confirmation window
(2).The Download Software Updates window appears
Select "Skip software updates". Click Next to continue
(3).The Select Installation Option window appears. 
Select "Create and configure a database." Click Next.
(4).The System Class window appears.
Select "Server Class." Click Next.
(5).The Grid Installation Options window appears.
Select "Single instance database installation." Click Next.
(6).The Select Install Type window appears.
Select "Typical install." Click Next.
(7).The Typical Install Configuration window appears.
ps: Select Create as Container Database and input the Container name <<<<<===different from the Non-Container Database
Click Next.
(8).The Create Inventory window appears.
Accept the defaults and click Next.
(9).The Summary window appears.
Review the settings and click Install.
(10).Install Product window appears.
(11).The Execute Configuration Scripts window appears.
on root user execute  the script as follows:

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/12.1.0/db_1/root.sh

(12).After executing the scripts in your terminal window, return to the Execute Configuration scripts window and click OK
(13).The Database Configuration Assistant window appear.
(14).Click "OK" and exist install window. The 12c database software and database finish installed.

二、Advanced Installation
1.For Non-Container Database
(1).The Configure Security Updates window appears.
Deselect "I wish to receive security updates via My Oracle Support". Click Next to continue. Click "Yes" in the confirmation window
(2).The Download Software Updates window appears
Select "Skip software updates". Click Next to continue
(3).The Select Installation Option window appears. 
Select "Create and configure a database." Click Next.
(4).The System Class window appears.
Select "Server Class." Click Next.
(5).The Grid Installation Options window appears.
Select "Single instance database installation." Click Next.
(6).The Select Install Type window appears.
Select "Advanced install." Click Next.<<<<<=========
(7).The Select Product Languages window appears.
select English and chinese language . Click Next.
(8).The Select Database Edition window appears. 
Select Enterprise Edition. Click Next.
(9).The Specify Installation Location window appears.
Accept the default values or change as appropriate to your installation. Click Next.
(10).The Create Inventory window appears.
Accept the defaults and click Next.
(11).The Select Configuration Type window appears. 
Select "General Purpose/Transaction Processing." Click Next.
(12).The Specify Database Identifiers window appears.
Accept the default values or change as necessary for your installation. 
ps:De-select Create as Container Database. 
Click Next.
(13).The Specify Configuration Options window appears.
Need you configration any parameter for database. (memory,character sets,sample schemas)
(14).The Specify Database Storage Options window appears.
Accept the default of File System. Click Next.
(15).The Specify Management Options window appears.
ps:De-select "Register with Enterprise Manager(EM) Cloud Control" Click Next.
(16).The Specify Recovery Options window appears.
Select "Enable Recovery." Click Next.
(17).The Specify Schema Passwords window appears.
(18).The Privileged Operating System Groups window appears.
(19).The Perform Prerequisite Checks window appears.
(20).The Summary window appears.
(21).The Install Product window appears.
(22).The "Execute Configuration scripts" window appears.
on root user execute  the script as follows:

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/12.1.0/db_1/root.sh

(23).After executing the scripts in your terminal window, return to the Execute Configuration scripts window and click OK
(24).The Database Configuration Assistant window appear.
(25).Click "OK" and exist install window. The 12c database software and database finish installed. 

2.For Container Database(including Pluggable Database)
(1).The Configure Security Updates window appears.
Deselect "I wish to receive security updates via My Oracle Support". Click Next to continue. Click "Yes" in the confirmation window
(2).The Download Software Updates window appears
Select "Skip software updates". Click Next to continue
(3).The Select Installation Option window appears. 
Select "Create and configure a database." Click Next.
(4).The System Class window appears.
Select "Server Class." Click Next.
(5).The Grid Installation Options window appears.
Select "Single instance database installation." Click Next.
(6).The Select Install Type window appears.
Select "Advanced install." Click Next.<<<<<=========
(7).The Select Product Languages window appears.
select English and chinese language . Click Next.
(8).The Select Database Edition window appears. 
Select Enterprise Edition. Click Next.
(9).The Specify Installation Location window appears.
Accept the default values or change as appropriate to your installation. Click Next.
(10).The Create Inventory window appears.
Accept the defaults and click Next.
(11).The Select Configuration Type window appears. 
Select "General Purpose/Transaction Processing." Click Next.
(12).The Specify Database Identifiers window appears.
Accept the default values or change as necessary for your installation. 
ps:Select Create as Container Database. <<<<<<<<<<================
Click Next.
(13).The Specify Configuration Options window appears.
Need you configration any parameter for database. (memory,character sets,sample schemas)
(14).The Specify Database Storage Options window appears.
Accept the default of File System. Click Next.
(15).The Specify Management Options window appears.
ps:De-select "Register with Enterprise Manager(EM) Cloud Control" Click Next.
(16).The Specify Recovery Options window appears.
Select "Enable Recovery." Click Next.
(17).The Specify Schema Passwords window appears.
(18).The Privileged Operating System Groups window appears.
(19).The Perform Prerequisite Checks window appears.
(20).The Summary window appears.
(21).The Install Product window appears.
(22).The "Execute Configuration scripts" window appears.
on root user execute  the script as follows:

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/12.1.0/db_1/root.sh

(23).After executing the scripts in your terminal window, return to the Execute Configuration scripts window and click OK
(24).The Database Configuration Assistant window appear.
(25).Click "OK" and exist install window. The 12c database software and database finish installed. 

In practical:
Personally I like first install database software ,and then create database by DBCA oui tools.

ORACLE 12C new critical background process is LREG(2)

Introduce LREG process any informations,but have problem for follow:
what cause use of LREG instead of PMON process to register instance to oracle net?

use command dump listener register detail informations, for example:

SYS@em12c> alter system set events=’immediate trace name listener_registration level 3′;
System altered.

——————————
Start Registration Information
——————————

Last update: 542781289 (27 seconds ago)
Flag: 0x4, 0x0
State: succ=1, wait=0, fail=0

CDB: root pdb 1 last pdb 254 open max pdb 3

Listeners:
0 – (ADDRESS=(PROTOCOL=TCP)(HOST=em12c.oracle.com)(PORT=1521)) pdb 1
state=1, err=0
nse[0]=0, nse[1]=0, nte[0]=0, nte[1]=0, nte[2]=0
ncre=0
endp=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=em12c.oracle.com)(PORT=1521)))
flg=0x80000000 nse=0

Instance: em12c (PDB 1 flag 0x1 state 1)
flg=0x0, upd=0xa
info=(INF=(HOST=em12c)(REGION=)(DB_NAME=orcl)(VINST_NAME=))
node load=30, max=20480
inst load=17, max=472

Instance: em12c (PDB 2 flag 0x1 state 1)
flg=0x0, upd=0xa
info=(INF=(HOST=em12c)(REGION=)(DB_NAME=orcl)(VINST_NAME=))
node load=30, max=20480
inst load=17, max=472

Instance: em12c (PDB 3 flag 0x1 state 1)
flg=0x0, upd=0xa
info=(INF=(HOST=em12c)(REGION=)(DB_NAME=orcl)(VINST_NAME=))
node load=30, max=20480
inst load=17, max=472

Services:
0 – em12cXDB.oracle.com
flg=0x105, upd=0x0, pdb=1
goodnes=0, delta=0
1 – orcl.oracle.com
flg=0x104, upd=0x6, pdb=0
goodnes=0, delta=1
2 – em12cXDB.oracle.com
flg=0x105, upd=0x6, pdb=0
goodnes=0, delta=1
3 – orcl2.oracle.com
flg=0x104, upd=0x6, pdb=0
goodnes=0, delta=1

Handlers:
0 – Dedicated
flg=0x80002002, upd=0x2
services=orcl.oracle.com,
orcl2.oracle.com
hdlr load=62, max=299

Dispatcher Handlers:
0 – D000(1)
addr=(ADDRESS=(PROTOCOL=tcp)(HOST=em12c.oracle.com)(PORT=39998))
inf=DISPATCHER <machine: em12c.oracle.com, pid: 14954>
flg=0x1004, upd=0x0
services=em12cXDB.oracle.com
hdlr load=0, max=1022

CMON Handlers:

CMON Handlers for Listener Networks:

Listen Endpoints:
0 – (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=em12c.oracle.com)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/admin/orcl/xdb_wallet))(Presentation=HTTP)(Sessi
on=RAW))
flg=0x80000000, nse=0, lsnr=, lflg=0x73
pre=HTTP, sta=0

—————————-
End Registration Information
—————————-

if there are 100+ services and listeners, then is a possibility that the PMON process might spend more time on service registration to listeners due to the number of services and listeners.
But, in version 12c, this possibility is eliminated as the LREG parameter performs service registration and PMON is freed from listener registration.
So, The pmon will be better preformance when resets the status of the active transaction table and so on .
references:
oracle support.
oracle org document.
export oracle rac 12c.