In Oracle 12c multitenant databases CDBs are containers databases which hold oracle internals, supplied accounts and processes and client PDBs pluggable databases for applications. PDBs are services within a CDB and thus are connected to through the CDB they are contained inside of or through oracle networking. This procedure demonstrates the connection through both processes.
Connection via CDB
- Connect to your oracle database server as the oracle software owner.
[larry@linux2 ~]$ su – oracle
Password:
Last login: Mon Jun 24 11:43:05 EDT 2016 on pts/1
[oracle@linux2 ~]$
- Verify that you have environment has the appropriate CDB SID set with command echo $ORACLE_SID. If it is not the appropriate SID change which the export ORACLE_SID= statement.
[oracle@linux2 ~]$ echo $ORACLE_SID
cdb1
[oracle@linux2 ~]$ export ORACLE_SID=cdb1
[oracle@linux2 ~]$ echo $ORACLE_SID
cdb1
[oracle@linux2 ~]$
- Now you can connect directly into the CDB referenced by the environmental parameter ORACLE_SID with the command sqlplus / as sysdba. NOTE: You are connecting with the administrative account
[oracle@linux2 ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Mon Jun 24 12:26:00 2016
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, OLAP, Advanced Analytics and Real Application Testing options
SQL>
- Once you are connected to the CDB, you can now change your session to connect to the PDB of interest. In this example we will connect to pdb1. You do this with the command alter session set container=<PDB_name>l
SQL> show con_name;
CON_NAME
——————————
CDB$ROOT
SQL> alter session set container = pdb1;
Session altered.
SQL> show con_name
CON_NAME
——————————
PDB1
SQL>
- This completes connecting the PDB from CDB.
Connection via Oracle networking
- Connect to your oracle database server as the oracle software owner.
[larry@linux2 ~]$ su – oracle
Password:
Last login: Mon Jun 24 11:43:05 EDT 2016 on pts/1
[oracle@linux2 ~]$
- View the database connection available in the listener process with command lsnrctl status.
[oracle@linux2 ~]$ lsnrctl status
LSNRCTL for Linux: Version 12.1.0.2.0 – Production on 24-JUN-2016 14:03:44
Copyright (c) 1991, 2014, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.30.15.75)(PORT=1521)))
STATUS of the LISTENER
————————
Alias LISTENER
Version TNSLSNR for Linux: Version 12.1.0.2.0 – Production
Start Date 24-JUN-2016 14:02:17
Uptime 0 days 0 hr. 1 min. 26 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/app/oracle/product/12.1.0.2/db_1/network/admin/listener.ora
Listener Log File /opt/app/oracle/diag/tnslsnr/linux2/listener/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.30.15.75)(PORT=1521)))
Services Summary…
Service “cdb1” has 2 instance(s).
Instance “cdb1”, status UNKNOWN, has 1 handler(s) for this service…
Instance “cdb1”, status READY, has 1 handler(s) for this service…
Service “cdb1XDB” has 1 instance(s).
Instance “cdb1”, status READY, has 1 handler(s) for this service…
Service “pdb1” has 1 instance(s).
Instance “cdb1”, status READY, has 1 handler(s) for this service…
The command completed successfully
[oracle@linux2 ~]$
- See the PDB pdb1 in the container cdb1. Connect directly to the PDB via oracle listener by referencing this listener server.
[oracle@linux2 ~]$ sqlplus system/password@pdb1
SQL*Plus: Release 12.1.0.2.0 Production on Mon Jun 24 14:57:43 2016
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, OLAP, Advanced Analytics and Real Application Testing options
SQL>SQL> show con_name
CON_NAME
——————————
PDB1
SQL>
- This completes connection to PDB via oracle networking.
Larry Catt
OCP