linux使用shell脚本处理oracle、db2数据库
处理oracle数据库
手动输入时间(yyyymmdd),判断是否存在文件名为yyyymmdd,若存在则先备份再删除echo "请输入时间(yyyymmdd)",连接oracle查询数据并删除
read date
cd /home/ap/ssp/filedir/infiledir/makecard/jinbangda/
if [ ! -d "$date" ]
then
echo "file $date not exist"
exit 0
else
echo "jinbangda file $date is exist,gameover"
cp -rf $date $date.bak
echo "jinbangda file $date is copy,filename is $date.bak ok"
rm -rf $date
echo "jinbangda delete file $date ok"
fi
#sq是存放在当前用户下的连接数据库脚本
sq <<EOF
set linesize 1000;
select * from batstat where command='dealmakecard' and inputstr like '$date%';
delete file_mon where filedate='$date';
EOF
处理db2数据库
获取当前系统时间的前一百天日期,然后连接数据进行数据迁移,及数据删除
echo "start $(date +%Y-%m-%d-%X)"
time=$(date -d '100 days' +%Y-%m-%d)
echo "start $time"
su - db2inst1 <<EOF
time db2 connect to cmbcepay user epay using epay
echo "连接数据成功"
echo "开始导出日期为$time的bt_clear_trans_bak数据文件为:bt_clear_trans$time.del"
time db2 "select count(1) from bt_clear_trans_bak where trans_cleardate=date('$time')"
echo "执行语句:'time db2 export to bt_clear_trans$time.del of del select * from bt_clear_trans_bak where trans_date=date('$time')"
time db2 "export to bt_clear_trans$time.del of del select * from bt_clear_trans_bak where trans_cleardate=date('$time')"
echo " $time的bt_clear_trans数据导出成功"
echo "开始将数据bt_clear_trans$time.del导入到bt_clear_trans"
time db2 "select count(1) from bt_clear_trans_2015 where trans_cleardate=date('$time')"
echo "执行语句:time db2 import from bt_clear_trans$time.del of del commitcount 10000 insert into bt_clear_trans_2015"
time db2 "import from bt_clear_trans$time.del of del commitcount 10000 insert into bt_clear_trans_2015"
echo "导入$time 的bt_clear_trans成功"
echo "开始删除表数据"
time db2 "select count(1) from bt_clear_trans_bak where trans_cleardate=date('$time')"
echo "执行语句:'time db2 delete from bt_clear_trans' "
time db2 "delete from bt_clear_trans_bak where trans_cleardate=date('$time')"
time db2 "select count(1) from bt_clear_trans_bak where trans_cleardate=date('$time')"
echo "删除成功"
echo "game over"
EOF
以上脚本可以简单修改添加到crontab中进行定时运行

浙公网安备 33010602011771号