KingbaseES V8R6集群部署案例之---脚本部署节点环境检查故障

案例说明:

KingbaseES V8R6集群在部署前会对集群节点系统环境进行检测,检测失败后,将中断部署;其中一个检测项,检测节点上是否已经存在数据库服务。如果已经存在数据库服务,则部署将会中断。

适用版本:

KingbaseES V8R6

一、问题现象

在BMJ环境下,通过脚本部署KingbaseES V8R6集群,检测发现其中一个节点运行数据库服务,导致检测失败,部署终止,如下图所示:

二、问题分析

1、检查失败节点数据库服务状态

如下图所示,实际本节点是一台应用节点,只是连接数据库进行了业务访问,并没有运行数据库服务(无监听数据库端口的进程)。

2、查看脚本检测机制

如下图所示:

1)通过netstat检测数据库服务端口,是否有进程访问。

2)如果访问数据库服务端口的进程数是0,将检测成功。

3)非0,如果是BMJ环境,将执行sys_ctl关闭数据库服务。

4)如果数据库服务关闭失败,将检测失败。

3、执行检测语句

如下图所示,此节点访问数据库端口的进程数非0,没有运行数据库服务(监听数据库端口),此系统为BMJ环境,执行sys_ctl关闭数据库将失败,检测结果失败。

三、问题解决

1、通用机环境

如以下测试,此节点没有运行数据库服务,但是访问了数据库服务,通过netstat检测有两个进程访问数据库服务端口。在检测语句里增加‘grep -i listen'过滤后(监听数据库服务的进程),统计结果将为0,可以通过脚本检测。

[kingbase@node103 bin]$ ./ksql -h 192.168.1.102 -U system test
ksql (V8.0)
Type "help" for help. test=# [kingbase@node103 ~]$ netstat -apn 2>/dev/null|grep -w 54321
tcp 0 0 192.168.1.103:10483 192.168.1.102:54321 TIME_WAIT -
tcp 0 0 192.168.1.103:10484 192.168.1.102:54321 ESTABLISHED 3720/./ksql [kingbase@node103 ~]$ netstat -apn 2>/dev/null|grep -w 54321|wc -l
2
# 检测语句增加‘grep -i listen’
[kingbase@node103 ~]$ netstat -apn 2>/dev/null|grep -w 54321|grep -i listen|wc -l
0

如下图所示,增加对数据库端口监听进程的过滤:(可以修改脚本检测语句通过检测)

2、BMJ环境

由于BMJ环境下,脚本不允许被修改(脚本文件已经被hash认证,修改破坏认证校验),对于此种情况只能在业务访问数据库服务结束后部署,或选择另外干净的节点再部署。

四、总结

在部署集群时,尽量选择无其他业务的节点作为数据库服务器,否则将影响集群正常部署;并且部署后业务负载和数据库服务负载叠加,影响业务访问数据库服务的性能。

