Oracle has announced that, from 19c onward, you can have 3 user-defined PDBs, without having to license the multitenant option.
The non-CDB architecture will be desupported from Oracle 21c on.
SHOW CON_NAME
SELECT SYS_CONTEXT('USERENV','CON_NAME') AS CON_NAME FROM dual;
SHOW CON_ID
SELECT SYS_CONTEXT('USERENV','CON_ID') AS CON_ID FROM dual;
Each pluggable database should automatically register a service with the listener...
lsnrctl service
SELECT * FROM dba_pdbs ORDER BY pdb_id
SELECT name,
cause,
type,
message,
status
FROM pdb_plug_in_violations
WHERE type = 'ERROR'
AND status !='RESOLVED';
PDB1 Sync Failure ERROR "Sync PDB failed with ORA-65177 during 'alter user "xxx" ...' " PENDING
COLUMN name FORMAT A30
COLUMN sqlstmt FORMAT A100
SELECT ctime,
sqlstmt,
name,
flags,
opcode,
replay#
FROM pdb_sync$;
To fix...
ALTER SESSION SET CONTAINER=CDB$ROOT;CREATE TABLE bkppdb_sync$ AS SELECT * FROM pdb_sync$;DELETE FROM pdb_sync$ WHERE sqlstmt LIKE ('%alter user "xxx"%');COMMIT;ALTER SESSION SET CONTAINER=PDB;CREATE TABLE bkppdb_sync$ AS SELECT * FROM pdb_sync$;DELETE FROM pdb_sync$ WHERE sqlstmt LIKE ('%alter user "xxx"%');COMMIT;ALTER SESSION SET CONTAINER=CDB$ROOT;ALTER PLUGGABLE database PDB CLOSE IMMEDIATE;ALTER PLUGGABLE database PDB OPEN;When logged into the CDB you can switch between PDBs/CDB like this...
ALTER SESSION SET CONTAINER=mypdb;
ALTER SESSION SET CONTAINER=cdb$root;
If ORACLE_SID is set and you connect / as sysdba, you will connect to the CDB
If ORACLE_SID and ORACLE_PDB_SID is set and you connect / as sysdba you will connect to the PDB (owned by the CDB identified bu ORACLE_SID)
These pages also include Multi-Tenant specific content...