暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

gbase -unload、load优质导数测试脚本,亲测可用,欢迎指出问题

原创 lair 2022-08-24
721

#!/bin/sh
if [ $# -ne 3 ]; then
echo "Usage: $0 dbname servername {load|unload}"
exit 1
fi
DBNAME=$1
SERVERNAME=$2
LOADFLAG=$3
currentdir=`pwd`
UNLOADLOGFILE=$currentdir/unload_data.log
LOADLOGFILE=$currentdir/load_data.log
RECORDNUM=100000
DATADIR=$currentdir/$DBNAME

if [ $LOADFLAG = 'unload' ]
then

if [ -e $DATADIR ]
then
rm -fR $DATADIR
mkdir $DATADIR
else
mkdir $DATADIR
fi

cat /dev/null > $UNLOADLOGFILE



dbaccess $DBNAME@$SERVERNAME <<!
#update statistics medium;
unload to $DATADIR/tab.unl delimiter ' '
select tabname,trunc(nrows)::int from systables
where tabid >99 and tabname not in ('temphome_chargelog','c2vpnsms_chargelog','c2vpnsms_vpg0721',
'c2vpmn_chargelog','ucc_edlog','ucc_contralog','record_mark',
'tmn_cpuconf','tmn_dbconf','tmn_diskconf','tmn_externconf',
'tmn_ioconf','tmn_memoryconf','tmn_neconf','tmn_register',
'tmn_serviceconf','tmn_softwareconf','tmn_sspconf',
'tmn_subsystemconf','tmn_userconf','configinaccesscode','vrbt_userlog',
'vrbt_settinglog','vrbt_grouplog','vrbt_rotatelog','m_modinfo','m_modinfo1')
order by nrows
!
date >> $UNLOADLOGFILE
echo "------start unload data table------" >>$UNLOADLOGFILE
while read A B
do
dbaccess $DBNAME@$SERVERNAME <<!
unload to $DATADIR/$A.unl
select * from $A;
!

if (test $? != 0)
then
echo "!!!table $A unload fail,please check it!" >> $UNLOADLOGFILE
else
echo "table $A unload success!" >> $UNLOADLOGFILE
fi

done < $DATADIR/tab.unl
echo "------ end unload data table ------" >>$UNLOADLOGFILE
fi
if [ $LOADFLAG = 'load' ]
then

cat /dev/null > $LOADLOGFILE

date >> $LOADLOGFILE
echo "------start load data table------" >>$LOADLOGFILE
while read A B
do
if [ $B -le $RECORDNUM ]
then
dbaccess $DBNAME@$SERVERNAME <<!
load from $DATADIR/$A.unl
insert into $A;
!
if (test $? != 0)
then
echo "!!!table $A load fail,please check it!" >> $LOADLOGFILE
else
echo "table $A load success!" >> $LOADLOGFILE
fi

else
lieshu=`head -1 $DATADIR/$A.unl|awk -F '|' '{print NF-1}'`
echo "FILE \"$DATADIR/$A.unl\" DELIMITER \"|\" $lieshu;" > $DATADIR/$A.txt
echo "insert into $A;" >> $DATADIR/$A.txt
dbload -d $DBNAME@$SERVERNAME -c $DATADIR/$A.txt -l $A.error.log -n 100000
#onpladm create job job$A -d $DATADIR/$A.unl -D $DBNAME -S $SERVERNAME -t $A -fl >>$LOADLOGFILE
#onpladm run job job$A -S $SERVERNAME -fl >>$LOADLOGFILE
#onpladm delete job job$A -S $SERVERNAME -fl -R >>$LOADLOGFILE
fi
done < $DATADIR/tab.unl
echo "------ end load data table ------" >>$LOADLOGFILE
#dbaccess $DBNAME@$SERVERNAME <<!
#update statistics medium;
#!
INFORMIXSERVER=$SERVERNAME
echo ` ` | ontape -s -L 0 > /dev/null
fi

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论