Files
notes/tiddlywiki/Create RAC CDB database manually.txt
2026-03-12 22:01:38 +01:00

133 lines
4.4 KiB
Plaintext
Executable File

~~ 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;