ORA-01078 ORA-29701 GRID Home Cloning

This blog explains cloning steps of Grid Home/ASM Home applicable for 10g & 11g (on ASM) particularly , applicable for scenarios like..

  •            Host Name Changes
  •         Binary Corruption without any valid backup to restore
  •         Cloning of DB across the servers
  •         Attaching new GRID Home to existing DB Home

It has been observed that non-ASM DB cloning is simpler task without much activity related to DB Home post cloning.
Just need to keep same uid/gid of os osuser as source db software, copy as it is, relink it on destination & few changes in listener.ora, password file, tnsnames.ora and new ORACLE_HOME is ready for use
Considering Single instance approach here as RAC to Non RAC copy has different approach & need to play with few lib files

If you try to copy GRID Home of some other server & try to bring up the ASM instance you will come across below errors for sure although you set proper profile or being up the LISTENER etc.

ORA-01078: failure in processing system parameters
ORA-29701: unable to connect to Cluster Synchronization Service

ASM needs oracle cluster synchronization service domain to be running along with agent to avoid above error. 

To configure the same you can perform the below steps which will enable you to start the ASM instance & then later you can set asm_diskstring to detect your ASM raw disks, mount the DISK Groups and start the RDBMS instance

Trying to replicate the steps which I have followed after the loss of grid & oracle home due to file system corruption and with no valid backup to restore those binaries.  ASM disks were not impacted

Step 1: As a grid osuser run below to detach the grid home, ORACLE_HOME mentioned is the path of grid home itself.
ORACLE_HOME_NAME can be obtained from oracle inventory <$PATH>/oraInventory/ContentsXML/inventory.xml

cd  $GRID_HOME/oui/bin
./runInstaller -silent -detachHome ORACLE_HOME=/u01/app/grid/product/11.2.0/grid ORACLE_HOME_NAME="Ora11g_gridinfrahome1"

Step 2: As a grid osuser run below Perl clone

cd $GRID_HOME/clone/bin
perl clone.pl -silent ORACLE_BASE=/u01/app/grid ORACLE_HOME=/u01/app/grid/product/11.2.0/grid ORACLE_HOME_NAME="Ora11g_gridinfrahome1" INVENTORY_LOCATION=/u01/app/oraInventory

Step 3: Execute root.sh as a root or SUDO pass enter & y wherever asked y/n

Sudo $GRID_HOME/root.sh

Step 4: De-configure HA by force as below from root or sudo

cd $GRID_HOME/crs/install
./roothas.pl -deconfig -force

Step 5:  Execute below as root/sudo, please note its single line command

/u01/app/grid/product/11.2.0/grid/perl/bin/perl -I /u01/app/grid/product/11.2.0/grid/perl/lib -I /u01/app/grid/product/11.2.0/grid/crs/install  /u01/app/grid/product/11.2.0/grid/crs/install/roothas.pl

Step6:  Update the inventory, run it from grid

 ./runInstaller -updateNodelist ORACLE_HOME=/u01/app/grid/product/11.2.0/grid defaultHomeName CLUSTER_NODES= CRS=TRUE

Step7: Modify host names in listener.ora of GRID & ORACLE_HOME

Step8:  Add asm as a grid

srvctl add asm 

Step9: Start listener , asm services

srvctl add listener
srvctl start listener
srvctl start asm
srvctl add database -d REMTST -o /u01/app/ora11g/product/11.2.0/dbhome_1
ps -ef| grep -i css

Step10: You will find ASM instance already up without any disk groups mounted, refer below
Connect as sysasm from grid osuser

alter system set asm_diskstring='/dev/mapper';
alter diskgroup DG01 mount;
show parameter disk
select * from v$asm_disk;

Step11: Modify pfile as per setup to reflect correct control file, db name, dump locations & start DB

No comments:

Post a Comment