暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

pcs mysql pcs_add_resource_mysql8.0.sh

xiyun6170 2024-10-18
166
[root@xxoo180109 bin]# cat pcs_add_resource_mysql8.0.sh #!/bin/bash ####################### # init_mysql_resource.sh # Version 0.2 # Changed: 2022-02-25 ####################### dbname=aqcifs vips=168.168.236.28 viplist=(${vips//,/ }) ARRAY=($(lvdisplay |grep VG |awk '{print $3}' )) vgs |grep VolGroup | awk '{print $1}' | sort > /tmp/vg_list.tmp while read VGNAME do if [[ ! "${ARRAY[@]}" =~ $VGNAME ]] ; then echo $VGNAME PREVG=$VGNAME break fi done < /tmp/vg_list.tmp rm -f /tmp/vg_list.tmp echo "VG will be used is $PREVG" port_id=$(echo $PREVG |tr -cd "[0-9]") port="34"$port_id vgchange --addtag pacemaker $PREVG vgchange -ay $PREVG --config 'activation { volume_list = [ "@pacemaker" ]}' echo "Start create LV" lvcreate -l 100%Free -n LV${dbname} ${PREVG} --config 'activation { volume_list = [ "@pacemaker" ] }' lvs dbname=aqcifs PREVG=VolGroup02 pcs resource create vg_${dbname} ocf:heartbeat:LVM-activate volgrpname=${PREVG} exclusive=true --group rg_${dbname} pcs resource create vg_${dbname} ocf:heartbeat:LVM-activate vgname=${PREVG} exclusive=true --group rg_${dbname} # 在redhat8.6 报下面的错误 Error: Agent 'ocf:heartbeat:LVM' is not installed or does not provide valid metadata: crm_resource: Metadata query for ocf:heartbeat:LVM failed: No such device or address, Error performing operation: No such object, use --force to override [root@xxoo180109 bin]# pcs resource create vg_${dbname} ocf:heartbeat:LVM-activate volgrpname=${PREVG} exclusive=true --group rg_${dbname} Error: invalid resource options: 'exclusive', 'volgrpname', allowed options are: 'activation_mode', 'lvname', 'partial_activation', 'tag', 'trace_file', 'trace_ra', 'vg_access_mode', 'vgname', use --force to override Error: required resource options 'vg_access_mode', 'vgname' are missing, use --force to override Error: Errors have occurred, therefore pcs is unable to continue [root@xxoo180109 bin]# pcs resource create vg_${dbname} ocf:heartbeat:LVM-activate vgname=${PREVG} exclusive=true --group rg_${dbname} Error: invalid resource option 'exclusive', allowed options are: 'activation_mode', 'lvname', 'partial_activation', 'tag', 'trace_file', 'trace_ra', 'vg_access_mode', 'vgname', use --force to override Error: required resource option 'vg_access_mode' is missing, use --force to override Error: Errors have occurred, therefore pcs is unable to continue [root@xxoo180109 bin]# pcs resource create vg_${dbname} ocf:heartbeat:LVM-activate volgrpname=${PREVG} exclusive=true --group rg_${dbname} Failed Resource Actions: * vg_aqcifs_start_0 on xxoo180109 'invalid parameter' (2): call=66, status='complete', exitreason='The specified vg_access_mode doesn't match the lock_type on VG metadata!', last-rc-change='2024-02-22 11:28:17 +08:00', queued=0ms, exec=287ms * vg_aqcifs_start_0 on xxoo180110 'invalid parameter' (2): call=41, status='complete', exitreason='The specified vg_access_mode doesn't match the lock_type on VG metadata!', last-rc-change='2024-02-22 11:28:17 +08:00', queued=0ms, exec=336ms 旧版: pcs resource create vg_${dbname} ocf:heartbeat:LVM volgrpname=${PREVG} exclusive=true --group rg_${dbname} 新版: pcs resource create vg_${dbname} ocf:heartbeat:LVM-activate vgname=${PREVG} vg_access_mode=lvmlocked --group rg_${dbname} Failed Resource Actions: * vg_aqcifs_start_0 on xxoo180110 'not configured' (6): call=77, status='complete', exitreason='The volume_list filter must be initialized in lvm.conf for exclusive activation without clvmd', last-rc-change='2024-02-22 13:13:44 +08:00', queued=0ms, exec=438ms pcs resource create vg_${dbname} ocf:heartbeat:LVM-activate vgname=${PREVG} vg_access_mode=system_id --group rg_${dbname} Failed Resource Actions: * vg_aqcifs_start_0 on xxoo180109 'invalid parameter' (2): call=120, status='complete', exitreason='The specified vg_access_mode doesn't match the lock_type on VG metadata!', last-rc-change='2024-02-23 13:17:43 +08:00', queued=0ms, exec=312ms * vg_aqcifs_start_0 on xxoo180110 'invalid parameter' (2): call=105, status='complete', exitreason='The specified vg_access_mode doesn't match the lock_type on VG metadata!', last-rc-change='2024-02-23 13:17:43 +08:00', queued=0ms, exec=417ms pcs resource create vg_${dbname} ocf:heartbeat:LVM-activate vgname=${PREVG} vg_access_mode=shared --group rg_${dbname} Failed Resource Actions: * vg_aqcifs_start_0 on xxoo180110 'not configured' (6): call=112, status='complete', exitreason='Incorrect VG access mode detected!', last-rc-change='2024-02-23 13:18:50 +08:00', queued=0ms, exec=409ms # 成功的命令 pcs resource create vg_${dbname} ocf:heartbeat:LVM-activate vgname=${PREVG} vg_access_mode=tagging --group rg_${dbname} sleep 5 node=$(pcs status |grep vg_${dbname} | awk '{print $NF}') if [[ ! "X$node" = "X$HOSTNAME" ]];then pcs resource move rg_${dbname} echo $node fi sleep 10 if [ "X$?" = "X1" ];then echo "Error LV!" echo "lvcreate -l 100%Free -n LV${dbname} ${PREVG}" exit 100 fi lvs mkdir /my${port} mkfs.xfs /dev/${PREVG}/LV${dbname} pcs resource create fs_${dbname} ocf:heartbeat:Filesystem device="/dev/${PREVG}/LV${dbname}" directory="/my${port}" fstype="xfs" --group rg_${dbname} db_base="/my${port}/${dbname}" nmcli connection show | grep -q 'Wired connection' 2>/dev/null if [ $? -eq 0 ] then nmcli connection show | grep 'Wired connection' | awk '{print $(NF-2)}' | xargs nmcli connection delete &>/dev/null fi id=0 for vip in ${viplist[@]} do echo $vip let id+=1 nmcli connection show | awk '{print $1}' |grep -v -E "NAME|-" > /tmp/port_list.tmp while read ETH do echo $ETH ip=$(ifconfig ${ETH}|grep -E 'inet|netmask' | awk '{print $2}') #netmask=$(ifconfig ${ETH}|grep -E 'inet|netmask' | awk '{print $4}') netmask_len=$(ip addr show ${ETH} |grep "inet" | head -n 1 | awk '{print $2}' | awk -F'/' '{print $2}') ip_net=$(echo ${ip}|awk -F. '{for(i=1;i<=NF;i++){a="";b=$i;while(b){a=b%2 a;b=int(b/2)}printf("%08d%s",a,i!=NF?"":"\n")}}') vip_net=$(echo ${vip}|awk -F. '{for(i=1;i<=NF;i++){a="";b=$i;while(b){a=b%2 a;b=int(b/2)}printf("%08d%s",a,i!=NF?"":"\n")}}') ip_len=$(echo "${ip_net:0:$netmask_len}") vip_len=$(echo "${vip_net:0:$netmask_len}") echo "IP_len:${ip_len},VIP_len:${vip_len}" if [ ${ip_len} = ${vip_len} ] ;then pcs resource create vip${id}_${dbname} ocf:heartbeat:IPaddr2 ip="${vip}" cidr_netmask="${netmask_len}" nic="$ETH" --group rg_${dbname} \ op start timeout=60 op monitor timeout=30s op monitor interval=20 on-fail='restart' #pcs resource group add rg_${dbname} vip_${ETH}${port_id} fi done < /tmp/port_list.tmp rm -f /tmp/port_list.tmp done wget http://xxoo.com.cn/iso/git/public_tools/mysql_8.0.cnf -O /tmp/mysql.cnf > /dev/null repword () { KEYWORD=$1 NEWWORD=$2 FILE=$3 perl -p -i -e "s/$KEYWORD/$NEWWORD/g" $FILE } echo ${vip} | awk -F. '{printf "%d\n", ($1*(2^24))+($2*(2^16))+($3*(2^8))+$4}' repword "myport" "my${port}" "/tmp/mysql.cnf" repword "dbname" "$dbname" "/tmp/mysql.cnf" repword "port=3301" "port=$port" "/tmp/mysql.cnf" serverid=$(echo ${vip} | awk -F. '{printf "%d\n", ($1*(2^24))+($2*(2^16))+($3*(2^8))+$4}') repword "server-id = 30468" "server-id = ${serverid}" "/tmp/mysql.cnf" if [ ! -d "${db_base}/trace" ];then mkdir -p ${db_base}/{data,logs,trace,tmp} mv /tmp/mysql.cnf /${db_base}/my.cnf chown mysql:mysql ${db_base} -R mysqld --defaults-file=${db_base}/my.cnf --initialize-insecure --user=mysql fi pcs resource create my_${dbname} ocf:heartbeat:mysql \ binary="/mysql/app/bin/mysqld_safe" \ client_binary="/mysql/app/bin/mysql" \ config="${db_base}/my.cnf" \ datadir="${db_base}/data" \ pid="${db_base}/mysql.pid" \ log="${db_base}/trace/mysqld_error.log" \ socket="${db_base}/mysql.sock" \ group="mysql" user="mysql" \ --group rg_${dbname} \ op start timeout=180s op stop timeout=180s op monitor interval=20s timeout=60s pcs resource move rg_${dbname} sleep 10 pcs constraint delete `pcs constraint location show --full | grep "rg_${dbname}" |grep "id:cli-ban-" |awk -F':' '{print $NF}' | awk -F')' '{print $1}'` pcs constraint location show --full |grep "id:cli-ban-" | awk -F':' '{print $NF}' | awk -F')' '{print $1}' # pcs constraint location show --full |grep Disabled | awk -F':' '{print $NF}' | awk -F')' '{print $1}'
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论