GBase 8a
运维管理
文章

gbase8a中的vc下线,清除相关资源池

发表于2025-07-06 14:18:3327次浏览1个评论

#!/bin/bash
#set -euo pipefail
source /home/gbase/.gbase_profile
workdir=$(cd `dirname $0`;pwd)
cd ${workdir}
#数据库gbas密码:
user=xxxx
pass=xxxx
#清理资源池的vc名字
vc_name=${1}
#获取vc_id
vc_id=`gccli -u${user} -p${pass} -e"show vcs" | grep -w ${vc_name} | awk '{print $1}'`
#资源管理实效
gccli -u${user} -p${pass} -e"deactive resource plan  on vc ${vc_name};"
resource=`gccli -u${user} -p${pass} -e"select config_int_value from gbase.resource_config where config_name='active_resource_plan_id' and vc_id='${vc_id}';"| grep -iv config_int_value `
if [ ${resource} -eq 0 ]; then
       echo "资源管控已关闭"
else
       echo "资源管控未关闭"
fi
#清理用户组下用户
grep_user_list=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select a.user_name||'+'||b.consumer_group_name from consumer_group_user a join consumer_group b on a.consumer_group_id=b.consumer_group_id where b.vc_id='${vc_id}'" | grep -iv consumer_group`
for group_user_info in `echo ${grep_user_list}`
do

       group_name=`echo ${group_user_info}|awk -F'+' '{print $2}'`
       user_name=`echo ${group_user_info}|awk -F'+' '{print $1}'`
       gccli -u${user} -p${pass} -e"use vc ${vc_name}; ALTER CONSUMER GROUP ${group_name} REMOVE USER ${user_name};"
done
grep_user_num=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select count(*) from consumer_group_user a join consumer_group b on a.consumer_group_id=b.consumer_group_id where b.vc_id='${vc_id}'" | grep -iv count`

if [ ${grep_user_num} -eq 0 ]; then
       echo "资源池相关用户清理完成"
else
       echo "资源池相关用户清理未完成"
fi
#清理资源管理组
resource_plan_directive_name_list=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select resource_plan_directive_name from resource_plan_directive where vc_id='${vc_id}'" | grep -iv resource_plan_directive_name`
for resource_plan_directive_name_info in `echo ${resource_plan_directive_name_list}`
do
       gccli -u${user} -p${pass} -e"use vc ${vc_name}; DROP RESOURCE DIRECTIVE ${resource_plan_directive_name_info};"
done

resource_plan_directive_name_num=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select count(*) from resource_plan_directive where vc_id='${vc_id}'" | grep -iv count`

if [ ${resource_plan_directive_name_num} -eq 0 ]; then
       echo "资源管理绑定关系清理完成"
else
       echo "资源管理绑定关系清理未完成"
fi
#清理用户组
consumer_group_name_list=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select consumer_group_name from consumer_group where vc_id='${vc_id}'" | grep -iv consumer_group_name`
for consumer_group_name_info in `echo ${consumer_group_name_list}`
do
       gccli -u${user} -p${pass} -e"use vc ${vc_name}; DROP CONSUMER GROUP ${consumer_group_name_info};"
done

consumer_group_name_num=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select count(*) from consumer_group where vc_id='${vc_id}'" | grep -iv count`

if [ ${consumer_group_name_num} -eq 0 ]; then
       echo "用户组清理完成"
else
       echo "用户组清理未完成"
fi


#清理计划
resource_plan_name_list=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select resource_plan_name from resource_plan where vc_id='${vc_id}'" | grep -iv resource_plan_name`
for resource_plan_name_info in `echo ${resource_plan_name_list}`
do
       gccli -u${user} -p${pass} -e"use vc ${vc_name}; DROP RESOURCE PLAN ${resource_plan_name_info};"
done

resource_plan_name_num=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select count(*) from resource_plan where vc_id='${vc_id}'" | grep -iv count`
if [ ${resource_plan_name_num} -eq 0 ]; then
       echo "资源计划清理完成"
else
       echo "资源计划清理未完成"
fi

#清理动态池:

resource_pool_name_list=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select resource_pool_name from resource_pool where vc_id='${vc_id}'" | grep -ivE "resource_pool_name|static"`
for resource_pool_name_info in `echo ${resource_pool_name_list}`
do
       gccli -u${user} -p${pass} -e"use vc ${vc_name}; DROP RESOURCE POOL ${resource_pool_name_info};"
done

resource_pool_name_num=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select count(*) from resource_pool where vc_id='${vc_id}'" | grep -iv count`
if [ ${resource_pool_name_num} -eq 1 ]; then
       echo "动态池清理完成"
else
       echo "动态池清理未完成"
fi

#清理静态池:
resource_pool_name=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select resource_pool_name from resource_pool where vc_id='${vc_id}'" | grep -iv resource_pool_name`
gccli -u${user} -p${pass} -e"use vc ${vc_name}; DROP RESOURCE POOL ${resource_pool_name};"
resource_pool_name_num=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select count(*) from resource_pool where vc_id='${vc_id}'" | grep -iv count`
if [ ${resource_pool_name_num} -eq 0 ]; then
       echo "静态池清理完成" 
else
       echo "静态池清理未完成"
fi

评论

登录后才可以发表评论
崔哥发表于 5个月前
乔木生云气。访中兴、英雄陈迹,暗追前事。战舰东风慳借便,梦断神州故里。旋小筑、吴宫闲地。华表月明归夜鹤,叹当时、花竹今如此。枝上露,溅清泪。遨头小簇行春队。步苍苔、寻幽别坞,问梅开未。重唱梅边新度曲,催发寒梢冻蕊。此心与、东君同意。后不如今今非昔,两无言、相对沧浪水。怀此恨,寄残醉。