ERROR:
On a 2 node RAC cluster,the relocation of single node RAC database fails with the following errors:
$ srvctl relocate database -d RACONDB -n racnode2
PRCD-1222 : Online relocation of database "RACONDB" failed but database was restored to its original state
PRCD-1129 : Failed to start instance RACONDB_2 for database RACONDB
PRCR-1064 : Failed to start resource ora.racondb.db on node racnode2
CRS-5017: The resource action "ora.racondb.db start" encountered the following error:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0
For details refer to "(:CLSN00107:)" in "/u01/app/oragrid/base/diag/crs/racnode1/crs/trace/crsd_oraagent_oracle.trc".
CRS-2674: Start of 'ora.racondb.db' on 'racnode2' failed
The alert_RACONDB_2.log on node racnode2 shows:
Thu Feb 20 09:30:11 2018
Starting ORACLE instance (normal) (OS id: 13044)
...
Thu Feb 20 09:30:29 2018
USER (ospid: 13044): terminating the instance due to error 304
Thu Feb 20 09:30:30 2015
Instance terminated by USER, pid = 13044
CAUSE:
Issue was caused by parameter 'instance_number"' which was set to 1 for all instances (sid='*') in the shared spfile - e.g.:
*.instance_number = 1
During the relocation of a RAC One Node database - for a short time - there will be 2 active RAC instances, due the parameter setting both instances will try to use the same instance_number which will cause the failure of the 2nd instance to start and ultimately cause the relocation to fail.
SOLUTION:
1. Unset parameter 'instance_number' for all instances:
alter system reset instance_number scope=spfile sid='*';
2. Stop & restart the database:
srvctl stop database -d RACONDB
srvctl start database -d RACONDB
3. Retry the relocation
srvctl relocate database -d RACONDB -n racnode2
4.SHOW PARAMETER INSTANCE_NAME in 2nd node(racnode2),
NAME TYPE VALUE
-------- ------- -------
instance_name string RACONDB_2
On a 2 node RAC cluster,the relocation of single node RAC database fails with the following errors:
$ srvctl relocate database -d RACONDB -n racnode2
PRCD-1222 : Online relocation of database "RACONDB" failed but database was restored to its original state
PRCD-1129 : Failed to start instance RACONDB_2 for database RACONDB
PRCR-1064 : Failed to start resource ora.racondb.db on node racnode2
CRS-5017: The resource action "ora.racondb.db start" encountered the following error:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0
For details refer to "(:CLSN00107:)" in "/u01/app/oragrid/base/diag/crs/racnode1/crs/trace/crsd_oraagent_oracle.trc".
CRS-2674: Start of 'ora.racondb.db' on 'racnode2' failed
The alert_RACONDB_2.log on node racnode2 shows:
Thu Feb 20 09:30:11 2018
Starting ORACLE instance (normal) (OS id: 13044)
...
Thu Feb 20 09:30:29 2018
USER (ospid: 13044): terminating the instance due to error 304
Thu Feb 20 09:30:30 2015
Instance terminated by USER, pid = 13044
CAUSE:
Issue was caused by parameter 'instance_number"' which was set to 1 for all instances (sid='*') in the shared spfile - e.g.:
*.instance_number = 1
During the relocation of a RAC One Node database - for a short time - there will be 2 active RAC instances, due the parameter setting both instances will try to use the same instance_number which will cause the failure of the 2nd instance to start and ultimately cause the relocation to fail.
SOLUTION:
1. Unset parameter 'instance_number' for all instances:
alter system reset instance_number scope=spfile sid='*';
2. Stop & restart the database:
srvctl stop database -d RACONDB
srvctl start database -d RACONDB
3. Retry the relocation
srvctl relocate database -d RACONDB -n racnode2
4.SHOW PARAMETER INSTANCE_NAME in 2nd node(racnode2),
NAME TYPE VALUE
-------- ------- -------
instance_name string RACONDB_2