Recently we faced an issue in starting our 2 Node RAC database.
We were getting the below error :
[oracle@racnode1 Desktop]$ srvctl start database -d infra
PRCR-1079 : Failed to start resource ora.infra.db
ORA-01078: failure in processing system parameters
CRS-2674: Start of ‘ora.infra.db’ on ‘racnode1’ failed
CRS-2632: There are no more servers to try to place resource ‘ora.infra.db’ on that would satisfy its placement policy
ORA-01078: failure in processing system parameters
CRS-2674: Start of ‘ora.infra.db’ on ‘racnode2’ failed
Here, I changed one of the Dynamic parameter (remote listener), but somehow one of the instances SPFILE was pointing to ASM while the other was pointing to Local file system, and the instances weren’t able to come up
There are several ways to fix this problem, this is my approach.
First let’s find out where the SPFILE is located.
You can create a PFILE from the SPFILE or you can also make a PFILE after reading the details from your alert log.
[oracle@racnode1 trace]$ srvctl config database -d infra
Database unique name: infra
Database name: infra
Oracle home: /u002/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +DATA/infra/spfile.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: infra
Database instances: infra1,infra2
Disk Groups: DATA
Services:
Database is administrator managed
Next, let’s copy that SPFILE out of ASM so that we can fix it. You can also make a pfile by taking the details from alert log
ASMCMD> pwd
+DATA/infra/spfile.ora
ASMCMD> ls
spfile.ora
ASMCMD> cp spfile.ora /tmp/sptemp.ora
copying +DATA/infra/spfile.ora -> /tmp/sptemp.ora
Create pfile from spfile
[oracle@racnode1 dbs]$ strings /tmp/sptemp.ora > initdbinfra.ora
Now we need to delete the damaged SPFILE in ASM:
ASMCMD> rm spfile.ora
Now start the instance using pfile and create a spfile
SQL> startup pfile=’/u002/oracle/product/12.2.0.1/dbhome_1/dbs/initdbinfra.ora
SQL> create spfile from pfile=’/u002/oracle/product/12.2.0.1/dbhome_1/dbs/initdbinfra.ora’;
Now Shutdown the instance and check in ASM whether the spfile has been created or not
ASMCMD> ls +DATA/infra/PARAMETERFILE
spfile.273.1060887581
Since we create a new SPFILE in ASM, we need to update the location of the SPFILE in the database repository:
[oracle@racnode1 dbs]$ srvctl modify database –d infra –p ‘+DATA/infra/PARAMETERFILE/spfile.273.1060887581’;
Make sure to delete any spfiles present in your local dbs directory, as the instance would first search for the spfile in the dbs directory
Then start the database
[oracle@racnode1 Desktop]$ srvctl start database -d infra
Now the database would start fine and you can see the spfile present in ASM for both the nodes
For more posts regarding Oracle 19c RAC, please click on the links below
Installation of ORACLE 19c RAC Servers using Virtual Box
Installation of 19c Grid and RAC database using Virtual Box
Change SCAN Name in Oracle 19c
19c Grid Patch from 19.3 to 19.5