Scenario: Control Files and SPFILE Lost in Oracle RAC
This blog explains how to recover an Oracle 19c RAC database when:
- โ All Control Files are lost
- โ SPFILE is lost
- โ Datafiles are safe
- โ RMAN autobackup is available
๐ Storage type: File System (NOT ASM)
Environment (Example)
| Item | Value |
| Database Name | mydb |
| RAC Instances | mydb1, mydb2 |
| Oracle Version | 19c |
| Backup Type | RMAN Autobackup |
| Temporary Path | /tmp |
| DB Files Path | /oradata/mydb/ |
Recovery Objective
โ Restore SPFILE
โ Restore Control Files
โ Recover database
โ Start all RAC instances
STEP-BY-STEP EASY RECOVERY
STEP 1: Stop All RAC Instances
srvctl stop database -d mydb -o abortCheck status:
srvctl status database -d mydb๐ Database should show STOPPED on all nodes.
STEP 2: Create a Temporary PFILE
Create a simple PFILE:
vi /tmp/initmydb.oraAdd minimum required parameters:
db_name=mydbmemory_target=2GSave and exit.
STEP 3: Start One Instance in NOMOUNT
Login to SQL*Plus on any one node:
startup nomount pfile='/tmp/initmydb.ora';๐ Only one instance should be started.
STEP 4: Restore SPFILE from RMAN Autobackup
Connect RMAN:
rman target /set dbid=3132869757;restore spfile to '/tmp/spfile_mydb.ora' from autobackup;STEP 5: Restart Database Using SPFILE
Shutdown database after that startup at nomount state
shutdown immediate;Startup nomount;STEP 6: Restore Control Files and Recover Database
-- Restore control files:restore controlfile from autobackup;-- Mount database:alter database mount;-- Recover database:recover database;-- Open database:alter database open resetlogs;STEP 7: Copy SPFILE to Shared Location
-- Copy SPFILE to shared directory (used by RAC):cp /tmp/spfile_mydb.ora /oradata/mydb/-- Update RAC configuration:srvctl modify database -d mydb -spfile /oradata/mydb/spfile_mydb.ora-- Verify:srvctl config database -d mydbSTEP 8: Start Remaining RAC Instance
-- Check current statussrvctl status database -d mydb-- Start second instance:srvctl start instance -d mydb -i mydb2--Final check:srvctl status database -d mydb
โ
Both RAC instances are RUNNING.
Key Notes (Very Important)
- โ Restore SPFILE first, then control files
- โ Use only one instance during recovery
- โ
RESETLOGSis mandatory - โ SPFILE must be on shared storage
- โ Datafiles were not restored (already intact)
Conclusion
This is a real-time Oracle RAC recovery scenario used in production.
With RMAN autobackup, even complete loss of control files and SPFILE can be recovered safely.