Skip to main content

RAC root.sh fix +ASM instance number order

While I was installing RAC, the last step is to run root.sh, I did not wait for it to complete on the first node and then started to run on the second node, and messed up. I need to clean it up.

use this oracle document as reference:
https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=411427040358360&id=942166.1&_afrWindowMode=0&_adf.ctrl-state=c8ddpyf94_4

Step 1: As root, run "$GRID_HOME/crs/install/rootcrs.pl -verbose -deconfig -force" on all nodes, except the last one.

Step 2: As root, run "$GRID_HOME/crs/install/rootcrs.pl -verbose -deconfig -force -lastnode" on last node. This command will zero out OCR, Voting Disk and the ASM diskgroup for OCR and Voting Disk


Step 2 may not run sucessfully, but I can zero the OCR voting disk using dd command.
 
# dd if=/dev/zero of=/dev/sdb1 bs=1024 count=100

Step 3: As root, run $GRID_HOME/root.sh on first node

Step 4: As root, run $GRID_HOME/root.sh on all other node(s), except last one.

Step 5: As root, run $GRID_HOME/root.sh on last node.



the root.sh will use the $GRID_HOME/crs/install/crsconfig_params configuration file to configure cluster.

below is a section of crsconfig_params file
##################################
SILENT=false
ORACLE_OWNER=grid
ORA_DBA_GROUP=oinstall
ORA_ASM_GROUP=asmadmin
LANGUAGE_ID=AMERICAN_AMERICA.AL32UTF8
TZ=America/Vancouver
ISROLLING=true
REUSEDG=false
ASM_AU_SIZE=4
USER_IGNORED_PREREQ=true


ORACLE_HOME=/u01/11.2.0/grid
ORACLE_BASE=/u01/app/oracle
OLD_CRS_HOME=

JREDIR=/u01/11.2.0/grid/jdk/jre/
JLIBDIR=/u01/11.2.0/grid/jlib

VNDR_CLUSTER=false
OCR_LOCATIONS=NO_VAL
CLUSTER_NAME=xxxxracstg01
HOST_NAME_LIST=xxxxracstg01,xxxxracstg02,xxxxracstg03
NODE_NAME_LIST=xxxxracstg01,xxxxracstg02,xxxxracstg03
PRIVATE_NAME_LIST=
VOTING_DISKS=NO_VAL
#VF_DISCOVERY_STRING=%s_vfdiscoverystring%
ASM_UPGRADE=false
ASM_SPFILE=
ASM_DISK_GROUP=ocr_vote
ASM_DISCOVERY_STRING=/dev/emcpower*
ASM_DISKS=/dev/emcpowerd1,/dev/emcpowere1,/dev/emcpowerf1
ASM_REDUNDANCY=NORMAL
CRS_STORAGE_OPTION=1
CSS_LEASEDURATION=400
CRS_NODEVIPS='xxxxracstg01-vip/255.255.254.0/bond0.401,xxxxracstg02-vip/255.255.254.0/bond0.401,xxxxracstg03-vip/255.255.254.0/bond0.401'
NODELIST=xxxxracstg01,xxxxracstg02,xxxxracstg03
NETWORKS="bond0.401"/xx.250.4.0:public,"bond1.34"/xx.10.18.0:cluster_interconnect
SCAN_NAME=xxxxracstg00-scan.company.corp
SCAN_PORT=1521
GPNP_PA=
OCFS_CONFIG=

# GNS consts
GNS_CONF=false
GNS_ADDR_LIST=
GNS_DOMAIN_LIST=
GNS_ALLOW_NET_LIST=
GNS_DENY_NET_LIST=
GNS_DENY_ITF_LIST=

#### Required by OUI add node
NEW_HOST_NAME_LIST=
NEW_NODE_NAME_LIST=
NEW_PRIVATE_NAME_LIST=
NEW_NODEVIPS='xxxxracstg01-vip/255.255.254.0/bond0.401,xxxxracstg02-vip/255.255.254.0/bond0.401,xxxxracstg03-vip/255.255.254.0/bond0.401'

