restore 11g homes

8

Click here to load reader

Upload: saeed-meethal

Post on 22-Oct-2015

9 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Restore 11g Homes

Below is a script to restore Oracle RDBMS Home , Oracle grid home and other /etc config files on a host from a previous backup.

When do we need to use the script?

After the HDD of a database host (part of RAC) goes bad and if it had to be replaced and reimaged with new OS, once the OS is installed and eth is set by the SA team,

following script can be used to restore the oracle software from a previous backup.

How to run the 11g binary restore script:

1) Make sure a previous good and clean backup of the same host exists already under /net/dba/backup/<HOST_NAME>

2) SA to complete the reimage and set up eth interconnect and hand over to the DBA’s.

3) Login as root to the newly reimaged host and copy /etc/fstab from other host of the RAC and mount /net/dba

4) Run /net/dba/panama/scripts/backup/restore_11g_homes.sh as root

5) Run /home/oragrid/product/11.2/root.sh as root

6) Startup the instance and relocate services.

Script: (/net/dba/panama/scripts/backup/restore_11g_homes.sh)

#!/bin/sh

#Script to Restore Oracle Software and related files

if [ `whoami` != 'root' ] ; then

echo "You must run this program as root. "

exit 1

fi

THIS_SCRIPT=`basename $0`

export ECHO=echo

export DEBUG=

Page 2: Restore 11g Homes

export ORACLE_BASE=/home/oracle

export GRID_BASE=/home/oragrid

export ORACLE_ADMIN=$ORACLE_BASE/admin

export HOSTNAME_NEW=`hostname -s`

export COLO=`echo $HOSTNAME_NEW |cut -d - -f1 -s`

export NODE_TYPE=`echo $HOSTNAME_NEW |cut -d - -f2 -s`

export NODE_NUMBER=`echo $HOSTNAME_NEW |cut -d - -f3 -s`

export HOSTNAME=$COLO-$NODE_TYPE-$NODE_NUMBER

export BACKUP_DIR=/net/dba/backup/$HOSTNAME

echo "Backup directory should be $BACKUP_DIR"

export ORACLE_HOME=/home/oracle/product/11.2

export ORACLE_GRID=/home/oragrid/product/11.2

export AGENT_HOME=/oracle/product/agent10g

if [ -d $BACKUP_DIR ]

then

echo "Successful $BACKUPDIR exists.."

else

echo " Error: Backup directory $BACKUPDIR does not exist"

Page 3: Restore 11g Homes

exit 1

fi

# check if /oracle is a link to /home/oracle

#if [ -L /oracle ]

#then

# echo "/oracle link is already present"

#else

# echo " create the link /oracle to /home/oracle"

# ln -s /home/oracle /oracle

#fi

if [ -d /home/oracle/product ]

then

echo "Successful /home/oracle/product exists.."

else

echo "Creating directory /home/oracle/product"

${DEBUG} mkdir /home/oracle/product

${DEBUG} chown root:root /home/oracle/product

fi

if [ -d /home/oragrid/product ]

then

Page 4: Restore 11g Homes

echo "Successful /home/oragrid/product exists.."

else

echo "Creating directory /home/oragrid/product"

${DEBUG} mkdir /home/oragrid/product

${DEBUG} chown root:dba /home/oragrid/product

fi

#${ECHO} "Create the diag directories"

#${ECHO} "--------------------------------------"

#if [ -d /home/oracle/diag ]

#then

# echo "Successful /home/oracle/diag exists.."

#else

# mkdir /home/oracle/diag ; chown oracle:dba /home/oracle/diag

#fi

${ECHO} "Create the monitor directories"

${ECHO} "--------------------------------------"

if [ -d /oracle/monitor ]

then

echo "Successful /oracle/monitor exists.."

else

mkdir /oracle/monitor ; chown oracle:dba /oracle/monitor ;chmod 777 /oracle/monitor

Page 5: Restore 11g Homes

fi

# Create the mount /u01 /u02 etc and mount volumes

${ECHO} "Create the mount /u01 /u02 etc"

for MOUNTS in `cat $BACKUP_DIR/etc/fstab |grep u0 |awk '{print $2}'`

do

mkdir -p $MOUNTS

chown oracle:dba $MOUNTS

done

mount -a

