The below demo is created on the basis of the following reference link
Oracle Database 12c: New Features - Pluggable Databases- by mikerajendran
details provided by mikerajendran in his blog
CDB vs. PDB
CDB is an acronym for “Container Database” and PDB is an acronym for “Pluggable Database”. I think it will be easier to explain with a metaphor for DBAs. Think of a freight train with many cars up to 250. Each container could be having different contents, with delivery target for different customers and completely packed/sealed independently with customer options but the entire freight is carried by a single engine or carrier at the front. It will be stupid enough to run 250 freight trucks but rather it is efficient to consolidate them into a single freight train. When running independently we will spend on gas, drivers’ expenses and much more complicated to manage them. The freight train is basically the CDB and each car is the PDB.
PDB is fully backward compatible to pre-12.1 database releases. There is nothing different from a developer or application connectivity perspective. Everything stays the same but the PDB will belong to a single CDB. When application connects to the PDB, it will specify the destination PDB via a database service. All home-grown or third party applications typically will have connectivity defined out of the application so it is easier to just change the service name outside of the application code. So all database connectivity should use “database service” rather than using the legacy approach of ORACLE_SID based connectivity. ORACLE_SID ties the application connectivity to a specific database instance and does not give the scalability or high availability. You can have many pluggable databases in 12.1.
So now we will see the creation of pluggabble database
I am using dbca to create the pluggable database as it is first time.
I got to see the process and it creating normal database then it converting the database as plugabble database
create pluggable database PDB$SEED as clone using '/media/12c_db/product/12.1.0/dbhome_1/assistants/dbca/templates//pdbseed.xml' source_file_nam
e_convert = ('/ade/b/3593327372/oracle/oradata/seeddata/pdbseed/temp01.dbf','/media/12c_db/oradata/ORA12CC1/datafile/pdbseed_temp01.dbf',
'/ade/b/3593327372/oracle/oradata/seeddata/pdbseed/system01.dbf','/media/12c_db/oradata/ORA12CC1/datafile/o1_mf_system_8wz2hq6d_.dbf',
'/ade/b/3593327372/oracle/oradata/seeddata/pdbseed/sysaux01.dbf','/media/12c_db/oradata/ORA12CC1/datafile/o1_mf_sysaux_8wz2hq68_.dbf') file_name_c
onvert=NONE NOCOPY
Sat Jun 29 18:30:39 2013
****************************************************************
Pluggable Database PDB$SEED with pdb id - 2 is created as UNUSABLE.
If any errors are encountered before the pdb is marked as NEW,
then the pdb must be dropped
****************************************************************
Database Characterset is US7ASCII
Deleting old file#2 from file$
Deleting old file#4 from file$
Adding new file#5 to file$(old file#2)
Adding new file#7 to file$(old file#4)
ALTER SYSTEM: Flushing buffer cache inst=0 container=2 local
****************************************************************
Post plug operations are now complete.
Pluggable database PDB$SEED with pdb id - 2 is now marked as NEW.
****************************************************************
Completed: create pluggable database PDB$SEED as clone using '/media/12c_db/product/12.1.0/dbhome_1/assistants/dbca/templates//pdbseed.xml' sour
ce_file_name_convert = ('/ade/b/3593327372/oracle/oradata/seeddata/pdbseed/temp01.dbf','/media/12c_db/oradata/ORA12CC1/datafile/pdbseed_temp01.dbf
',
'/ade/b/3593327372/oracle/oradata/seeddata/pdbseed/system01.dbf','/media/12c_db/oradata/ORA12CC1/datafile/o1_mf_system_8wz2hq6d_.dbf',
'/ade/b/3593327372/oracle/oradata/seeddata/pdbseed/sysaux01.dbf','/media/12c_db/oradata/ORA12CC1/datafile/o1_mf_sysaux_8wz2hq68_.dbf') file_name_c
onvert=NONE NOCOPY
alter pluggable database PDB$SEED open restricted
once created you can see this parameter is enabled
enable_pluggable_database= TRUE
SQL> set pages 1000
SQL> select * from v$instance;
INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME
----------------------------------------------------------------
VERSION STARTUP_T STATUS PAR THREAD# ARCHIVE LOG_SWITCH_WAIT
----------------- --------- ------------ --- ---------- ------- ---------------
LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO CON_ID
---------- --- ----------------- ------------------ --------- --- ----------
INSTANCE_MO EDITION
----------- -------
FAMILY
--------------------------------------------------------------------------------
1 ora12cc1
ovs1.co.nz
12.1.0.1.0 29-JUN-13 OPEN NO 1 STOPPED
ALLOWED NO ACTIVE PRIMARY_INSTANCE NORMAL NO 0
REGULAR EE
$ cat initora12cc1.ora
ora12cc1.__data_transfer_cache_size=0
ora12cc1.__db_cache_size=402653184
ora12cc1.__java_pool_size=16777216
ora12cc1.__large_pool_size=50331648
ora12cc1.__oracle_base='/media/12c_db'#ORACLE_BASE set from environment
ora12cc1.__pga_aggregate_target=503316480
ora12cc1.__sga_target=738197504
ora12cc1.__shared_io_pool_size=0
ora12cc1.__shared_pool_size=251658240
ora12cc1.__streams_pool_size=0
*.audit_file_dest='/media/12c_db/admin/ora12cc1/adump'
*.audit_trail='db'
*.compatible='12.1.0.0.0'
*.control_files='/media/12c_db/oradata/ORA12CC1/controlfile/o1_mf_8wz2gv8x_.ctl','/media/12c_db/fast_recovery_area/ORA12CC1/controlfile/o1_mf_8wz2gvog_.ctl'
*.db_block_size=8192
*.db_create_file_dest='/media/12c_db/oradata'
*.db_domain=''
*.db_name='ora12cc1'
*.db_recovery_file_dest='/media/12c_db/fast_recovery_area'
*.db_recovery_file_dest_size=4800m
*.diagnostic_dest='/media/12c_db'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ora12cc1XDB)'
*.enable_pluggable_database=true
*.memory_target=1177m
*.open_cursors=300
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
SQL> COLUMN "RESTRICTED" FORMAT A10
SQL> select v.name, v.open_mode, nvl(v.restricted, 'n/a') "RESTRICTED", d.status
2 from v$PDBs v inner join dba_pdbs d
3 using (GUID)
4 order by v.create_scn
5 /
NAME OPEN_MODE RESTRICTED STATUS
------------------------------ ---------- ---------- -------------
PDB$SEED READ ONLY NO NORMAL
ORA12CP1 MOUNTED n/a NORMAL
SQL> select name,TS#,STATUS from v$datafile;
NAME
--------------------------------------------------------------------------------
TS# STATUS
---------- -------
/media/12c_db/oradata/ORA12CC1/datafile/o1_mf_system_8wz29n4m_.dbf
0 SYSTEM
/media/12c_db/oradata/ORA12CC1/datafile/o1_mf_sysaux_8wz26nvn_.dbf
1 ONLINE
/media/12c_db/oradata/ORA12CC1/datafile/o1_mf_undotbs1_8wz2dnof_.dbf
2 ONLINE
NAME
--------------------------------------------------------------------------------
TS# STATUS
---------- -------
/media/12c_db/oradata/ORA12CC1/datafile/o1_mf_system_8wz2hq6d_.dbf
0 SYSTEM
/media/12c_db/oradata/ORA12CC1/datafile/o1_mf_users_8wz2dmgk_.dbf
4 ONLINE
/media/12c_db/oradata/ORA12CC1/datafile/o1_mf_sysaux_8wz2hq68_.dbf
1 ONLINE
NAME
--------------------------------------------------------------------------------
TS# STATUS
---------- -------
/media/12c_db/oradata/ORA12CC1/E05626A829151520E0430F02000A6A84/datafile/o1_mf_s
ystem_8wz2y8z4_.dbf
0 SYSTEM
/media/12c_db/oradata/ORA12CC1/E05626A829151520E0430F02000A6A84/datafile/o1_mf_s
ysaux_8wz2y92h_.dbf
1 ONLINE
/media/12c_db/oradata/ORA12CC1/E05626A829151520E0430F02000A6A84/datafile/o1_mf_u
NAME
--------------------------------------------------------------------------------
TS# STATUS
---------- -------
sers_8wz30lod_.dbf
3 ONLINE
/media/12c_db/oradata/ORA12CC1/datafile/o1_mf_users_8wz81r9g_.dbf
4 ONLINE
10 rows selected.
I will post little more examples on pluggable database. This above is just creation of pluggable database.