openGauss一主两备集群异常断电后不能正常启动的解决过程简记

本文主要是介绍openGauss一主两备集群异常断电后不能正常启动的解决过程简记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景

因异常断电后opengauss 5.0.0版本,一主两备集群启动失败。

报错不是主机,由于当时没有截图,查看日志后发现报错是:

定位过程

Day1

1. 尝试用另外两台机器启动每台机器

发现都报错自己不是主机,像极了唐僧被妖怪抓走后互相帅锅的猴子哥仨。

2.手动启动

于是向openGauss交流群里的大佬求助,@半夏提供了一个手动启动的命令。

gs_ctl start -D /opt/huawei/install/data/dn -M primary

执行的时候提示已经有服务在,建议用restart,于是改为用restart执行。

gs_ctl restart -D /opt/huawei/install/data/dn -M primary

同时在两台备机上面执行手动启动,模式为standby。

gs_ctl restart -D /opt/huawei/install/data/dn -M standby

 继续:

执行完后查看集群状态,仍然是不可用。

3.连接上了

尝试本地连接数据库,是可以连接上了。

4. 导出数据

于是第一时间用gs_dump命令把数据先导出来了一份,这样最差的情况也可以卸载重装来恢复。

5. 改成单机版

但是虽然本地能连上,却不能创建表,是个只读事务(read-only transaction),业务还是不可用,期间还想着把业务代码改成单机版的数据库连接先应付应用,因为只读作罢。

6. 业务代码及datastudio工具也都连接不上。

起初我还以为是配置文件的问题,检查和确认了postgres.conf及pg_hba.conf的配置。期间还执行过gs_install,以及gs_preinstall,但是install过程提示集群已安装(因未截图所以无法得到确切的提示,大意是已安装)。

Day2

周一和大佬@半夏连线

1. 检查磁盘空间

首先检查了磁盘空间,也检查了互信,互信正常,篇幅起见截图就只截一个服务器的。

2. 修改为自动切换失败

cm_ctl switchover -a

3. 强制升主

因为不可读,于是把123服务器的数据库又执行了一次强制升主。

cm_ctl set --cmsPromoteMode=PRIMARY_F -I 1

执行后确实改为了Primary,但仍然是不可读,远程也无法连接。

4. 断电后操作

后来求助cm的大佬恩哥,恩哥提供了如下断电后需要执行的操作

4.1  kill掉cm和om的相关进程:

gs_ssh -c "pkill -9 om_monitor -U omm; pkill -9 cm_agent -U omm; pkill -9 cm_server -U omm; touch $GAUSSHOME/bin/cluster_manual_start"

4.2. rm掉cmserver下的gstor, dcf_data和bin下面的配置文件

cd $GAUSSLOG
cd /opt/huawei/data/cmserver/cm_server
gs_ssh -c "rm /opt/huawei/data/cmserver/gstor /opt/huawei/data/cmserver/dcf_data $GAUSSHOME/bin/cluster_dynamic_config -rf"

4.3 rm掉bin下的集群手动启动

3. gs_ssh -c "rm $GAUSSHOME/bin/cluster_manual_start"

Day3

1. 执行切换启动模式为AUTO

cm_ctl set --cmsPromoteMode=AUTO -I 1

2. 于是直接拉恩哥上线

2.1 查看dcc日志:

cd $GAUSSLOG/cm/dcc

vim debug/dcc.dlog

命令截图:

日志截图:

 2.2 看到这个日志后,我提出怀疑是防火墙导致的连接建立失败。

于是在三台服务器上都执行了关防火墙的操作(生产环境不建议这样操作,因是测试环境验证问题,所以关掉防火墙,生产环境开放端口白名单)。

systemctl stop firewalldsystemctl disable firewalld

2.查询防火墙状态

systemctl status firewalld

3. 再查询集群状态,状态即为正常:

cm_ctl query -Cvidp

四、成功解决!

紧张焦虑的两天半,问题终于在两位大佬的帮助下得到了解决,趁热打铁流水账先记录下过程,供各位专家同仁指导参考,再次感谢@半夏和恩哥(音)。

五、总 结

影响集群启动的主要因素:

1. 防火墙是否关闭(或者是否打开端口白名单);

2. 删除进程和文件的3步命令,至于手动启动,并不是必须的步骤;

3. 断电前预先stop集群。

附:一些Linux命令总结:

gs_ssh -c "ps x"

echo $GAUSSHOME

cm_ctl start

cm_ctl stop

cm_ctl query -Cvidp

cd $GAUSSLOG

source .bashrc –加载用户的bash配置文件

ps ux

欢迎小伙伴们交流~

本文作者:赵锋

这篇关于openGauss一主两备集群异常断电后不能正常启动的解决过程简记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/994858

相关文章

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

SpringBoot整合liteflow的详细过程

《SpringBoot整合liteflow的详细过程》:本文主要介绍SpringBoot整合liteflow的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...  liteflow 是什么? 能做什么?总之一句话:能帮你规范写代码逻辑 ,编排并解耦业务逻辑,代码

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

MySQL中的InnoDB单表访问过程

《MySQL中的InnoDB单表访问过程》:本文主要介绍MySQL中的InnoDB单表访问过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、访问类型【1】const【2】ref【3】ref_or_null【4】range【5】index【6】

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM