• 【shell】定时删除DB2表数据


    使用db2的时候,有时候需要对表数据进行删除,防止数据太多,造成数据库空间满了

    以下是一个定时删除表tmp,tm1中id为1的数据的脚本

    #!/bin/sh
    ##----------------------------------------------------------
    ##--功能说明:定时删除数据
    ##--开发公司:XXX
    ##--作者:qys
    ##--时间:2019-01-02
    ##--输入参数:无
    ##--版本维护
    ##      版本:      更新日期:        更改人:        更改说明:
    ##      --------------------------------------------------------
    ##      v1.0        2019-01-02          qys         创建shell脚本
    ##--------------------------------------------------------------
    #定义数据库连接变量
    dbname='QINDB'
    dbuser='db2inst1'
    dbpwd='db2inst1'
    #连接数据库
    connDB2()
    {
    	db2 get connection state | grep 'Connected'>/dev/null
    	res1=$? #获取上一命令的执行状态
    	if [[  $res1 -eq 0 ]]
    	then
    		echo "The DB has been connected!">>deleteTable.log
    	else
    		db2 connect to $dbname user $dbuser using $dbpwd>/dev/null
    		res2=$?
    		i=0
    		while [ $i -lt 3 ]
    		do
    			i='expr $i + 1'
    					if [[  $res2 -eq 0 ]]
    					then
    						echo "The DB has been connected!">>deleteTable.log
    						break
    					else
    						sleep 3
    						db2 connect to $dbname user $dbuser using $dbpwd>/dev/null
    						res2=$?
    					fi
    		done
    	fi
    }
    #删除表操作
    TableAry=("TMP" "TMP1")
    deleteTable()
    {
    	for Tablename in "${TableAry[@]}"
    	do
    		sql="delete from ${Tablename} WHERE ID=1"
    		echo "Action sql:$sql">>deleteTable.log
    		db2 $sql>>deleteTable.log
    		echo "The ${Tablename}'s data has been detete!">>deleteTable.log
    	done
    }
    
    #断开数据库连接
    DisconnectDB()
    {
    	db2 connect reset>>deleteTable.log
            echo "The DB has been disconnect!">>deleteTable.log
    }
    
    #执行命令
    run()
    {
    	BeginDT=`date +%Y-%M-%d,%H:%m:%s`
    	echo "===================Begin${BeginDT}========================">>deleteTable.log
    	#1.连接数据库
    	connDB2
    	#2.删除数据
    	deleteTable
    	#3.断开数据库连接
    	DisconnectDB
    	EndDT=`date +%Y-%M-%d,%H:%m:%s`
    	echo "==================EndDT${EndDT}==========================">>deleteTable.log
    }
    run
    

    执行脚本后:

    image



  • 相关阅读:
    u-boot 移植 --->5、友善之臂Tiny210底板王网卡驱动移植
    Linux 驱动框架---驱动中的中断
    Linux 驱动框架---驱动中的并发
    Linux 驱动框架---platform驱动框架
    Linux内核实现透视---软中断&Tasklet
    Linux内核实现透视---硬中断
    u-boot 移植 --->4、Tiny210核心板的DDR初始化下详解
    redis缓存的安装和使用
    ArrayList、LinkedList、Vector的区别
    Java中的IO流系统详解
  • 原文地址:https://www.cnblogs.com/OliverQin/p/10213793.html
Copyright © 2020-2023  润新知