KingbaseES V8R6集群部署案例之---脚本部署节点环境检查故障
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集群部署案例之---脚本部署节点环境检查故障的更多相关文章
- KingbaseES V8R6集群维护案例之---停用集群node_export进程
案例说明: 在KingbaseES V8R6集群启动时,会启动node_exporter进程,此进程主要用于向kmonitor监控服务输出节点状态信息.在系统安全漏洞扫描中,提示出现以下安全漏洞: 对 ...
- KingbaseES V8R6集群维护案例之--修改securecmdd工具服务端口
案例说明: 在一些生产环境,为了系统安全,不支持ssh互信,或限制root用户使用ssh登录,KingbaseES V8R6可以使用securecmdd工具支持主机之间的通讯.securecmdd工具 ...
- KingbaseES V8R6集群维护案例之---将securecmdd通讯改为ssh案例
案例说明: 在KingbaseES V8R6的后期版本中,为了解决有的主机之间不允许root用户ssh登录的问题,使用了securecmdd作为集群部署分发和通讯的服务,有生产环境通过漏洞扫描,在88 ...
- KingbaseES V8R6集群维护案例之--单实例数据迁移到集群案例
案例说明: 生产环境是单实例,测试环境是集群,现需要将生产环境的数据迁移到集群中运行,本文档详细介绍了从单实例环境恢复数据到集群环境的操作步骤,可以作为生产环境迁移数据的参考. 适用版本: Kingb ...
- KingbaseES V8R6集群维护之--修改数据库服务端口案例
案例说明: 对于KingbaseES数据库单实例环境,只需要修改kingbase.conf文件的'port'参数即可,但是对于KingbaseES V8R6集群中涉及到多个配置文件的修改,并且在应 ...
- KingbaseES V8R6集群运维案例之---repmgr standby promote应用案例
案例说明: 在容灾环境中,跨区域部署的异地备节点不会自主提升为主节点,在主节点发生故障或者人为需要切换时需要手动执行切换操作.若主节点已经失效,希望将异地备机提升为主节点. $bin/repmgr s ...
- KingbaseES V8R6集群管理运维案例之---repmgr standby switchover故障
案例说明: 在KingbaseES V8R6集群备库执行"repmgr standby switchover"时,切换失败,并且在执行过程中,伴随着"repmr stan ...
- kingbaseES V8R6集群备份恢复案例之---备库作为repo主机执行物理备份
案例说明: 此案例是在KingbaseES V8R6集群环境下,当主库磁盘空间不足时,执行sys_rman备份,将集群的备库节点作为repo主机,执行备份,并将备份存储在备库的磁盘空间. 集群架构 ...
- KingbaseES V8R6集群外部备份案例
案例说明: 本案例采用sys_backup.sh执行物理备份,备份使用如下逻辑架构:集群采用CentOS 7系统,repo采用kylin V10 Server. 一主一备+外部备份 此场景为主备双机常 ...
- KingbaseES V8R3集群维护案例之---在线添加备库管理节点
案例说明: 在KingbaseES V8R3主备流复制的集群中 ,一般有两个节点是集群的管理节点,分为master和standby:如对于一主二备的架构,其中有两个节点是管理节点,三个数据节点:管理节 ...
随机推荐
- Ubuntu下利用MWAN+LFTP解除单mac速度限制
起因 公司网络限制了单个mac地址的速度, 而日常经常需要从线上环境下载几个G的数据到本地, 通过FileZilla每次需要一个多小时, 非常不方便 解决方案 WAN聚合 本地网口连接OpenWRT路 ...
- thinkphp集成editormd一系列实战
介绍 最近php搞了个博客,需要集成markdown编辑器(富文本的太low了,效率也低),用的是时下比较火的editormd,除了基本的文档编辑我这里还实现了几个自己的需求: 使用ctrl-v实现将 ...
- centos7安装postgresql9.6
1.安装yum源 yum install -y https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg- ...
- JS实现提示文本框可输入剩余字数
最近在设计写博客功能时,涉及到留言框输入字数限制,需要给用户剩余数字提示. 参考文章:https://www.cnblogs.com/crazytrip/p/4968230.html 实现效果: 源码 ...
- Innodb存储引擎的文件
目录 概述 参数文件 日志文件 错误日志 慢查询日志 查询日志 二进制日志 binary log 二进制日志的配置 二进制日志的作用 二进制日志的保存 socket 套接字文件 pid文件 MySQL ...
- 团队协作如何确保项目Node版本的一致性?
前言 想必大家在工作过程中都遇到过node版本带来的各种各样的问题,对于团队协作项目,你不能保证所有人的本地node版本都相同,所以在项目文档中往往会写上以下内容: 为与线上环境一致,请保证以下版本 ...
- vue运行时报错Error from chokidar
原文博客地址 Error from chokidar (/home/youyou/文档/vue/vuetask01/node_modules/lodash): Error: ENOSPC: Syste ...
- 【LeetCode动态规划#15】最长公共子序列II
最长公共子序列(二) 描述 给定两个字符串str1和str2,输出两个字符串的最长公共子序列.如果最长公共子序列为空,则返回"-1".目前给出的数据,仅仅会存在一个最长的公共子序列 ...
- 【LeetCode二叉树#02】二叉树层序遍历(广度优先搜索),十合一专题
二叉树层序遍历(广度优先搜索) 102 二叉树的层序遍历 力扣题目链接(opens new window) 给你一个二叉树,请你返回其按 层序遍历 得到的节点值. (即逐层地,从左到右访问所有节点). ...
- 【Azure Developer】Java代码访问Key Vault Secret时候的认证问题,使用 DefaultAzureCredentialBuilder 或者 ClientSecretCredentialBuilder
问题描述 使用Java SDK获取Key Vault Secret机密信息时,需要获取授权.通常是使用AAD的注册应用(Client ID, Tenant ID, Client Secret)来获取 ...