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
+DATAand+RECOdiskgroups 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
oracleuser 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
+DATAdiskgroup has at least 20 GB of free space - The
+RECOdiskgroup has at least 50 GB of free space for the Fast Recovery Area /dev/shmis sized to at least 16 GB on all candidate nodes- SSH user equivalence is configured between all candidate nodes for the
oracleuser - No X11 display is needed or available
- The reader is logged in as the
oracleuser 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.
- 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.
- Verify ASM instance status
srvctl status asm
Expected output:
ASM is running on node1,node2
ASM must be running on all candidate nodes.
- 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.
- 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.
- 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.
- 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"
- 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
- Verify
/dev/shmsize 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
- 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 fileOPERATION_TYPEalone does not determine the operation. - SID vs. GDBNAME: In RAC One Node mode,
SIDbecomes the instance name prefix andDB_UNIQUE_NAME. TheGDBNAMEvalue setsDB_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 sameDB_NAMEbut have differentDB_UNIQUE_NAMEvalues. - NODELIST: Not quoted. Comma-separated without spaces between node names.
- AUTOMATICMEMORYMANAGEMENT: Set to
"FALSE"to use ASMM mode. When this isFALSE, memory sizing is controlled throughINITPARAMS(specificallysga_targetandpga_aggregate_target). Do not setTOTALMEMORYwhen usingINITPARAMSfor explicit memory control -- these parameters conflict. - INITPARAMS: A quoted, comma-separated string of
name=valuepairs. No inner quoting is needed for individual values. These values override any defaults set by the template. Thedb_recovery_file_dest_sizeparameter controls the Fast Recovery Area size becauseRECOVERYAREASIZEis a command-line-only parameter with no response file equivalent. - Parameters not in the response file:
RECOVERYAREASIZE,USEOMF, andREDOLOGFILESIZEare command-line-only DBCA parameters. They do not exist as response file parameters. Recovery area size is set viadb_recovery_file_dest_sizeinINITPARAMS. Oracle Managed Files (OMF) is enabled by default whenDATAFILEDESTINATIONpoints 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
- 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.
- 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.
- 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;.
- 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
- 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.
- 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.
- 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. |