Instruction

Creating an Oracle AI Database 26ai RAC One Node Database (Response File Method)

Assumptions

This instruction assumes:

  • Oracle Linux 8.x or 9.x (x86_64) is installed and operational on all cluster nodes
  • Oracle Grid Infrastructure 26ai is installed and running with full Clusterware (not Oracle Restart) on all nodes
  • The ASM instance is running with +DATA and +RECO diskgroups created and mounted on all nodes
  • Oracle AI Database 26ai Enterprise Edition software is already installed (software-only) in a separate ORACLE_HOME on all candidate nodes
  • The oracle user exists and belongs to the required OS groups (oinstall, dba, oper, backupdba, dgdba, kmdba, racdba)
  • The SCAN listener is running and accessible from all nodes
  • The cluster has a minimum of 2 nodes (required for RAC One Node failover capability)
  • Each candidate node has at least 20 GB of available physical memory for SGA (16 GB) + PGA (4 GB)
  • The +DATA diskgroup has at least 20 GB of free space
  • The +RECO diskgroup has at least 50 GB of free space for the Fast Recovery Area
  • /dev/shm is sized to at least 16 GB on all candidate nodes
  • SSH user equivalence is configured between all candidate nodes for the oracle user
  • No X11 display is needed or available
  • The reader is logged in as the oracle user on one of the candidate nodes

Prerequisites

Automatic setup

No automatic setup is available for this task. Grid Infrastructure and database software installation are covered in separate instructions. This instruction begins after both are installed.

Manual setup

All verification steps are performed as the oracle user unless noted otherwise. The srvctl and asmcmd commands in this section require the Grid Infrastructure bin directory in PATH. If srvctl is not found, prefix commands with the full path (e.g., $GRID_HOME/bin/srvctl) or export PATH temporarily: export PATH=/u01/app/26.0.0/grid/bin:$PATH.

  1. Verify Clusterware is running on all nodes