KingbaseES V8R6集群部署案例之---脚本部署节点环境检查故障的更多相关文章

  1. KingbaseES V8R6集群维护案例之---停用集群node_export进程

    案例说明: 在KingbaseES V8R6集群启动时,会启动node_exporter进程,此进程主要用于向kmonitor监控服务输出节点状态信息.在系统安全漏洞扫描中,提示出现以下安全漏洞: 对 ...

  2. KingbaseES V8R6集群维护案例之--修改securecmdd工具服务端口

    案例说明: 在一些生产环境,为了系统安全,不支持ssh互信,或限制root用户使用ssh登录,KingbaseES V8R6可以使用securecmdd工具支持主机之间的通讯.securecmdd工具 ...

  3. KingbaseES V8R6集群维护案例之---将securecmdd通讯改为ssh案例

    案例说明: 在KingbaseES V8R6的后期版本中,为了解决有的主机之间不允许root用户ssh登录的问题,使用了securecmdd作为集群部署分发和通讯的服务,有生产环境通过漏洞扫描,在88 ...

  4. KingbaseES V8R6集群维护案例之--单实例数据迁移到集群案例

    案例说明: 生产环境是单实例,测试环境是集群,现需要将生产环境的数据迁移到集群中运行,本文档详细介绍了从单实例环境恢复数据到集群环境的操作步骤,可以作为生产环境迁移数据的参考. 适用版本: Kingb ...

  5. KingbaseES V8R6集群维护之--修改数据库服务端口案例

    ​ 案例说明: 对于KingbaseES数据库单实例环境,只需要修改kingbase.conf文件的'port'参数即可,但是对于KingbaseES V8R6集群中涉及到多个配置文件的修改,并且在应 ...

  6. KingbaseES V8R6集群运维案例之---repmgr standby promote应用案例

    案例说明: 在容灾环境中,跨区域部署的异地备节点不会自主提升为主节点,在主节点发生故障或者人为需要切换时需要手动执行切换操作.若主节点已经失效,希望将异地备机提升为主节点. $bin/repmgr s ...

  7. KingbaseES V8R6集群管理运维案例之---repmgr standby switchover故障

    案例说明: 在KingbaseES V8R6集群备库执行"repmgr standby switchover"时,切换失败,并且在执行过程中,伴随着"repmr stan ...

  8. kingbaseES V8R6集群备份恢复案例之---备库作为repo主机执行物理备份

    ​ 案例说明: 此案例是在KingbaseES V8R6集群环境下,当主库磁盘空间不足时,执行sys_rman备份,将集群的备库节点作为repo主机,执行备份,并将备份存储在备库的磁盘空间. 集群架构 ...

  9. KingbaseES V8R6集群外部备份案例

    案例说明: 本案例采用sys_backup.sh执行物理备份,备份使用如下逻辑架构:集群采用CentOS 7系统,repo采用kylin V10 Server. 一主一备+外部备份 此场景为主备双机常 ...

  10. KingbaseES V8R3集群维护案例之---在线添加备库管理节点

    案例说明: 在KingbaseES V8R3主备流复制的集群中 ,一般有两个节点是集群的管理节点,分为master和standby:如对于一主二备的架构,其中有两个节点是管理节点,三个数据节点:管理节 ...

随机推荐

  1. Java Solon v2.7.0 发布

    Java Solon 是什么框架? Java "生态级"应用开发框架.从零开始构建,有自己的标准规范与开放生态.(历时七年,具备全球第二级别的生态规模) 相对于 Spring,有什 ...

  2. 使用RegSetValueEx创建键值

    #include <iostream> #include <string> #include <sstream> #include <fstream> ...

  3. 【Android 逆向】【攻防世界】easyjni

    1. apk 安装到手机,提示需要输入flag 2. jadx打开apk public class MainActivity extends c { static { System.loadLibra ...

  4. 糟糕,CPU100%了!!!

    前言 cpu使用率100%问题,是一个让人非常头疼的问题.因为出现这类问题的原因千奇百怪,最关键的是它不是必现的,有可能是系统运行了一段时间之后,在突然的某个时间点出现问题. 今天特地把我和同事,之前 ...

  5. FFmpeg开发笔记(七):ffmpeg解码音频保存为PCM并使用软件播放

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  6. dataclass装饰器

    简介 根据定义dataclass时指"一个带有默认值的可变的namedtuple" 简单来说,就是你定义一个很普通的类,@dataclass装饰器可以 帮你生成__repr__._ ...

  7. django中从你的代码运行管理命令call_command

    # 主要用法就是调用django自定义的Command命令 # 语法 django.core.management.call_command(name,*args,**options) - name ...

  8. NodeJS内存泄露

    p.p1 { margin: 0; font: 13px "Helvetica Neue"; color: rgba(0, 0, 0, 1) } p.p2 { margin: 0; ...

  9. Jenkins Pipeline:根据参数设置环境变量

    pipeline { agent any environment { //以上自定义的参数 project = "$params.PROJECT" } stages { stage ...

  10. ymal & properties 赋值特性 JSR303数据校验

    基本语法 1.空格不能省略 2.以缩进来控制层级关系,只要是左边对齐的一列数据都是同一个层级的. 3.属性和值的大小写都是十分敏感的. key:空格value 字面量直接写在后面就可以 , 字符串默认 ...