enable_pluggable_database=true
processes=300
control_files="/u02/oradata/cdbveg/control01.ctl","/u03/oradata/cdbveg/control02.ctl"
audit_file_dest="/u01/oracle/admin/cdbveg/adump"
audit_trail=DB
compatible=12.1.0.2
db_block_size=8192
db_domain=""
db_name="cdbveg"
db_recovery_file_dest_size=429496729600
db_recovery_file_dest="/u04/fra"
diagnostic_dest=/u01/oracle
dispatchers="(PROTOCOL=TCP) (SERVICE=cdbvegXDB)"
local_listener = "(ADDRESS = (PROTOCOL=TCP)(HOST=myserver.mydomain.com)(PORT=1521))"
open_cursors=300
remote_login_passwordfile=EXCLUSIVE
undo_tablespace=UNDOTBS1
# use ASMM (Automatic shared memory managaement)
sga_target=2G
sga_max_size=2G
pga_aggregate_target=128M
# Disable AMM (Automatic Memory Managament)
memory_target=0
memory_max_target=0
Create the necessarry directories:
mkdir -p /u02/oradata/cdbveg mkdir -p /u03/oradata/cdbveg mkdir -p /u01/oracle/admin/cdbveg/adump mkdir -p /u02/oradata/cdbveg/seedSet your environment variables correcly, in my case they were:
export ORACLE_SID=cdbveg export ORACLE_BASE=/u01/oracle export ORACLE_HOME=/u01/oracle/product/12102
Start an instance:
sqlplus / as sysdba statup nomount
Create your container database:
create database cdbveg user sys identified by MySecretPasswd user system identified by MySecretPasswd logfile group 1( '/u02/oradata/cdbveg/red01a.log', '/u03/oradata/cdbveg/red01b.log' ) size 128M, group 2 ( '/u02/oradata/cdbveg/red02a.log', '/u03/oradata/cdbveg/red02b.log' ) size 128M character set al32utf8 national character set al16utf16 extent management local datafile '/u02/oradata/cdbveg/system01.dbf' size 256M autoextend on next 16M maxsize unlimited sysaux datafile '/u02/oradata/cdbveg/sysaux01.dbf' size 128M autoextend on next 16M maxsize unlimited default temporary tablespace temp tempfile '/u02/oradata/cdbveg/temp.dbf' size 256M undo tablespace undotbs1 datafile '/u02/oradata/cdbveg/undotbs01.dbf' size 256M enable pluggable database seed file_name_convert = ('/u02/oradata/cdbveg','/u02/oradata/cdbveg/seed') system datafiles size 128M autoextend on next 8M maxsize 2048M sysaux datafiles size 64M USER_DATA tablespace users datafile '/u02/oradata/cdbveg/seed/users.dbf' size 128M reuse autoextend on next 32M maxsize unlimited;
The above statement will create a container database, and a seed database which will follow the specifications listed under the keyword "seed" in the create-statement above.
The /u02/oradata/cdbveg/seed directory will contain the datafiles used for future creations of PDBs based on the seed template.
In addition to the mandatory system and sysaux tablespaces, I add a tablespace for user data, too.
Finally, run the necessary scripts:
sqlplus / as sysdba SQL> @?/rdbms/admin/catalog.sql SQL> @?/rdbms/admin/catblock.sql SQL> @?/rdbms/admin/catproc.sql SQL> alter session set "_ORACLE_SCRIPT"=false; SQL> @?/rdbms/admin/catoctk.sql SQL> @?/rdbms/admin/owminst.plb SQL> @?/sqlplus/admin/pupbld.sql
Verify creation:
select name,con_id,dbid,open_mode from v$containers NAME CON_ID DBID OPEN_MODE -------------------- ---------- ---------- ------------------------------ CDB$ROOT 1 3469467854 READ WRITE PDB$SEED 2 682995139 READ ONLY