📄 row_locking.sh.txt
字号:
#!/usr/bin/ksh################################################################################# Module: page_locking.sh# Author: Peter R. Schmidt# Description: Change all tables to row level locking## Argument 1 Database Name## Change Log## Date Name Description.................# 07/14/99 Peter R. Schmidt Start Program ################################################################################OUTPUT=row_locking.outTMPFILE=row_locking.tmpFLAG_FAILED=falseFLAG_RETRY=falseMAX_RETRIES=50if [ $# != 0 ]then DATABASE=$1else echo "Usage: row_locking.sh [database name] [Retry #]" exit 1fiif [ $# = 2 ]then FLAG_RETRY=true NUM_RETRY=$2else FLAG_RETRY=false NUM_RETRY=0fiif [ -f $OUTPUT -a $FLAG_RETRY = false ]then rm -f $OUTPUTfiif [ -f $TMPFILE ]then rm -f $TMPFILEfiUDATE=`date`echo "----------------------------------------------------------------------" | tee -a $OUTPUTecho "Convert Informix tables to ROW level locking - $UDATE" | tee -a $OUTPUTecho "----------------------------------------------------------------------" | tee -a $OUTPUTif [ $FLAG_RETRY = true ]then UDATE=`date` | tee -a $OUTPUT echo "RETRY $NUM_RETRY on $UDATE" | tee -a $OUTPUT echo "----------------------------------------------------------------------" | tee -a $OUTPUTfiecho "Collecting table info from the systables table..." | tee -a $OUTPUT dbaccess <<-EOF1 2>&1 | tee -a $OUTPUT database $DATABASE; unload to '$TMPFILE' delimiter "|" select tabname from systables where locklevel <> 'R' and tabid > 99 and tabtype = 'T' order by 1;EOF1echo "unload completed" | tee -a $OUTPUTecho "----------------------------------------------------------------------" | tee -a $OUTPUTfor TABLE in `awk '{ print $1 }' FS='|' $TMPFILE`do UDATE=`date +%D-%T` echo | tee -a $OUTPUT echo "Attempting to alter table $TABLE on $UDATE" | tee -a $OUTPUT echo | tee -a $OUTPUT dbaccess >> $OUTPUT 2>&1 <<-EOF2 database $DATABASE; alter table $TABLE lock mode (ROW); EOF2 if [ $? != 0 ] then echo "Note: alter on table $TABLE FAILED" | tee -a $OUTPUT FLAG_FAILED=true else echo "Note: alter on table $TABLE SUCCESSFUL" | tee -a $OUTPUT fi echo | tee -a $OUTPUT echo "----------------------------------------------------------------------" | tee -a $OUTPUT donerm -f $TMPFILEechoecho "Program completed - results in $OUTPUT"if [ $FLAG_FAILED = true ]then UDATE=`date +%D-%T` echo "Note: some tables did not get converted to row locking" | tee -a $OUTPUT if [ $NUM_RETRY -ge $MAX_RETRIES ] then echo "Exceeded maximum number of retries of $MAX_RETRIES" | tee -a $OUTPUT echo "No more attempts will be made" | tee -a $OUTPUT else echo "Sleep 10 seconds on $UDATE..." | tee -a $OUTPUT sleep 10 NUM_RETRY=`expr $NUM_RETRY + 1` exec $0 $DATABASE $NUM_RETRY fifi
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -