~~ Context: DBNAME=HUTT, db_unique_name=HUTTPRD, instances HUTT1/HUTT2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ NOTE: the procedure is identical to creating a non CDB database ~~ the ONLY difference is enable_pluggable_database=true parameter in init.ora mkdir -p /app/base/admin/HUTTPRD cd /app/base/admin/HUTTPRD mkdir scripts divers adump init diag ~~~~~~~~~~~~ initHUTT.ora ~~~~~~~~~~~~ *.enable_pluggable_database=true *.cluster_database=false *.db_name=HUTT *.db_unique_name=HUTTPRD *.compatible=19.0.0 *.control_files=(+DATA/HUTTPRD/control01.ctl,+DATA/HUTTPRD/control02.ctl) *.db_create_file_dest=+DATA *.db_create_online_log_dest_1=+DATA *.db_recovery_file_dest_size=4G *.db_recovery_file_dest=+RECO *.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST' *.log_archive_format=%t_%s_%r.arc *.db_block_size=8192 *.open_cursors=300 *.diagnostic_dest=/app/base/admin/HUTTPRD *.sga_max_size=3G *.sga_target=3G *.pga_aggregate_target=512M *.pga_aggregate_limit=2G *.processes=350 *.audit_file_dest=/app/base/admin/HUTTPRD/adump *.audit_trail=db *.remote_login_passwordfile=exclusive HUTT1.instance_number=1 HUTT2.instance_number=2 HUTT1.thread=1 HUTT2.thread=2 HUTT1.undo_tablespace=UNDOTBS1 HUTT2.undo_tablespace=UNDOTBS2 ~~~~ startup nomount pfile='/mnt/yavin4/tmp/_oracle_/ad-hoc/initHUTT.ora'; create database HUTT datafile size 700M autoextend on next 64M extent management local SYSAUX datafile size 512M autoextend on next 64M default temporary tablespace TEMP tempfile size 256M autoextend off undo tablespace UNDOTBS1 datafile size 256M autoextend off character set AL32UTF8 national character set AL16UTF16 logfile group 1 size 64M, group 2 size 64M user SYS identified by secret user SYSTEM identified by secret; create undo tablespace UNDOTBS2 datafile size 256M autoextend off; create tablespace USERS datafile size 32M autoextend ON next 32M; alter database default tablespace USERS; alter database add logfile thread 2 group 3 size 64M, group 4 size 64M; alter database enable public thread 2; ~~ create dictionary objects on CDB$ROOT @?/rdbms/admin/catalog.sql @?/rdbms/admin/catproc.sql @?/rdbms/admin/catclust.sql @?/rdbms/admin/utlrp.sql ~~ open PDB$SEED in read/write mode and create dictionary objects on PDB$SEED alter session set "_oracle_script"=true; alter pluggable database PDB$SEED close immediate; alter pluggable database PDB$SEED open; alter session set "_oracle_script"=false; alter session set container=PDB$SEED; @?/rdbms/admin/catalog.sql @?/rdbms/admin/catproc.sql @?/rdbms/admin/catclust.sql @?/rdbms/admin/utlrp.sql alter session set "_oracle_script"=true; alter pluggable database PDB$SEED close immediate; alter pluggable database PDB$SEED open read only; alter session set "_oracle_script"=false; ~~ add cluster_database=true in init.ora and restart instance on 2 nodes startup pfile='/mnt/yavin4/tmp/_oracle_/ad-hoc/initHUTT.ora'; ~~ create spfile on ASM and create $ORACLE_HOME/dbs/initXXXXX.ora on both nodes create spfile='+DATA/HUTTPRD/spfileHUTT.ora' from pfile='/mnt/yavin4/tmp/_oracle_/ad-hoc/initHUTT.ora'; echo "spfile='+DATA/HUTTPRD/spfileHUTT.ora'" > $ORACLE_HOME/dbs/initHUTT1.ora echo "spfile='+DATA/HUTTPRD/spfileHUTT.ora'" > $ORACLE_HOME/dbs/initHUTT2.ora ~~ register DB in CRS srvctl add database -d HUTTPRD -o /app/oracle/product/19 -p '+DATA/HUTTPRD/spfileHUTT.ora' srvctl add instance -d HUTTPRD -i HUTT1 -n vortex-db01 srvctl add instance -d HUTTPRD -i HUTT2 -n vortex-db02 ~~ create passwordfile on ASM; if the DB is not yet registered on CRS, you will get a WARNING orapwd FILE='+DATA/HUTTPRD/orapwHUTT' ENTRIES=10 DBUNIQUENAME='HUTTPRD' password=secret00! ~~ check database config in clusterware srvctl config database -db HUTTPRD ~~ shutdown instances with SQL*Plus and start database with srvctl srvctl start database -db HUTTPRD srvctl status database -db HUTTPRD -v ~~ optionally, put database in archivelog mode alter system set cluster_database=false scope=spfile sid='*'; alter system set db_recovery_file_dest_size=8G scope=both sid='*'; alter system set db_recovery_file_dest='+RECO' scope=both sid='*'; alter system set log_archive_dest_1 = 'location=USE_DB_RECOVERY_FILE_DEST' scope=both sid='*'; srvctl stop database -db HUTTPRD startup mount exclusive alter database archivelog; alter database open; srvctl stop database -db HUTTPRD srvctl start database -db HUTTPRD alter system archive log current;