OGG运维优化脚本(四)-信息修改类--长事务跳过
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,文件名: skiptrans.sh skip.sh所在路径:$HOME/ggscript/ggtrandata功能:该脚本用于重启抽取进程时跳过长事务,可自动识别1小时以上的长事务并批量跳过,skip
千家信息网最后更新 2025年01月22日OGG运维优化脚本(四)-信息修改类--长事务跳过
文件名: skiptrans.sh skip.sh
所在路径:$HOME/ggscript/ggtrandata
功能:该脚本用于重启抽取进程时跳过长事务,可自动识别1小时以上的长事务并批量跳过,skiptrans.sh通过edit脚本选择调用,skip.sh用于在其他脚本中调用用,例如allstop.sh全goldengate进程停止脚本
Ps:目前该脚本目前仅适用于AIX和LINUX系统
skiptrans.sh
#!/bin/bash#时间转换为秒的函数,参考某位大神的脚本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/ggtrandataecho $loginecho $dirdir=$PWD echo $dircd $HOME/ggserver#输入需要跳过长事务的进程名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个线程的showtrans长事务echo "loading the trans data.....please wait....."(echo send $extract showtrans thread 1;echo exit)|./ggsci > $dir/thread1echo "Thread 1 data load compete"(echo send $extract showtrans thread 2;echo exit)|./ggsci > $dir/thread2echo "Thread 2 data load compete"cd $dir#将长事务信息分割为时间与trans编号两部分cat thread1|awk 'BEGIN{}{FS=" "} /^XID:/{print $2}'|sed -e '/^$/d' > xid1cat thread1|awk -F 'Time: ' '{print $2}'|sed -e '/^$/d' > time1paste time1 xid1 > trandatacat thread2|awk 'BEGIN{}{FS=" "} /^XID:/{print $2}'|sed -e '/^$/d' > xid2cat thread2|awk -F 'Time: ' '{print $2}'|sed -e '/^$/d' > time2paste time2 xid2 > trandata2cat trandata2 >> trandata#通过函数转换时间,并排除掉一小时以内的长事务sydate=`date +"%Y-%m-%d:%H:%M:%S"`echo $HSYSTIMEdate2seconds `echo $sydate | sed 's/-/ /g;s/:/ /g'` > secondssysHSYSTIME=`cat secondssys`echo $HSYSTIMErm -f secondssys#date2seconds `echo $sydate | sed 's/-/ /g;s/:/ /g'`NUX=`sed -n '$=' trandata`i=1cat /dev/null > trainswhile(($i<=$NUX)); dostr=`sed -n "${i}p" trandata |awk '{print $1}'`echo $strdate2seconds `echo $str | sed 's/-/ /g;s/:/ /g'` > secondssysHGTI=`cat secondssys`rm -f secondssysecho $HGTIecho $HSYSTIMEPOOR=`expr $HSYSTIME - 3600`echo $POORecho "--------------------"if [ "$HGTI" -le "$POOR" ] then sed -n "${i}p" trandata |awk '{print $2}' >> trainsfii=`expr $i + 1`done#将一小时以前的长事务组合成skiptrans指令,并通过obey指令批量执行sed 's/^/send '$extract' skiptrans /' trains > trains1sed 's/$/ force/' trains1 > skiptrains cd $HOME/ggservercat $HOME/ggscript/ggtrandata/skiptrains > dirdat/skiptrainsecho OBEY dirdat/skiptrains |./ggsci
skip.sh
#!/bin/bashecho $dircd $HOME/ggscript/ggtrandatadir=$PWDcd $HOMEif [ -f .profile ];then . .profilefiif [ -f .bash_profile ];then . .bash_profileficd $dirfunction 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 2fiextract=$1if [ `echo $extract|grep ^E` ];then IType=EXTRACTelif [ `echo $extract|grep ^P` ];then echo "only can operate the EXTRACT process" exit 2elif [ `echo $extract|grep ^R` ];then echo "only can operate the extract process" exit 2else echo "only can operate the EXTRACT process" exit 2fival=`echo $extract.PRM|tr A-Z a-z`cd $HOME/ggserver/dirprmif [ ! -e $val ]; then echo "the EXTRACT is not exist" exit 2ficd $direcho $loginecho $dircd $HOME/ggserverecho "loading the trans data.....please wait....."(echo send $extract showtrans thread 1;echo exit)|./ggsci > $dir/thread1echo "Thread 1 data load compete"(echo send $extract showtrans thread 2;echo exit)|./ggsci > $dir/thread2echo "Thread 2 data load compete"cd $dircat thread1|awk 'BEGIN{}{FS=" "} /^XID:/{print $2}'|sed -e '/^$/d' > xid1cat thread1|awk -F 'Time: ' '{print $2}'|sed -e '/^$/d' > time1paste time1 xid1 > trandatacat thread2|awk 'BEGIN{}{FS=" "} /^XID:/{print $2}'|sed -e '/^$/d' > xid2cat thread2|awk -F 'Time: ' '{print $2}'|sed -e '/^$/d' > time2paste time2 xid2 > trandata2cat trandata2 >> trandatasydate=`date +"%Y-%m-%d:%H:%M:%S"`echo $HSYSTIMEdate2seconds `echo $sydate | sed 's/-/ /g;s/:/ /g'` > secondssysHSYSTIME=`cat secondssys`echo $HSYSTIMErm -f secondssys#date2seconds `echo $sydate | sed 's/-/ /g;s/:/ /g'`NUX=`sed -n '$=' trandata`i=1cat /dev/null > trainswhile(($i<=$NUX)); dostr=`sed -n "${i}p" trandata |awk '{print $1}'`echo $strdate2seconds `echo $str | sed 's/-/ /g;s/:/ /g'` > secondssysHGTI=`cat secondssys`rm -f secondssysecho $HGTIecho $HSYSTIMEPOOR=`expr $HSYSTIME - 3600`echo $POORecho "--------------------"if [ "$HGTI" -le "$POOR" ] then sed -n "${i}p" trandata |awk '{print $2}' >> trainsfii=`expr $i + 1`donesed 's/^/send '$extract' skiptrans /' trains > trains1sed 's/$/ force/' trains1 > skiptrains cd $HOME/ggservercat $HOME/ggscript/ggtrandata/skiptrains > dirdat/skiptrainsecho OBEY dirdat/skiptrains |./ggsci
事务
脚本
小时
进程
函数
指令
时间
信息
功能
大神
所在
文件
文件名
系统
线程
自动识别
路径
部分
参考
抽取
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
郑州武林软件开发
华为和戴尔服务器
济源网络技术推广方案
海康阵列服务器密码
云南计算机网络技术
专科计算机网络技术分类
武汉大学数据库检索会议论文
采用图技术构建CMDB数据库
高二网络技术应用试题答案
linux c语言数据库编程
党员网络安全问题整改台账
畜禽养殖智能控制系统软件开发
基础数据库建设方案
数据库分离后如何找到
新游网络安全海报
广东绿色生鲜配送软件开发
数据库端口配置
北京强臣网络技术有限公司
链格杭州网络技术有限公司
掌趣科技的互联网页面游戏
银行软件开发程序员公司前景
汉高数据库招聘
字跳网络技术招标
文件服务器有哪些类型
畜禽养殖智能控制系统软件开发
如何登录smb服务器
北京工业软件开发要多少钱
后端开发和软件开发一样吗
一个人到底会不会删除数据库
浅谈大学生网络安全问题