############### OCR constants
# GPNPCONFIGDIR is handled differently in dev (T_HAS_WORK for all)
# GPNPGCONFIGDIR in dev expands to T_HAS_WORK_GLOBAL
GPNPCONFIGDIR=$ORACLE_HOME
GPNPGCONFIGDIR=$ORACLE_HOME
OCRLOC=
OLRLOC=
OCRID=
CLUSTER_GUID=

CLSCFG_MISSCOUNT=

#### IPD/OS
CRFHOME="/u01/11.2.0/grid"
##################################

Because I ran the root.sh on node 3 before node 2, node 2 took +ASM3 instance and node 3 took +ASM2 instance, I use this above method to fix +ASM instance number problem,after I run above procedures again in the correct order, node 2 take +ASM2 now, problem fixed.

Comments

Popular posts from this blog

non-existent process lock port on windows server

I have a database link created between oracle and sqlserver using oracle tg4odbc, the product is installed on windows server and run as service "OracleOraGtw11g_home1TNSListener", but sometime the service cannot started, the root cause of this problem is that the port number 1521 is used by an non-existent process. The first step is to use netstat -bano|find "1521" to get the process id, in my case it's 5844, which shows the connection is from my oracle server 10.8.0.169 H:\>netstat -bano|find "1521"   TCP    0.0.0.0:1521           0.0.0.0:0              LISTENING       5844   TCP    10.14.45.33:1521       10.8.0.169:42987       ESTABLISHED     5844 however the process id does not show in either task manager or process explorer. The next step is to run tcpview, which shows non-existent under process column, there are three rows, two show status as "listening", the other one shows status "established", right click and k

Opatch apply/lsinventory error: oneoff is corrupted or does not exist

I am applying the quarterly patch for 19c RDBMS, I tried using napply but failed, but somehow it corrupted the inventory though nothing applied. further apply and lsinventory command ran into error like this: $ ./OPatch/opatch lsinventory Oracle Interim Patch Installer version 12.2.0.1.21 Copyright (c) 2020, Oracle Corporation.  All rights reserved. Oracle Home       : /u02/app/oracle/19.0.0 Central Inventory : /u01/app/oraInventory    from           : /u02/app/oracle/19.0.0/oraInst.loc OPatch version    : 12.2.0.1.21 OUI version       : 12.2.0.7.0 Log file location : /u02/app/oracle/19.0.0/cfgtoollogs/opatch/opatch2020-09-08_13-35-59PM_1.log Lsinventory Output file location : /u02/app/oracle/19.0.0/cfgtoollogs/opatch/lsinv/lsinventory2020-09-08_13-35-59PM.txt -------------------------------------------------------------------------------- Inventory load failed... OPatch cannot load inventory for the given Oracle Home. LsInventorySession failed: Unable to create patchObject Possible ca

shell script to clean up oracle dumpfile

https://github.com/iacosta/personal/blob/master/shells/cleanhouse.sh #!/bin/ksh # # Script used to cleanup any Oracle environment. # # Cleans:      audit_file_dest #              background_dump_dest #              core_dump_dest #              user_dump_dest #              Clusterware logs # # Rotates:     Alert Logs #              Listener Logs # # Scheduling:  00 00 * * * /networkdrive/dba/scripts/purge/cleanup.sh -d 7 > /u01/dba/bin/cleanup.log 2>&1 # # Created By:  Lei Dao # # # RM="rm -f" RMDIR="rm -rf" LS="ls -l" MV="mv" TOUCH="touch" TESTTOUCH="echo touch" TESTMV="echo mv" TESTRM=$LS TESTRMDIR=$LS SUCCESS=0 FAILURE=1 TEST=0 HOSTNAME=`hostname` ORAENV="oraenv" TODAY=`date +%Y%m%d` ORIGPATH=/usr/local/bin:$PATH ORIGLD=$LD_LIBRARY_PATH export PATH=$ORIGPATH # Usage function. f_usage(){   echo "Usage: `basename $0` -d DAYS [-a DAYS] [-b DAYS] [