Top
ETERNUS SF AdvancedCopy Manager 14.2 Operator's Guide

A.3.1 Pre-processing of restoration

The name of a script file for pre-processing of a restoration is as follows.

In the case of non-cluster operation
/etc/opt/FJSVswsts/sh/OpcRestore.pre
In the case of cluster operation
/etc/opt/FJSVswsts/<logic node name>/sh/OpcRestore.pre

A.3.1.1 Pre-processing script for restoration

  1: #!/bin/sh
  2: 
  3: # AdvancedCopy Manager
  4: # All Rights Reserved, Copyright FUJITSU LIMITED, 2002-2009
  5: 
  6: #
  7: #   Pre-processing of restoration processing
  8: #
  9: #          Argument: $1 Device or VG name of transaction disk
 10: #                             $2 Mount point of transaction disk
 11: #
 12: #  Error number
 13: #               2: Argument error (system error)
 14: #              10: umount error
 15: #              30: VG configuration file not found error
 16: #              99: Script not customize
 17: 
 18: 
 19: # Argument check
 20: case $# in
 21: 1)
 22:    ;;
 23: 2)
 24:    ;;
 25: *)
 26:    exit 2
 27:    ;;
 28: esac
 29: 
 30: device=$1
 31: mount_point=$2
 32: 
 33: # Determination of postprocessing file name
 34: 
 35: if [ "$SWSTGNODE" != "" ]
 36: then
 37:    swstg_node="/`echo $SWSTGNODE`"
 38: else
 39:    swstg_node=""
 40: fi
 41: 
 42: err_log_path="/var/opt/FJSVswsts"$swstg_node"/log"
 43: 
 44: # Device type check
 45: trans="`echo $device | /usr/bin/grep -e "/dev/dsk/" -e "/dev/disk/"`"
 46: lvmtrans="`echo $device | /usr/bin/grep "/dev/"`"
 47: vxpvtrans="`echo $device | /usr/bin/grep "/dev/vx/dmp/"`"
 48: if [ "$trans" != "" ]
 49: then
 50:    dev_type="physical"
 51:    dev="`echo $device | /usr/bin/sed -e "s/\/dev\/dsk\///" -e "s/\/dev\/disk\//_hppv_/"`"
 52:    post_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".pre"
 53:    fstype_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".fstype"
 54: elif [ "$vxpvtrans" != "" ]
 55: then
 56:    dev_type="vxvm_pv"
 57:    # /dev/vx/dmp/XXXX -> XXXX
 58:    dev="`echo $device | /usr/bin/awk -F\/ '{ print $5 }'`"
 59:    post_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".pre"
 60:    fstype_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".fstype"
 61: elif [ "$lvmtrans" != "" ]
 62: then
 63:    dev_type="logical"
 64:    # /dev/vgXX -> vgXX
 65:    dev="`echo $device | /usr/bin/awk -F\/ '{ print $3 }'`"
 66:    post_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".pre"
 67:    fstype_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".fstype"
 68: else
 69:    exit 0
 70: fi
 71: 
 72: # When the transaction disk is a physical device #############################
 73: if [ "$dev_type" = "physical" ]
 74: then
 75: 
 76: # When device was mounted --- 1
 77:    if [ "$mount_point" != "" ]
 78:    then
 79:       /usr/bin/df -ln $mount_point 2>/dev/null | /usr/bin/awk -F: '{ print $2 }' | /usr/bin/awk '{ print $1 }' > $fstype_file
 80:       /usr/sbin/umount $mount_point 2> /dev/null
 81:       if [ $? != 0 ]
 82:       then
 83:          retry_count=3
 84:          sleep_time=1
 85:          result_flag=1
 86:          
 87:          while [ $retry_count -gt 0 ]
 88:          do
 89:             /usr/sbin/umount $mount_point > $err_log_path/$dev.umount 2>&1
 90:             if [ $? != 0 ]
 91:             then
 92:                retry_count=`expr $retry_count - 1`
 93:                /usr/bin/sleep $sleep_time
 94:             else
 95:                /usr/bin/rm -f $err_log_path/$dev.umount
 96:                result_flag=0
 97:                break
 98:             fi
 99:          done
100:          
101:          if [ $result_flag != 0 ]
102: 
103:          then
104:             /usr/sbin/fuser -cu $mount_point> $err_log_path/$dev.fuser 2>&1 
105:             /usr/bin/ps -ef > $err_log_path/$dev.ps 2>&1 
106: 
107:             exit 10
108:          fi
109:       fi
110:       echo "mount" > $post_file
111: 
112: # When device was not mounted --- 2
113:    else
114:       echo "none" > $post_file
115:    fi
116: 
117: # When the transaction disk is a volume group ################################
118: elif [ "$dev_type" = "logical" ]
119: then
120: 
121:    # Check VG configuration file exists
122:    vg_name="`echo $device | /usr/bin/awk -F\/ '{ print $3 }'`"
123:    cfg_file="/etc/lvmconf/"$vg_name".conf"
124:    if [ ! -r $cfg_file ]
125:    then
126:  exit 30
127:    fi
128: 
129: # Devices is volume group and script not customize
130:    exit 99
131: 
132: # When devices of volume group was mounted --- 3
133: #   # Specify the name of volume group to unmount
134: #   if [ "$device" = "/dev/vgXX" ]
135: #   then
136: #
137: # # Unmount all logical volumes of the volume group
138: # mount_point="/XX"
139: # /usr/sbin/umount $mount_point 2>/dev/null
140: # if [ $? != 0 ]
141: # then
142: #    retry_count=3
143: #    sleep_time=1
144: #    result_flag=1
145: #         
146: #    while [ $retry_count -gt 0 ]
147: #    do
148: #       /usr/sbin/umount $mount_point > $err_log_path/$dev.umount 2>&1
149: #       if [ $? != 0 ]
150: #       then
151: #          retry_count=`expr $retry_count - 1`
152: #          sleep $sleep_time
153: #       else
154: #          rm -f $err_log_path/$dev.umount
155: #          result_flag=0
156: #          break
157: #       fi
158: #    done
159: #         
160: #    if [ $result_flag != 0 ]
161: #
162: #    then
163: #       /usr/sbin/fuser -cu $mount_point> $err_log_path/$dev.fuser 2>&1 
164: #       /usr/bin/ps -ef > $err_log_path/$dev.ps 2>&1 
165: #
166: #       exit 10
167: #    fi
168: # fi
169: # echo "mount" > $post_file
170: #   fi
171: 
172: # When devices of volume group was not mounted --- 4
173: #   # Specify the name of volume group to do nothing
174: #   if [ "$device" = "/dev/vgXX" ]
175: #   then
176: # echo "none" > $post_file
177: #   fi
178: #
179: # When the transaction disk is a VxVM physical volume --- 5 ##################
180: elif [ "$dev_type" = "vxvm_pv" ]
181: then
182:    # Nothing is done to VxVM PV. 
183:    #
184:    echo "none" > $post_file
185: fi
186: exit 0

Restore processing is not possible on a mounted transaction volume that cannot be unmounted. Specify a device at the restore destination.