文件名: skiptrans.sh skip.sh

創(chuàng)新互聯(lián)專注于沂源企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都做商城網(wǎng)站。沂源網(wǎng)站建設(shè)公司,為沂源等地區(qū)提供建站服務(wù)。全流程專業(yè)公司,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
所在路徑:$HOME/ggscript/ggtrandata
功能:該腳本用于重啟抽取進(jìn)程時(shí)跳過(guò)長(zhǎng)事務(wù),可自動(dòng)識(shí)別1小時(shí)以上的長(zhǎng)事務(wù)并批量跳過(guò),skiptrans.sh通過(guò)edit腳本選擇調(diào)用,skip.sh用于在其他腳本中調(diào)用用,例如allstop.sh全goldengate進(jìn)程停止腳本
Ps:目前該腳本目前僅適用于AIX和LINUX系統(tǒng)
skiptrans.sh
#!/bin/bash
#時(shí)間轉(zhuǎn)換為秒的函數(shù),參考某位大神的腳本
function date2seconds {
echo "$*" | awk '{
z=int((14-$2)/12); y=$1+4800-z; m=$2+12*z-3;
j=int((153*m+2)/5)+$3+y*365+int(y/4)-int(y/100)+int(y/400)-2472633;
j=j*86400+$4*3600+$5*60+$6
print j
}'
}
cd $HOME/ggscript/ggtrandata
echo $login
echo $dir
dir=$PWD
echo $dir
cd $HOME/ggserver
#輸入需要跳過(guò)長(zhǎng)事務(wù)的進(jìn)程名
echo "searching the Extract name......"
(echo info all;echo exit)|./ggsci|grep "EXTRACT" |awk 'BEGIN {FS=" +"} {print $3}'|grep '^E'
read -p "Please enter the extract name:" extract
#獲取2個(gè)線程的showtrans長(zhǎng)事務(wù)
echo "loading the trans data.....please wait....."
(echo send $extract showtrans thread 1;echo exit)|./ggsci > $dir/thread1
echo "Thread 1 data load compete"
(echo send $extract showtrans thread 2;echo exit)|./ggsci > $dir/thread2
echo "Thread 2 data load compete"
cd $dir
#將長(zhǎng)事務(wù)信息分割為時(shí)間與trans編號(hào)兩部分
cat thread1|awk 'BEGIN{}{FS=" "} /^XID:/{print $2}'|sed -e '/^$/d' > xid1
cat thread1|awk -F 'Time: ' '{print $2}'|sed -e '/^$/d' > time1
paste time1 xid1 > trandata
cat thread2|awk 'BEGIN{}{FS=" "} /^XID:/{print $2}'|sed -e '/^$/d' > xid2
cat thread2|awk -F 'Time: ' '{print $2}'|sed -e '/^$/d' > time2
paste time2 xid2 > trandata2
cat trandata2 >> trandata
#通過(guò)函數(shù)轉(zhuǎn)換時(shí)間,并排除掉一小時(shí)以內(nèi)的長(zhǎng)事務(wù)
sydate=`date +"%Y-%m-%d:%H:%M:%S"`
echo $HSYSTIME
date2seconds `echo $sydate | sed 's/-/ /g;s/:/ /g'` > secondssys
HSYSTIME=`cat secondssys`
echo $HSYSTIME
rm -f secondssys
#date2seconds `echo $sydate | sed 's/-/ /g;s/:/ /g'`
NUX=`sed -n '$=' trandata`
i=1
cat /dev/null > trains
while(($i<=$NUX)); do
str=`sed -n "${i}p" trandata |awk '{print $1}'`
echo $str
date2seconds `echo $str | sed 's/-/ /g;s/:/ /g'` > secondssys
HGTI=`cat secondssys`
rm -f secondssys
echo $HGTI
echo $HSYSTIME
POOR=`expr $HSYSTIME - 3600`
echo $POOR
echo "--------------------"
if [ "$HGTI" -le "$POOR" ]
then
sed -n "${i}p" trandata |awk '{print $2}' >> trains
fi
i=`expr $i + 1`
done
#將一小時(shí)以前的長(zhǎng)事務(wù)組合成skiptrans指令,并通過(guò)obey指令批量執(zhí)行
sed 's/^/send '$extract' skiptrans /' trains > trains1
sed 's/$/ force/' trains1 > skiptrains
cd $HOME/ggserver
cat $HOME/ggscript/ggtrandata/skiptrains > dirdat/skiptrains
echo OBEY dirdat/skiptrains |./ggsciskip.sh
#!/bin/bash
echo $dir
cd $HOME/ggscript/ggtrandata
dir=$PWD
cd $HOME
if [ -f .profile ];then
. .profile
fi
if [ -f .bash_profile ];then
. .bash_profile
fi
cd $dir
function date2seconds {
echo "$*" | awk '{
z=int((14-$2)/12); y=$1+4800-z; m=$2+12*z-3;
j=int((153*m+2)/5)+$3+y*365+int(y/4)-int(y/100)+int(y/400)-2472633;
j=j*86400+$4*3600+$5*60+$6
print j
}'
}
if [ $# -eq 0 ]; then
echo "skip EXTRACT"
exit 2
fi
extract=$1
if [ `echo $extract|grep ^E` ];then
IType=EXTRACT
elif [ `echo $extract|grep ^P` ];then
echo "only can operate the EXTRACT process"
exit 2
elif [ `echo $extract|grep ^R` ];then
echo "only can operate the extract process"
exit 2
else
echo "only can operate the EXTRACT process"
exit 2
fi
val=`echo $extract.PRM|tr A-Z a-z`
cd $HOME/ggserver/dirprm
if [ ! -e $val ]; then
echo "the EXTRACT is not exist"
exit 2
fi
cd $dir
echo $login
echo $dir
cd $HOME/ggserver
echo "loading the trans data.....please wait....."
(echo send $extract showtrans thread 1;echo exit)|./ggsci > $dir/thread1
echo "Thread 1 data load compete"
(echo send $extract showtrans thread 2;echo exit)|./ggsci > $dir/thread2
echo "Thread 2 data load compete"
cd $dir
cat thread1|awk 'BEGIN{}{FS=" "} /^XID:/{print $2}'|sed -e '/^$/d' > xid1
cat thread1|awk -F 'Time: ' '{print $2}'|sed -e '/^$/d' > time1
paste time1 xid1 > trandata
cat thread2|awk 'BEGIN{}{FS=" "} /^XID:/{print $2}'|sed -e '/^$/d' > xid2
cat thread2|awk -F 'Time: ' '{print $2}'|sed -e '/^$/d' > time2
paste time2 xid2 > trandata2
cat trandata2 >> trandata
sydate=`date +"%Y-%m-%d:%H:%M:%S"`
echo $HSYSTIME
date2seconds `echo $sydate | sed 's/-/ /g;s/:/ /g'` > secondssys
HSYSTIME=`cat secondssys`
echo $HSYSTIME
rm -f secondssys
#date2seconds `echo $sydate | sed 's/-/ /g;s/:/ /g'`
NUX=`sed -n '$=' trandata`
i=1
cat /dev/null > trains
while(($i<=$NUX)); do
str=`sed -n "${i}p" trandata |awk '{print $1}'`
echo $str
date2seconds `echo $str | sed 's/-/ /g;s/:/ /g'` > secondssys
HGTI=`cat secondssys`
rm -f secondssys
echo $HGTI
echo $HSYSTIME
POOR=`expr $HSYSTIME - 3600`
echo $POOR
echo "--------------------"
if [ "$HGTI" -le "$POOR" ]
then
sed -n "${i}p" trandata |awk '{print $2}' >> trains
fi
i=`expr $i + 1`
done
sed 's/^/send '$extract' skiptrans /' trains > trains1
sed 's/$/ force/' trains1 > skiptrains
cd $HOME/ggserver
cat $HOME/ggscript/ggtrandata/skiptrains > dirdat/skiptrains
echo OBEY dirdat/skiptrains |./ggsci
當(dāng)前標(biāo)題:OGG運(yùn)維優(yōu)化腳本(四)-信息修改類--長(zhǎng)事務(wù)跳過(guò)
標(biāo)題鏈接:http://chinadenli.net/article2/jggjoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、Google、網(wǎng)站改版、域名注冊(cè)、自適應(yīng)網(wǎng)站、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)