• a sample of SQL shell 简单数据库脚本实例


    #数据库shell编程实例

    QLDATA=/home/sylar/Scripts

    #how long will stored

    DATA_STORE=92                 

    #if par eq 1 

    if [ $# -eq 1 ]

    then

    if [ "${1}X" = "FX" ]   

    then 

    echo "\t现在进行数据备份,请稍候..."

    elif [ "${1}X" = "SX" ]

    then

    echo "\t请确认进行了数据备份..."

    echo "\t按Enter键继续,退出请按中断键... "

    read key 

    else

    echo "\t参数错"

    echo "\n\tUsage:\t$0 F [ S ]"

    echo "\t \$1=F,表示进行数据备份" 

    echo "\t \$1=S,表示将重新建表,并进行数据整理" 

    exit 0

    fi

    else

    echo "\n\tUsage:\t$0 F [ S ]"

    echo "\t \$1=F,表示进行数据备份" 

    echo "\t \$1=S,表示将重新建表,并进行数据整理" 

    exit 0

    fi

    #process dbacces db and then select wkdata-77 from ctl_syspmt

    TMPDATE=`dbaccess db<<! 

    select wkdate-${DATA_STORE} from ctl_syspmt;

    !`

    #get second par

    DATE=`echo $TMPDATE | awk '{print $2}'`

    #if has dir

    if [ -d $QLDATA ]

    then

    echo "\n\t清理备份的数据保存在目录[$QLDATA]下"

    echo "\t请确认存储空间足够"

    echo "\t清理后数据库中相应的表只保存日期[$DATE]后的数据"

    echo "\t按Enter键继续,退出请按中断键... "

    read key 

    else

    echo "\n\t检查清理备份的目录 [ $QLDATA ] 不存在,请创建后重新执行 ... "

    exit 0

    fi

    cd $QLDATA

    if [ "${1}X" = "FX" ]

    then

    echo "\n\t将在$QLDATA目录下创建以下目录"

    echo "\n\tsql目录存放表结构" 

    echo "\n\ttxt目录存放历史表全量数据"

    echo "\n\tptxt目录存放历史表中需要暂时保存的数据"

    mkdir sql

    mkdir txt

    mkdir ptxt

    #read serial table and fineld_name from text doc

    while  read serial table field_name

    do

    echo "\n\t卸出表结构 [$serial]:[$table]..."

    #-d dbname -t table name -ss  1> output information send into dev null

    dbschema -d hvpsdb -t $table -ss ${QLDATA}/sql/${table}.sql 1>/dev/null;

    echo "\n\t卸出需要保留的文本 [$serial]:[$table]..."

    dbaccess hvpsdb 2>/dev/null <<!

    unload to ${QLDATA}/ptxt/${table}.txt select * from ${table} where ${field_name} >= "${DATE}";

    #unload all data

    unload to ${QLDATA}/txt/${table}.txt select * from $table;

    !

    done < ${QLDATA}/hvps_table

    fi

    if [ "${1}X" = "SX" ]

    then

    for table in `awk '{print $2}' ${QLDATA}/hvps_table`

    do

    echo "\n\t并删除表[$table]" 

    dbaccess hvpsdb 2>/dev/null <<!

    drop table $table;

    !

    echo "\n\t重建表 [$table]" 

    dbaccess hvpsdb ${QLDATA}/sql/${table}.sql;

    echo "\n\t装入数据 [$table]" 

    dbaccess hvpsdb 2>/dev/null <<!

    load from  ${QLDATA}/ptxt/${table}.txt insert into  $table;

    !

    done

    fi

  • 相关阅读:
    Springboot 拦截器配置(登录拦截)
    SVN server 服务端修改端口号
    Latex 添加新的宏包
    鼠标右键快捷键修改的所对应注册表位置
    软件和电脑分辨率不一致解决办法——更改高DPI设置
    Latex中使用pdflatex编译图片出错:Unknown graphics extension: .eps. ...raphics[height=3.3cm]{figures/Var.eps}
    latex-TexStudio-tex源文件与pdf正反搜索(正反定位)设置
    假设检验
    大数据预处理技术
    chrome无法从该网站添加应用、扩展程序和用户脚本的有效解决方法!
  • 原文地址:https://www.cnblogs.com/SuperXJ/p/2212909.html
Copyright © 2020-2023  润新知