As root on each node (use the full path if crsctl is not in root's PATH):

/u01/app/26.0.0/grid/bin/crsctl check crs

Expected output:

CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online

All three services must show online. If any service is offline, start Clusterware with /u01/app/26.0.0/grid/bin/crsctl start crs as root before proceeding. Replace the path with the actual Grid home location on your system.

  1. Verify ASM instance status
srvctl status asm

Expected output:

ASM is running on node1,node2

ASM must be running on all candidate nodes.

  1. Verify diskgroup status and free space
asmcmd lsdg

Expected output:

State    Type    Rebal  Sector  Logical_Sector  Block  AU  ...  Total_MB  Free_MB  ...  Name
MOUNTED  EXTERN  N      512     512             4096   4M  ...  204800    184320   ...  DATA/
MOUNTED  EXTERN  N      512     512             4096   4M  ...  102400    97280    ...  RECO/

Both DATA and RECO must show MOUNTED state. Verify Free_MB meets the minimum requirements: 20480 MB (20 GB) for DATA and 51200 MB (50 GB) for RECO.

  1. Verify SCAN listener status
srvctl status scan_listener

Expected output:

SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is running on node node1

At least one SCAN listener must be running.

  1. Verify SSH equivalence between nodes

From the node where you will run DBCA:

ssh node2 hostname

node2 -- the other candidate node. Replace with each candidate node hostname.

Expected output:

node2

The command must complete without a password prompt. If it prompts for a password, SSH equivalence is not configured. Configure it using ssh-keygen and ssh-copy-id before proceeding.

  1. Verify database software on all candidate nodes
ls -l $ORACLE_HOME/bin/dbca

Expected output:

-rwxr-x--- 1 oracle oinstall ... /u01/app/oracle/product/26/db_1/bin/dbca

Repeat on each candidate node via SSH:

ssh node2 "ls -l /u01/app/oracle/product/26/db_1/bin/dbca"
  1. Verify the DBCA template exists
ls -l $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc

Expected output:

-rw-r--r-- 1 oracle oinstall ... /u01/app/oracle/product/26/db_1/assistants/dbca/templates/General_Purpose.dbc
  1. Verify /dev/shm size on all candidate nodes

The SGA requires /dev/shm to be at least as large as sga_max_size (16 GB). Check every candidate node, not just the local node.

for node in node1 node2; do
  echo "=== $node ==="
  ssh $node "df -h /dev/shm"
done

node1, node2 -- replace with the actual hostnames of all candidate nodes.

Expected output:

=== node1 ===
Filesystem      Size  Used Avail Use% Mounted on
tmpfs            32G   0   32G   0% /dev/shm
=== node2 ===
Filesystem      Size  Used Avail Use% Mounted on
tmpfs            32G   0   32G   0% /dev/shm

The Size column must be at least 16 GB on every node. If any node shows less than 16 GB, resize as root on that node:

mount -o remount,size=17G /dev/shm

To persist across reboots, update /etc/fstab on the affected node to include size=17G in the tmpfs mount options for /dev/shm.

Additional setup

  1. Set environment variables

As the oracle user on the node where you will run DBCA, set the environment for the database home. The PATH must list the database home before the Grid home so that DBCA and other database utilities resolve to the correct binaries.

{ORACLE_BASE} -- the Oracle base directory (e.g., /u01/app/oracle).

{DB_HOME} -- the Oracle AI Database 26ai home directory (e.g., /u01/app/oracle/product/26/db_1).

{GRID_HOME} -- the Grid Infrastructure home directory (e.g., /u01/app/26.0.0/grid).

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/26/db_1
export ORACLE_SID=PROD_DC1
export PATH=$ORACLE_HOME/bin:$PATH

The ORACLE_SID is set to PROD_DC1 (the SID prefix) before running DBCA. After database creation, DBCA names the active instance PROD_DC1_1 (prefix plus _1). Step 1 in the Post-Creation section updates ORACLE_SID to match the running instance.

Verify the environment:

echo "ORACLE_BASE=$ORACLE_BASE"
echo "ORACLE_HOME=$ORACLE_HOME"
echo "ORACLE_SID=$ORACLE_SID"
which dbca

Expected output:

ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/26/db_1
ORACLE_SID=PROD_DC1
/u01/app/oracle/product/26/db_1/bin/dbca

Confirm that which dbca returns the path under the database home, not the Grid home. If it returns a Grid home path, adjust PATH to place $ORACLE_HOME/bin first.

Response File Preparation

Step 1: Copy the response file template

DBCA ships a response file template with every parameter documented. Copy it to a working directory:

cp $ORACLE_HOME/assistants/dbca/dbca.rsp /home/oracle/dbca_raconenode.rsp

Step 2: Edit the response file

Replace the entire contents of /home/oracle/dbca_raconenode.rsp with the following. This response file contains only the parameters required for RAC One Node database creation. All other parameters use DBCA defaults.

Warning: This response file contains database passwords in plain text. Step 3 restricts file permissions. Delete or secure this file after database creation.

{SYS_PASSWORD} -- password for the SYS account (minimum 8 characters, must include uppercase, lowercase, and digit).

{SYSTEM_PASSWORD} -- password for the SYSTEM account (same requirements).

{PDB_ADMIN_PASSWORD} -- password for the PDB admin account (same requirements).

node1,node2 -- replace with the actual hostnames of all candidate nodes.

##############################################################################
## DBCA response file for Oracle AI Database 26ai RAC One Node             ##
## Database: PROD (DB_NAME), PROD_DC1 (DB_UNIQUE_NAME)                     ##
## Storage: ASM (+DATA, +RECO)                                             ##
## Memory: ASMM (SGA 16G, PGA 4G)                                         ##
##############################################################################

#-----------------------------------------------------------------------------
# GENERAL section
#-----------------------------------------------------------------------------
[GENERAL]

RESPONSEFILE_VERSION = "12.1.0"
OPERATION_TYPE = "createDatabase"

#-----------------------------------------------------------------------------
# CREATEDATABASE section
#-----------------------------------------------------------------------------
[CREATEDATABASE]

# Global database name. Sets DB_NAME.
GDBNAME = "PROD"

# SID prefix. For RAC One Node, DBCA appends _1 to create the active
# instance name (PROD_DC1_1). This value also sets DB_UNIQUE_NAME.
SID = "PROD_DC1"

# Database configuration type: SI, RAC, or RACONENODE.
DATABASECONFTYPE = "RACONENODE"

# Failover service name for RAC One Node. Applications connect through
# this service for transparent online relocation between candidate nodes.
RACONENODESERVICENAME = "PROD_DC1_SVC"

# Comma-separated list of candidate nodes. Every node listed becomes a
# failover target. The first node is where DBCA starts the initial instance.
# Omitting this parameter silently creates a single-instance database.
NODELIST = node1,node2

# Database creation template. General_Purpose.dbc ships with every
# Oracle Database installation.
TEMPLATENAME = "General_Purpose.dbc"

# SYS user password.
SYSPASSWORD = "{SYS_PASSWORD}"

# SYSTEM user password.
SYSTEMPASSWORD = "{SYSTEM_PASSWORD}"

# Create as a Container Database. Mandatory in 26ai -- non-CDB
# architecture is desupported.
CREATEASCONTAINERDATABASE = true

# Number of PDBs to create inside the CDB.
NUMBEROFPDBS = 1

# PDB name.
PDBNAME = "PROD_PDB1"

# PDB administrator password.
PDBADMINPASSWORD = "{PDB_ADMIN_PASSWORD}"

# Storage type: FS, ASM, or EXASCALE.
STORAGETYPE = ASM

# ASM diskgroup for database files (datafiles, control files, redo logs).
DATAFILEDESTINATION = "+DATA"

# ASM diskgroup for the Fast Recovery Area.
RECOVERYAREADESTINATION = "+RECO"

# Database character set.
CHARACTERSET = "AL32UTF8"

# National character set.
NATIONALCHARACTERSET = "AL16UTF16"

# Disable Automatic Memory Management (AMM). Set to FALSE to use ASMM
# (Automatic Shared Memory Management) instead. AMM is not supported in
# RAC environments when HugePages are configured.
AUTOMATICMEMORYMANAGEMENT = "FALSE"

# Database workload type: MULTIPURPOSE, DATA_WAREHOUSING, or OLTP.
DATABASETYPE = "MULTIPURPOSE"

# Enterprise Manager configuration. NONE disables EM Express and
# Cloud Control registration.
EMCONFIGURATION = "NONE"

# Initialization parameters. Comma-separated name=value pairs that
# override template defaults.
#
# - db_name=PROD             : database name
# - db_unique_name=PROD_DC1  : unique name (distinguishes from other
#                               databases with the same DB_NAME, e.g.,
#                               Data Guard standby)
# - sga_target=16G           : SGA size under ASMM
# - sga_max_size=16G         : maximum SGA (matches sga_target; prevents
#                               dynamic resizing beyond available memory)
# - pga_aggregate_target=4G  : PGA target per instance
# - memory_target=0          : explicitly disables AMM
# - db_recovery_file_dest_size=50G : Fast Recovery Area size (50 GB)
INITPARAMS = "db_name=PROD,db_unique_name=PROD_DC1,sga_target=16G,sga_max_size=16G,pga_aggregate_target=4G,memory_target=0,db_recovery_file_dest_size=50G"

Parameter notes:

  • RESPONSEFILE_VERSION: Always "12.1.0" regardless of the actual database version. DBCA uses this version identifier for response file format compatibility across all versions from 12.1 onward.
  • OPERATION_TYPE: Set to "createDatabase". From Oracle 19c onward, the operation type (-createDatabase) must also be specified on the DBCA command line even when using a response file. The response file OPERATION_TYPE alone does not determine the operation.
  • SID vs. GDBNAME: In RAC One Node mode, SID becomes the instance name prefix and DB_UNIQUE_NAME. The GDBNAME value sets DB_NAME. These differ intentionally (e.g., DB_NAME=PROD, DB_UNIQUE_NAME=PROD_DC1) to support Data Guard configurations where primary and standby share the same DB_NAME but have different DB_UNIQUE_NAME values.
  • NODELIST: Not quoted. Comma-separated without spaces between node names.
  • AUTOMATICMEMORYMANAGEMENT: Set to "FALSE" to use ASMM mode. When this is FALSE, memory sizing is controlled through INITPARAMS (specifically sga_target and pga_aggregate_target). Do not set TOTALMEMORY when using INITPARAMS for explicit memory control -- these parameters conflict.
  • INITPARAMS: A quoted, comma-separated string of name=value pairs. No inner quoting is needed for individual values. These values override any defaults set by the template. The db_recovery_file_dest_size parameter controls the Fast Recovery Area size because RECOVERYAREASIZE is a command-line-only parameter with no response file equivalent.
  • Parameters not in the response file: RECOVERYAREASIZE, USEOMF, and REDOLOGFILESIZE are command-line-only DBCA parameters. They do not exist as response file parameters. Recovery area size is set via db_recovery_file_dest_size in INITPARAMS. Oracle Managed Files (OMF) is enabled by default when DATAFILEDESTINATION points to an ASM diskgroup. Redo log file size uses the template default (typically 200 MB) unless overridden on the command line with -redoLogFileSize.

Step 3: Set file permissions

The response file contains passwords in plain text. Restrict access immediately:

chmod 600 /home/oracle/dbca_raconenode.rsp

Verify:

ls -l /home/oracle/dbca_raconenode.rsp

Expected output:

-rw------- 1 oracle oinstall ... /home/oracle/dbca_raconenode.rsp

Database Creation

Step 1: Run DBCA in silent mode with the response file

From Oracle 19c onward, -createDatabase must be specified on the command line even when using a response file. The response file OPERATION_TYPE value alone does not control the operation.

dbca -silent -createDatabase -responseFile /home/oracle/dbca_raconenode.rsp

To override the template redo log file size (default ~200 MB), add command-line parameters. Command-line parameters take precedence over response file values:

dbca -silent -createDatabase -responseFile /home/oracle/dbca_raconenode.rsp \
  -redoLogFileSize 1024 \
  -useOMF true

This sets each online redo log file to 1024 MB (1 GB) and explicitly enables Oracle Managed Files.

Database creation takes 15-45 minutes depending on hardware and storage performance.

Expected output:

Prepare for db operation
10% complete
Registering database with Oracle Clusterware
20% complete
Copying database files
40% complete
Creating and starting Oracle instance
50% complete
60% complete
70% complete
Completing Database Creation
80% complete
90% complete
100% complete

Look at the log file "$ORACLE_BASE/cfgtoollogs/dbca/PROD_DC1/PROD_DC1.log" for further details.

Step 2: Check the DBCA log for errors

tail -30 $ORACLE_BASE/cfgtoollogs/dbca/PROD_DC1/PROD_DC1.log

Expected output:

The final lines should show successful completion with no ORA- or PRCR- errors. Look for a line similar to:

Database creation complete. For details check the logfiles at:
 /u01/app/oracle/cfgtoollogs/dbca/PROD_DC1

If the log contains errors, consult the Troubleshooting section before proceeding.

Post-Creation

Step 1: Update ORACLE_SID to the active instance name

After DBCA completes, the active instance is named using the prefix plus _1. Update the environment to reflect the running instance name:

export ORACLE_SID=PROD_DC1_1

Verify the instance is accessible:

sqlplus / as sysdba <<'EOF'
SELECT instance_name, status FROM v$instance;
EXIT;
EOF

Expected output:

INSTANCE_NAME    STATUS
---------------- ------
PROD_DC1_1       OPEN

Step 2: Save PDB state

By default, PDBs remain in MOUNTED state after a CDB restart. Before saving the PDB state, verify that the PDB is open:

sqlplus / as sysdba <<'EOF'
SHOW PDBS;
EXIT;
EOF

If PROD_PDB1 shows MOUNTED instead of READ WRITE, open it first:

sqlplus / as sysdba <<'EOF'
ALTER PLUGGABLE DATABASE PROD_PDB1 OPEN;
EXIT;
EOF

Once PROD_PDB1 is in READ WRITE mode, save the state so it opens automatically after every CDB restart:

sqlplus / as sysdba <<'EOF'
ALTER PLUGGABLE DATABASE PROD_PDB1 SAVE STATE;
EXIT;
EOF

Expected output:

Pluggable database altered.

Verify the state was saved:

sqlplus / as sysdba <<'EOF'
SELECT con_name, instance_name, state FROM dba_pdb_saved_states;
EXIT;
EOF

Expected output:

CON_NAME       INSTANCE_NAME  STATE
-------------- -------------- -----
PROD_PDB1      PROD_DC1_1     OPEN

Step 3: Secure or delete the response file

The response file contains passwords in plain text. Either delete it or move it to a secure location:

rm /home/oracle/dbca_raconenode.rsp

If the response file is needed for future database creations, move it to a restricted directory and keep permissions at 600:

mkdir -p /u01/app/oracle/admin/response_files/
mv /home/oracle/dbca_raconenode.rsp /u01/app/oracle/admin/response_files/
chmod 600 /u01/app/oracle/admin/response_files/dbca_raconenode.rsp

Validation

Quick check

The -d flag takes DB_UNIQUE_NAME (PROD_DC1), not DB_NAME (PROD). All srvctl commands that reference a database use DB_UNIQUE_NAME.

srvctl status database -d PROD_DC1

Expected output:

Instance PROD_DC1_1 is running on node node1

Full validation

  1. Verify Clusterware registration and RAC One Node configuration
srvctl config database -d PROD_DC1

Expected output (key fields):

Database unique name: PROD_DC1
Database name: PROD
Oracle home: /u01/app/oracle/product/26/db_1
Oracle user: oracle
Spfile: +DATA/PROD_DC1/PARAMETERFILE/spfilePROD_DC1.ora
...
Type: RACOneNode
Online relocation timeout: 30
Instance name prefix: PROD_DC1
Candidate servers: node1,node2
...

Verify that Type is RACOneNode, Database name is PROD, Database unique name is PROD_DC1, and Candidate servers lists all expected nodes.

  1. Verify database version and CDB status
sqlplus / as sysdba <<'EOF'
SELECT banner_full FROM v$version;
SELECT name, db_unique_name, open_mode, cdb FROM v$database;
EXIT;
EOF

Expected output:

BANNER_FULL
--------------------------------------------------------------------------------
Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 - Production
Version 23.26.1.0.0

NAME   DB_UNIQUE_NAME  OPEN_MODE   CDB
------ --------------- ----------  ---
PROD   PROD_DC1        READ WRITE  YES

Confirm NAME is PROD, DB_UNIQUE_NAME is PROD_DC1, and CDB is YES.

  1. Verify PDB status
sqlplus / as sysdba <<'EOF'
SHOW PDBS;
EXIT;
EOF

Expected output:

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PROD_PDB1                      READ WRITE NO

PROD_PDB1 must be in READ WRITE mode. If it shows MOUNTED, open it manually with ALTER PLUGGABLE DATABASE PROD_PDB1 OPEN; and then run ALTER PLUGGABLE DATABASE PROD_PDB1 SAVE STATE;.

  1. Verify memory parameters
sqlplus / as sysdba <<'EOF'
SHOW PARAMETER sga_target;
SHOW PARAMETER sga_max_size;
SHOW PARAMETER pga_aggregate_target;
SHOW PARAMETER memory_target;
EXIT;
EOF

Expected output:

NAME            TYPE        VALUE
--------------- ----------- -----
sga_target      big integer 16G

NAME            TYPE        VALUE
--------------- ----------- -----
sga_max_size    big integer 16G

NAME                    TYPE        VALUE
----------------------- ----------- -----
pga_aggregate_target    big integer 4G

NAME            TYPE        VALUE
--------------- ----------- -----
memory_target   big integer 0
  1. Verify datafile locations and recovery area
sqlplus / as sysdba <<'EOF'
SELECT name FROM v$datafile;
SELECT name, space_limit/1024/1024 AS limit_mb FROM v$recovery_file_dest;
EXIT;
EOF

Expected output:

NAME
----------------------------------------------------------------------
+DATA/PROD_DC1/DATAFILE/system.xxx.xxxxxxxxx
+DATA/PROD_DC1/DATAFILE/sysaux.xxx.xxxxxxxxx
+DATA/PROD_DC1/DATAFILE/undotbs1.xxx.xxxxxxxxx
+DATA/PROD_DC1/DATAFILE/users.xxx.xxxxxxxxx
+DATA/PROD_DC1/xxxxxxxx/DATAFILE/system.xxx.xxxxxxxxx
+DATA/PROD_DC1/xxxxxxxx/DATAFILE/sysaux.xxx.xxxxxxxxx
+DATA/PROD_DC1/xxxxxxxx/DATAFILE/undotbs1.xxx.xxxxxxxxx

NAME                                       LIMIT_MB
------------------------------------------ --------
+RECO                                         51200

All datafiles must reside on +DATA. The recovery area must be +RECO. The xxxxxxxx component in the PDB datafile paths is the Oracle-assigned PDB GUID, a hexadecimal string generated at creation time.

  1. Verify the RAC One Node failover service
srvctl status service -d PROD_DC1

Expected output:

Service PROD_DC1_SVC is running on node(s): node1

The failover service PROD_DC1_SVC must be running on the active node.

  1. Verify candidate node readiness

Confirm the database resource is registered on all candidate nodes (even though only one instance runs at a time):

srvctl status database -d PROD_DC1 -verbose

Expected output:

Instance PROD_DC1_1 is running on node node1
Online relocation: INACTIVE

Also verify the remote node can see the database resource:

ssh node2 "$ORACLE_HOME/bin/srvctl status database -d PROD_DC1"

Expected output:

Instance PROD_DC1_1 is running on node node1

The remote node must report the same instance status.

Troubleshooting

Problem Cause Solution
[DBT-xxxxx] The response file is not valid or Error parsing response file Syntax error in the response file (missing quotes, bad section header, invalid parameter name) Verify the [GENERAL] and [CREATEDATABASE] section headers are present and correctly spelled. Check that string values are quoted with double quotes. Validate parameter names against the template at $ORACLE_HOME/assistants/dbca/dbca.rsp.
DBCA creates a single-instance database instead of RAC One Node DATABASECONFTYPE is missing or not set to RACONENODE, or NODELIST is missing from the response file Caution: this permanently drops the database and all datafiles. Drop the database with dbca -silent -deleteDatabase -sourceDB PROD_DC1 -sysDBAPassword {SYS_PASSWORD} and re-create using the corrected response file. Verify DATABASECONFTYPE = "RACONENODE" and NODELIST = node1,node2 are both present and uncommented.
DBCA ignores response file parameters and uses template defaults From Oracle 19c onward, -createDatabase must be on the command line. Without it, DBCA may not process the [CREATEDATABASE] section correctly. Run DBCA as: dbca -silent -createDatabase -responseFile /path/to/file.rsp. The -createDatabase flag is mandatory on the command line.
ORA-27102: out of memory /dev/shm is smaller than sga_max_size or insufficient physical memory Resize /dev/shm as root: mount -o remount,size=17G /dev/shm. Verify with df -h /dev/shm on all candidate nodes.
DIM-00019: create service error SCAN listener is not running Start the SCAN listener: srvctl start scan_listener. Verify with srvctl status scan_listener.
ORA-15001: diskgroup "DATA" does not exist Wrong diskgroup name or ASM is not running on the local node Verify ASM is running: srvctl status asm. Verify diskgroup names: asmcmd lsdg. Use the + prefix in the response file (e.g., +DATA not DATA).
ORA-15025: could not open disk ASM disk permissions do not allow the oracle user (or grid user) to access the raw devices Verify disk ownership and permissions. For AFD: asmcmd afd_lsdsk. For standard ASM: check /dev/oracleasm/disks/ or raw device permissions.
PRCR-1079: Failed to start resource Clusterware registration failure, often due to incorrect Oracle home permissions or missing binaries on a candidate node Verify the database home exists on all candidate nodes: ssh node2 ls $ORACLE_HOME/bin/oracle. Check CRS log: /u01/app/26.0.0/grid/log/{hostname}/crsd/crsd.log.
[DBT-50000] Unable to check mount point or DBCA hangs during creation Candidate node is unreachable via SSH Verify SSH equivalence: ssh node2 hostname. Reconfigure SSH keys if needed.
sga_target or pga_aggregate_target shows unexpected values after creation DBCA template overrode the INITPARAMS values, or TOTALMEMORY was set in the response file alongside INITPARAMS Connect as SYSDBA and set manually: ALTER SYSTEM SET sga_target=16G SCOPE=SPFILE; and ALTER SYSTEM SET pga_aggregate_target=4G SCOPE=SPFILE;. Restart the database with srvctl stop database -d PROD_DC1 and srvctl start database -d PROD_DC1. Ensure TOTALMEMORY is commented out or removed from the response file.
PDB is in MOUNTED state after CDB restart PDB state was not saved Run ALTER PLUGGABLE DATABASE PROD_PDB1 OPEN; then ALTER PLUGGABLE DATABASE PROD_PDB1 SAVE STATE; to persist across restarts.
Instance not starting on the expected node Clusterware selected a different candidate node Check candidate servers: srvctl config database -d PROD_DC1. Relocate if needed: srvctl relocate database -d PROD_DC1 -n node1.

References