Create a container database manually with using OMF.
The procedure to follow can be found in Creating a CDB with the CREATE DATABASE Statement, and Create 12C Non-CDB Database Using OMF.
The database and instance name is JAR.
The following update is made to /etc/oratab:
jar:/opt/app/oracle/product/12.1.0/dbhome_1:NThe appropriate environment variables are set as follows:
. oraenvThe password file is created as follows:
cd ${ORACLE_HOME}/dbsorapwd file=orapwd${ORACLE_SID}The following data is entered into /home/oracle/initjar.ora:
cat >initjar.ora <<DONE*.audit_file_dest='/opt/app/oracle/admin/jar/adump'*.audit_trail='db'*.compatible='12.1.0.2.0'*.db_block_size=8192*.db_create_file_dest='/opt/app/oracle/oradata'*.db_create_online_log_dest_1='/opt/app/oracle/oradata'*.db_create_online_log_dest_2='/opt/app/oracle/fast_recovery_area'*.db_domain='yaocm.id.au'*.db_name='jar'*.db_recovery_file_dest='/opt/app/oracle/fast_recovery_area'*.db_recovery_file_dest_size=9G*.diagnostic_dest='/opt/app/oracle'*.dispatchers='(PROTOCOL=TCP) (SERVICE=jarXDB)'*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST'*.memory_target=1470m*.open_cursors=300*.processes=300*.remote_login_passwordfile='EXCLUSIVE'*.undo_tablespace='UNDOTBS1'*.enable_pluggable_database=TRUEDONEThe key difference with the non-CDB case is the inclusion of the last parameter.
The following directories are created:
mkdir -p /opt/app/oracle/admin/jar/adumpmkdir -p /opt/app/oracle/oradatamkdir -p /opt/app/oracle/fast_recovery_area According to "ORA-01917: User Or Role 'PDB_DBA' Does Not Exist" while creating container enabled (cdb) database manually (Doc ID 1967358.1), the PERL environment should reference the one supplied by the Oracle RDBMS installation. The PATH variable to reflect this:
export PATH=${ORACLE_HOME}/perl/bin:${PATH} Instead of following the procedure, I used the following commands instead:
sqlplus / as sysdbastartup nomount pfile='/home/oracle/initjar.ora'The reason is to check the syntax and validity of the initialization parameters before creating the spfile.
The spfile is created in the default location (${ORACLE_HOME}/dbs) as follows:
CREATE SPFILE FROM PFILE='/home/oracle/initjar.ora';The instance is started using the spfile:
startup nomount forceThe database is created using the following command:
create database jar   user sys identified by "&pw_sys"   user system identified by "&pw_system"   logfile group 1 size 50m,           group 2 size 50m,           group 3 size 50m   character set al32utf8 national character set al16utf16   set default bigfile tablespace   archivelog   set time_zone='+10:00'   extent management local   default temporary tablespace temp   default tablespace users   undo tablespace undotbs1   enable pluggable database/The key difference with the non-CDB case is the inclusion of the following:
enable pluggable database The key difference with the non-CDB case is the replacement of the catalog.sql and catproc.sql with catcdb.sql.
According to "ORA-01917: User Or Role 'PDB_DBA' Does Not Exist" while creating container enabled (cdb) database manually (Doc ID 1967358.1), the following commands are run to install the CDB components:
connect / as sysdba@?/rdbms/admin/catcdb.sqlconnect system@?/sqlplus/admin/pupbld.sqlThe use of WHENEVER OSERROR EXIT FAILURE ROLLBACK gives the following messages:
catcon.pl: completed successfully O/S Message: No child processes
And the catcdb.sql script finishes prematurely.
Using this method means that the PRODUCT_USER_PROFILE table is missing from the SEED database. After a pluggable database is created from the SEED, you will have to run the following commands:
CONNECT SYSTEMALTER SESSION SET container=&pdb.;@?/sqlplus/admin/pupbld.sql