zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    StrictMode 检测应用
    动态设置视图大小
    查看手机CPU每个APP利用率
    获取屏幕尺寸,大于7为平板,小于7为手机
    Charles 抓取https 包
    SparseArray
    Gradle 差异化构建
    HashMap原理
    Gc root 定义
    Java多线程
  • 原文地址:https://www.cnblogs.com/SuperXJ/p/2212909.html
Copyright © 2011-2022 走看看