• GBASE 8s 自动删除正在被使用的数据库


            通常需要删除测试数据库来清理环境(在夜间或定时计划),以便 QA 或开发团队可以根据最新的实际数据验证或调试架构和应用程序更改。但是,如果某库正在被使用时,将无法被删除。需要反复询问,才能找到使用者。为了解决这一问题,可以通过下面的脚本完成此功能。

    # Lock timeout

    SECONDS=60

    # Exit "dbaccess" on error

    export DBACCNOIGN=1

    # Wait for any DIRTY READ sessions

    export IFX_DIRTY_WAIT=$SECONDS

    if [ $# != 1 ]

    then

            echo "Usage: $0 database" 1>&2

            exit 1

    fi

    if [ "$(whoami)" != "gbasedbt" ]

    then

            echo "$0: must be run as gbasedbt" 1>&2

            exit 2

    fi

    (

            echo "SET LOCK MODE TO WAIT $WAIT;"

            echo "DELETE FROM sysusers WHERE username != USER;"

            echo "CLOSE DATABASE;"

            echo "DROP DATABASE $1;"

    ) | dbaccess -e $1 &

    PID=$! ; sleep 1

    SID=$(onstat -g ses | awk '$4 == PID {print $1}' PID=$PID)

    for i in $(onstat -g sql | fgrep " $1 " | cut -d" " -f1)

    do

            [ "$i" != "$SID" ] && onmode -z $i

    done

    wait

  • 相关阅读:
    关于ubuntu开发环境配置
    入侵检测代码
    一篇文章讲清Servlet原理
    Java--集合框架详解
    Linux中 vim 编辑器的使用
    学c语言可以过CCT里的c++吗?
    Java FTP按关键字批量下载文件
    express在nodejs中的基本使用
    生活污水处理一体化处理设备有哪些
    C. Good Subarrays(思维+前缀和)
  • 原文地址:https://blog.csdn.net/weixin_57486087/article/details/126017758