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

opengauss5.0 CM新特性之事件触发器

原创 qi_yu 2023-06-29
367

特性介绍

CM支持事件触发器,即在特定事件发生后,由CM自动触发用户自定义的脚本,执行相应的操作。

使用说明

事件触发器通过配置cm_agent的参数event_triggers来定义,参数类型为以字符串表示的json类型。
配置形式为:

'{"trigger_type_1”:"trigger_value_1”,…,"trigger_type_n”:"trigger_value_n”}' 
复制

其中:

  • trigger_type为事件触发器类型,当前支持的事件触发器类型为:on_start、on_stop、on_failover、on_switchover
  • trigger_value为发生对应事件时待执行的用户自定义触发器脚本,自定义脚本的输出会重定向至cm_agent日志目录下的system-callxxx.log中。

约束条件

trigger_value即自定义脚本,必须为真实存在的shell脚本,且为绝对路径,并且对当前用户至少有读取和执行权限。
使用cm_ctl set命令配置该参数时,参数值必须符合json格式,并且将json类型表示为字符串类型,中间不能包含换行和空格。
参数值最大长度为1024。
用户需要保证自定义脚本能够正确执行。

配置样例

‘{“on_start”:”/dir/on_start.sh",“on_stop”:”/dir/on_stop.sh",“on_failover”:”/dir/on_failover.sh",“on_switchover”:”/dir/on_switchover.sh"}’

测试

  1. 编辑测试脚本(以stop为例)
vi application.sh

#!/bin/bash
current_path=`dirname $(readlink -f $0)`
app_name="opengauss"
pid=’’ 
function is_running(){
       pid=`ps aux|grep bin/gaussdb|grep -v grep|awk '{print $2}'` 
       if [ -z $pid ] ;then 
                       return 0
                       echo "0"
       else
                       return 1
                       echo "1"
       fi
}
function stop(){
       is_running
       if [ $? -eq '0' ]; then
               return 0  
       else
               kill -9 $pid 
               return 1
       fi
}
复制

vi on_stop.sh

#!/bin/bash
current_path=`dirname $(readlink -f $0)`
. $current_path/application.sh
function stop_app(){
   sleep 1s;date;
   is_running
       if [ $? -eq '0' ]; then
               echo "${app_name} is not running"    
       else
               echo "${app_name} is running"
       fi
}
stop_app
echo "stop success!!!!!"

复制
  1. 配置agent参数
cm_ctl set --param --agent -kevent_triggers='{"on_start":"/home/omm/script_qy/on_start.sh","on_stop":"/home/omm/script_qy/on_stop.sh","on_failover":"/home/omm/script_qy/on_failover.sh","on_switchover":"/home/omm/script_qy/on_switchover.sh"}'
复制
  1. 执行stop
cm_ctl stop -n 1
复制
  1. 查看system_call-current.log
    image.png
最后修改时间:2023-12-18 10:53:15
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论