INFORMIX修改数据库锁模式的SHELL

来源:互联网 发布:软件生命周期测试阶段 编辑:程序博客网 时间:2024/05/17 22:21

#将数据库中所有表的锁模式改为行级锁
#Usage:change_db_lock_row.sh dbname

#本地变量
#lv_dbname

if [ ! $# -eq 1 ]
then
  echo "Usage:$0 dbname!"
  exit
fi

lv_dbname=$1

echo "start.."

dbaccess - -<<! 2>/dev/null 1>&2
database ${lv_dbname};
unload to lock_row.tmp select tabname from systables where tabid > 99 and tabtype = 'T';
!
if [ ! $? -eq 0 ]
then
    echo "Database ${lv_dbname} is not exist or have no permission!"
    exit
fi
sed "s//|/ lock mode (row)/;/" lock_row.tmp > lock_row1.tmp
sed "s/^/alter table /" lock_row1.tmp > lock_row2.tmp

lv_filename="change_db_lock_row_exec.sh"
rm -f ${lv_filename}

echo "dbaccess - -<<!" >> ${lv_filename}
echo "database ${lv_dbname};" >> ${lv_filename}
cat lock_row2.tmp >> ${lv_filename}
echo "!" >> ${lv_filename}

sh change_db_lock_row_exec.sh 2>/dev/null 1>&1

echo "over.."
------------------------------------------------------------------------------------------------------
#将数据库中所有表的锁模式改为页级锁
#Usage:change_db_lock_page.sh dbname

#本地变量
#lv_dbname

if [ ! $# -eq 1 ]
then
  echo "Usage:$0 dbname!"
  exit
fi

lv_dbname=$1

echo "start.."

dbaccess - -<<! 2>/dev/null 1>&2
database ${lv_dbname};
unload to lock_page.tmp select tabname from systables where tabid > 99 and tabtype = 'T';
!
if [ ! $? -eq 0 ]
then
    echo "Database ${lv_dbname} is not exist or have no permission!"
    exit
fi
sed "s//|/ lock mode (page)/;/" lock_page.tmp > lock_page1.tmp
sed "s/^/alter table /" lock_page1.tmp > lock_page2.tmp

lv_filename="change_db_lock_page_exec.sh"
rm -f ${lv_filename}

echo "dbaccess - -<<!" >> ${lv_filename}
echo "database ${lv_dbname};" >> ${lv_filename}
cat lock_page2.tmp >> ${lv_filename}
echo "!" >> ${lv_filename}

sh change_db_lock_page_exec.sh 2>/dev/null 1>&1

echo "over.."

原创粉丝点击