${ECHO} "### Restore (etc/oracle) and (oracle rdbms, oragrid)"

${ECHO} "-----------------------------------------------------"

${DEBUG} rsync -rpogtl $BACKUP_DIR/rdbms/11.2 $ORACLE_BASE/product

${DEBUG} rsync -rpogtl $BACKUP_DIR/oragrid/11.2 $GRID_BASE/product

${ECHO} "### Restore diag dir's"

${ECHO} "-----------------------------------------------------"

${DEBUG} rsync -rpogtl $BACKUP_DIR/diag $ORACLE_BASE

${ECHO} "copy the below etc files & Dir"

${ECHO} "-------------------------------"

${DEBUG} rsync -rpogtl $BACKUP_DIR/etc/oraInst.loc /etc

${DEBUG} rsync -rpogtl $BACKUP_DIR/etc/fstab /etc

${DEBUG} rsync -rpogtl $BACKUP_DIR/etc/oracle /etc/

Page 6: Restore 11g Homes

${DEBUG} rsync -rpogtl $BACKUP_DIR/etc/inittab.crs /etc/

${DEBUG} rsync -rpogtl $BACKUP_DIR/etc/inittab /etc/

${DEBUG} rsync -rpogtl $BACKUP_DIR/etc/oratab /etc/

${DEBUG} rsync -rpogtl $BACKUP_DIR/etc/init.d /etc/

${DEBUG} rsync -rpogtl $BACKUP_DIR/etc/rc2.d /etc/

${DEBUG} rsync -rpogtl $BACKUP_DIR/etc/rc3.d /etc/

${DEBUG} rsync -rpogtl $BACKUP_DIR/etc/rc5.d /etc/

#${DEBUG} rsync -rpogtl $BACKUP_DIR/etc/init.d/init.cssd /etc/init.d/

#${DEBUG} rsync -rpogtl $BACKUP_DIR/etc/init.d/init.crs /etc/init.d/

#${DEBUG} rsync -rpogtl $BACKUP_DIR/etc/init.d/init.crsd /etc/init.d/

#${DEBUG} rsync -rpogtl $BACKUP_DIR/etc/init.d/init.evmd /etc/init.d/

#${DEBUG} rsync -rpogtl $BACKUP_DIR/etc/rc2.d/K96init.crs /etc/rc2.d/

#${DEBUG} rsync -rpogtl $BACKUP_DIR/etc/rc3.d/S96init.crs /etc/rc3.d/

#${DEBUG} rsync -rpogtl $BACKUP_DIR/etc/rc5.d/S96init.crs /etc/rc5.d/

${DEBUG} rsync -rpogtl $BACKUP_DIR/var/tmp/.oracle /var/tmp/

${ECHO} "### Restore (/oracle/product/agent10g, oraInventory)"

${ECHO} "-----------------------------------------------------------"

${DEBUG} rsync -rpogtl $BACKUP_DIR/agent10g $ORACLE_BASE/product

${DEBUG} rsync -rpogtl $BACKUP_DIR/oraInventory $ORACLE_BASE

Page 7: Restore 11g Homes

${ECHO} "copy the below Oracle Dir & files"

${ECHO} "----------------------------------"

${DEBUG} rsync -rpogtl $BACKUP_DIR/.ssh $ORACLE_BASE

${DEBUG} rsync -rpogtl $BACKUP_DIR/.zshrc $ORACLE_BASE

${DEBUG} rsync -rpogtl $BACKUP_DIR/.zshrc /home/gcuser

${DEBUG} chown gcuser:dba /home/gcuser/.zshrc

${DEBUG} rsync -rpogtl $BACKUP_DIR/ORCLfmap /opt

#restore cronfile

${DEBUG} rsync -rpogtl $BACKUP_DIR/oraclecron /var/spool/cron/oracle

#restore osw

if [ -d $BACKUP_DIR/osw ]

then

${DEBUG} rsync -rpogtl $BACKUP_DIR/osw /home/oracle

fi

#restore stunnel

if [ -d $BACKUP_DIR/etc/stunnel ]

Page 8: Restore 11g Homes

then

${DEBUG} rsync -rpogtl $BACKUP_DIR/etc/stunnel /etc/

fi

## check for any files...any customized init.d scripts, stunnel configs