Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >故障分析 | Greenplum 集群 standby 故障处理

故障分析 | Greenplum 集群 standby 故障处理

原创
作者头像
爱可生开源社区
发布于 2022-12-07 05:24:45
发布于 2022-12-07 05:24:45
9140
举报

作者:杨文

DBA,负责客户项目的需求与维护,没有擅长,会点数据库,不限于MySQLRedisCassandra、GreenPlum、ClickHouse、Elastic、TDSQL等等。

本文来源:原创投稿

*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


1、背景

客户测试环境Greenplum集群中,standby节点数据目录被误删除,导致standby节点不可用。如果此时由于其它各种原因导致master节点也不可用,则集群将无法对外提供服务,因此现需尽快恢复standby节点。

2、Greenplum集群架构简单介绍

1)库由Master Severs和Segment Severs组成。

2)Master Server:

  • Greenplum数据库的Master是整个Greenplum数据库系统的入口,它接受连接和SQL查询并且把工作分布到Segment实例上。
  • Master是全局系统目录的所在地。存储全局系统元数据信息。
  • Master会认证客户端连接、处理到来的SQL命令、在Segment之间分布工作负载、协调每一个Segment返回的结果以及把最终结果呈现给客户端程序。

3)Segment Severs:

  • Greenplum数据库的Segment实例是独立的数据库,每一个都存储了数据的一部分并且执行查询处理的主要部分。
  • 用户定义的表及其索引会分布在Greenplum数据库系统中可用的Segment上,每一个Segment都包含数据的不同部分。服务于Segment数据的数据库服务器进程运行在相应的Segment实例之下。用户通过Master与一个Greenplum数据库系统中的Segment交互。
  • 当某个segment宕掉后,启用对应的mirror segment提供服务,保证数据不丢失。

3、本地模拟客户环境:

3.1、本地Greenplum集群环境:

  • 1台Master;
  • 1台standby Master;
  • 5台segment计算节点,每个节点4个段,每个段有镜像,一共是40个段。

3.2、模拟master standby坏掉:

代码语言:txt
AI代码解释
复制
[root@standby01 ~]$ su - gpadmin
[gpadmin@standby01 ~]$ rm -rf /greenplum/gpdata/master/*
[gpadmin@standby01 ~]$ exit
[root@standby01 ~]$ reboot
[root@standby01 ~]$ su - gpadmin
[gpadmin@standby01 ~]$ ps -ef |grep postgres
gpadmin 17372 17298  0 18:47 pts/0  00:00:00 grep --color=auto postgres
[gpadmin@standby01 ~]$ cd /greenplum/gpdata/master/
[gpadmin@standby01 master]$ ll
总用量 0

4、故障分析及解决:

4.1、检查状态:

代码语言:txt
AI代码解释
复制
[gpadmin@master01 ~]$ gpstate -f
截取部分有用信息:
20220508:18:37:03:044858 gpstate:master01:gpadmin-[INFO]:-obtaining Segment details from master...
20220508:18:37:08:044858 gpstate:master01:gpadmin-[INFO]:-Standby master details
20220508:18:37:08:044858 gpstate:master01:gpadmin-[INFO]:-----------------------
20220508:18:37:08:044858 gpstate:master01:gpadmin-[INFO]:-    Standby address        = standby01 
20220508:18:37:08:044858 gpstate:master01:gpadmin-[INFO]:-    Standby data directory = /greenplum/gpdata/master/gpseg-1
20220508:18:37:08:044858 gpstate:master01:gpadmin-[INFO]:-    Standby port           = 5432
20220508:18:37:08:044858 gpstate:master01:gpadmin-[WARNING]:- Standby PID            = 0                           <<<<<<<<
20220508:18:37:08:044858 gpstate:master01:gpadmin-[WARNING]:- Standby status         = Standby process not running <<<<<<<<
20220508:18:37:08:044858 gpstate:master01:gpadmin-[INFO]:---------------------------------------------------------
20220508:18:37:08:044858 gpstate:master01:gpadmin-[INFO]:--pg_stat.replication
20220508:18:37:08:044858 gpstate:master01:gpadmin-[INFO]:---------------------------------------------------------
20220508:18:37:08:044858 gpstate:master01:gpadmin-[INFO]:-No entries found.
20220508:18:37:08:044858 gpstate:master01:gpadmin-[INFO]:---------------------------------------------------------

可以看到:Standby status = Standby process not running。

代码语言:txt
AI代码解释
复制
[gpadmin@master01 ~]$ psql -c "select * from gp_segment_configuration order by content asc,dbid;"
--同样,能够看到Standby节点down掉了。
代码语言:txt
AI代码解释
复制
[gpadmin@master01 ~]$ gpstate
截取部分有用信息:
20220508:18:42:46:045284 gpstate:master01:gpadmin-[INFO]:-Greenplum instance status summary
20220508:18:42:47:045284 gpstate:master01:gpadmin-[INFO]:----------------------------------------------------
20220508:18:42:47:045284 gpstate:master01:gpadmin-[INFO]:-   Master instance                            = Active
20220508:18:42:47:045284 gpstate:master01:gpadmin-[INFO]:-   Master standby                             = standby01 
20220508:18:42:47:045284 gpstate:master01:gpadmin-[WARNING]:-Standby master status                      = Standby host DOWN <<<<<<<<
20220508:18:42:47:045284 gpstate:master01:gpadmin-[INFO]:-   Total segment instance count from metadata = 40
20220508:18:42:47:045284 gpstate:master01:gpadmin-[INFO]:----------------------------------------------------
20220508:18:42:47:045284 gpstate:master01:gpadmin-[INFO]:-   Primary Segment Status
20220508:18:42:47:045284 gpstate:master01:gpadmin-[INFO]:----------------------------------------------------

可以看到Standby status = Standby host DOWN。

4.2、清除有故障的主机的(备库)配置信息:

代码语言:txt
AI代码解释
复制
[gpadmin@master01 ~]$ gpinitstandby -r
执行过程省略,但有个选项需要确认:
Do you want to continue with deleting the standby master? Yy|Nn (default=N):
> y

4.3、添加standby库:

代码语言:txt
AI代码解释
复制
[gpadmin@master01 ~]$ gpinitstandby -s standby01 
执行过程省略,但有个选项需要确认:
Do you want to continue with standby master initialization? Yy|Nn (default=N):
> y

4.4、确认集群状态:

代码语言:txt
AI代码解释
复制
[gpadmin@master01 ~]$ gpstate -f
截取部分有用信息:
20220508:18:56:33:044858 gpstate:master01:gpadmin-[INFO]:-Standby master details
20220508:18:56:33:044858 gpstate:master01:gpadmin-[INFO]:-----------------------
20220508:18:56:33:044858 gpstate:master01:gpadmin-[INFO]:-    Standby address        = standby01 
20220508:18:56:33:044858 gpstate:master01:gpadmin-[INFO]:-    Standby data directory = /greenplum/gpdata/master/gpseg-1
20220508:18:56:33:044858 gpstate:master01:gpadmin-[INFO]:-    Standby port           = 5432
20220508:18:56:33:044858 gpstate:master01:gpadmin-[INFO]:- Standby PID            = 18067                           <<<<<<<<
20220508:18:56:33:044858 gpstate:master01:gpadmin-[INFO]:- Standby status         = Standby host passive
20220508:18:56:33:044858 gpstate:master01:gpadmin-[INFO]:---------------------------------------------------------
20220508:18:56:33:044858 gpstate:master01:gpadmin-[INFO]:--pg_stat.replication
20220508:18:56:33:044858 gpstate:master01:gpadmin-[INFO]:---------------------------------------------------------
20220508:18:56:33:044858 gpstate:master01:gpadmin-[INFO]:--WAL Sender State:streaming
20220508:18:56:33:044858 gpstate:master01:gpadmin-[INFO]:--Sync state:sync
代码语言:txt
AI代码解释
复制
[gpadmin@master01 ~]$ gpstate
截取部分有用信息:
20220508:18:42:47:045284 gpstate:master01:gpadmin-[INFO]:-   Master instance                            = Active
20220508:18:42:47:045284 gpstate:master01:gpadmin-[INFO]:-   Master standby                             = standby01
20220508:18:42:47:045284 gpstate:master01:gpadmin-[INFO]:-   Standby master status                      = Standby host passive
20220508:18:42:47:045284 gpstate:master01:gpadmin-[INFO]:-   Total segment instance count from metadata = 40
代码语言:txt
AI代码解释
复制
[gpadmin@master01 ~]$ psql -c "select * from gp_segment_configuration order by content asc,dbid;"
只截取关键信息:
dbid | content | role | preferred_role | mode | status | port | hostname  | address   | datadir
------------------------------------------------------------------------------------------------------------------------
   1 |      -1 | p    | p              | n    | u      | 5432 | master01  | master01  | /greenplum/gpdata/master/gpseg-1
  43 |      -1 | m    | m              | s    | u      | 5432 | standby01 | standby01 | /greenplum/gpdata/master/gpseg-1

4.5、检测standby:

代码语言:txt
AI代码解释
复制
[gpadmin@standby01 ~]$ ps -ef |grep postgres
gpadmin  18067      1  0  18:56 ?      00:00:03  /usr/local/greenplum-db-6.7.0/bin/postgres -D /greenplum/gpdata/master/gpseg-1 -p 5432 -E
gpadmin  18208  18067  0  18:56 ?      00:00:00  postgres: 5432, master logger process
gpadmin  18209  18067  0  18:56 ?      00:00:00  postgres: 5432, startup process recovering 00000001000000000000000A
gpadmin  18217  18067  0  18:56 ?      00:00:00  postgres: 5432, checkpointer process
gpadmin  18218  18067  0  18:56 ?      00:00:00  postgres: 5432, writer process
gpadmin  18219  18067  0  18:56 ?      00:00:00  postgres: 5432, wal receiver process streaming 0/281E5D60
gpadmin  18586  17298  0  19:06 pts/0  00:00:00  grep --color=auto postgres
代码语言:txt
AI代码解释
复制
[gpadmin@standby01 master]$ pwd
/greenplum/gpdata/master
[gpadmin@standby01 master]$ ls
gpseg-1
[gpadmin@standby01 masterj$ cd gpseg-1/
[gpadmin@standby01 gpseg-1]$ ls
backup_label.old        pg_hba.conf    pg_tblspc
base                    pg_ident.conf  pg_twophase
global                  pg_log         pg_utilitymodedtmredo
gpexpand.status_detail  pg_logical     PG_VERSION
gpmetrics               pg_multixact   pg_xlog
gpperfmon               pg_notify      postgresql.auto.conf
gpsegconfig_dump        pg_replslot    postgresql.conf
gpssh.conf              pg_serial      postmaster.opts
interna1.auto.conf      pg_snapshot    spostmaster.pid
pg_clog  pg_stat        recovery.conf
pg_distributedlog       pg_stat_tmp
pg_dynshmem             pg_subtrans

可以看到standby数据恢复,并且集群状态恢复正常。

5、额外补充:

如果Greenplum集群中master节点故障,处理思路:

1)先把standby提升为新master,确保集群第一时间可用,提供对外服务;

2)修复旧master,并添加到集群中成为新standby;

3)若要回切成原master-standby状态:下线新master -> 提升原master节点 -> 新增standby节点。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
全球最具影响力的十大机器人减速机品牌
近年来人力和原材料的上涨给中国制造业带来了巨大的压力,加上发达国家正试图用高度自动化技术来取代中国的制造,一些觉醒的企业已经开始升级自动化,提高工作的生产效率和降低成本。机器自动化已经成为全球制造业的发展的方向,尤其是机器人产业得到了迅速的发展。据预测到2015年,中国机器人市场需求将达35000台,占全球比重16.9%,成为全球规模最大的市场。 有如此巨大的市场,自动化行业巨头都在虎视眈眈,纷纷进入中为布局。中国各地同时掀起了机器人产业大潮,但与外国机器人相比竞争力差距很大,尤其是机器人的零部件,
机器人网
2018/04/19
1.9K0
全球最具影响力的十大机器人减速机品牌
温度和湿度对机床有什么影响?
夏天到了,温度和湿度对加工的影响也越来越大,精密数控车床一般要求使用环境恒温,以确保机床的工作精度,一般要求恒温20摄氏度左右,相对温度小于80%。大量的实践证明,夏季高温时期,数控系统的故障率大大增加,很易造成碰撞事故的发生。
lrglu
2022/06/30
1.3K0
你重视了吗?CNC加工中心维护保养方法
CNC设备的正确操作和维护保养能够防止机床非正常磨损,避免机床突发故障。对机床的精心维护保养,可以保持机床加工精度的长期稳定,延长机床使用寿命。这项工作必须从工厂的管理层面高度重视并执行!
UG数控编程
2020/06/03
1.4K0
应用于车身传输领域的机器人技术
随着汽车市场竞争的加剧,汽车生产企业需要提高生产线的效率和柔性化程度,为此,工业机器人得到推广使用。为了更好地适应多车型、高节拍的连续生产,ABB基于机器人技术开发了一种全新的车身传输系统,在焊装车间得到推广应用。   随着中国改革开放的持续深入以及产业升级的不断加速,中国的汽车产量已跃居全球领先地位,生产企业的数量不断增加,国内汽车保有量持续增长,汽车市场将逐渐趋于饱和。市场竞争加剧,人们对于产品品质、种类等各方面的要求不断提高。这些都要求汽车生产企业尽可能运用现有设备快速生产出多种类型的产品
机器人网
2018/04/24
7450
应用于车身传输领域的机器人技术
工业机器人常用电机驱动系统的分类与要求
机器人电动伺服驱动系统是利用各种电动机产生的力矩和力,直接或间接地驱动机器人本体以获得机器人的各种运动的执行机构。 对工业机器人关节驱动的电动机,要求有最大功率质量比和扭矩惯量比、高起动转矩、低惯量和较宽广且平滑的调速范围。特别是像机器人末端执行器(手爪)应采用体积、质量尽可能小的电动机,尤其是要求快速响应时,伺服电动机必须具有较高的可靠性和稳定性,并且具有较大的短时过载能力。这是伺服电动机在工业机器人中应用的先决条件。 一、机器人对关节驱动电机的主要要求规纳如下 1.快速性 电动机从获得指令信
机器人网
2018/04/16
1.7K0
工业机器人常用电机驱动系统的分类与要求
如何让数控机床长久稳定加工?工厂须重视!
有些工厂的数控机床经常不稳定、故障,导致生产计划受影响、产品品质不稳定,总是处在“机床坏了就修”的循环中。而管理人员对设备的操作和维护保养漠不关心,没能从根源上去重视问题。
lrglu
2022/05/16
4290
技术猿 | 伺服在工业机器人技术中的运用
自2008年以来,工业机器人在中国的销量迅速放大,2012年销售量已经达到23000台。工业机器人保有量从2000年的3500台跃升至近10万台。这些增长需求主要来自于汽车、金属、电子和机械制造等行业。 ABB精密组装中心运营经理迟永琳表示:“在所有应用领域中,工业机器人的渗透率还不足12%,市场需求潜力巨大,尤其在中国市场,随着制造成本增加、人口红利开始消退,以机器人替代人工的需求上升,将带动整个制造设备和技术升级。” 机器人产业的增长如火如荼,遍地开花,大量机床厂家、伺服厂家和其他有条件的企业都纷纷
机器人网
2018/04/13
7260
看完10张动图,你就明白了身边复杂的机械原理
机器是由一个或一个以上的机构组成,用来作有用的功或完成机械能与其他形式的能量之间的转换。不同的机器往往由有限的几种常用机构组成,如内燃机、压缩机和冲床等的主体机构都是曲柄滑块机构。这些机构的运动不同于一般力学上的运动,它只与其几何约束有关,而与其受力、构件质量和时间无关。 机构学的研究对象是机器中的各种常用机构,如连杆机构、凸轮机构、齿轮机构、螺旋机构和间歇运动机构(如棘轮机构、槽轮机构等)以及组合机构等。它的研究内容是机构结构的组成原理和运动确定性,以及机构的运动分析和综合。机构学在研究机构的运动时仅从几
机器人网
2018/04/23
2.9K0
看完10张动图,你就明白了身边复杂的机械原理
详解|工业机器人内部机构详解
小编今天给大家讲讲工业机器人内部结构的知识,教教大家控制、驱动、传动、执行等一些有关于机器人的基础知识。
小白学视觉
2022/04/06
9720
详解|工业机器人内部机构详解
电动缸入门知识普及
随着科技快速发展,伺服电动缸系统在许多设备工业中应用广泛。伺服电动缸是将伺服电机与丝杠一体化设计的模块化产品,具有高速响应、定位精确、运行平稳等特点。常见类型有直流伺服电动缸、交流伺服电动缸和步进伺服电动缸等。
剑指工控
2021/11/09
1.5K0
技术猿 | 工业机器人常用精密减速器技术分析
工业机器人是一种装备有记忆装置和末端执行装置的、能够完成各种移动或工艺来代替人类劳动的通用机器。通常在生产中能代替工人做某些单调、频繁和重复的长时间作业,或是危险、恶劣环境下的作业。它能够提升生产的效率和产品的质量,是企业补充和替代劳动力的有效方案。 目前工业机器人发展特点是高速、精确、机身机构紧凑、多自由度和提高刚性,重点领域还要求重载或响应速度快。例如汽车整车生产的电焊机器人负载大部分在150-300Kg间,而电子领域的装配机器人则需要快速的响应流水线上的配件。 减速器在机械传动领域是连接动力源和执
机器人网
2018/04/13
9680
技术猿 | 工业机器人常用精密减速器技术分析
五大误区+十大标配,工厂自动化改造不仅仅需要机器人
“机器人革命”开始,不少企业就已踏上工厂自动化的“不归路”,无人工厂也似乎渐渐成为未来工厂的发展趋势。但全自动化流水线却零星地出现大型企业中,尽管政府大力推动机器人换人政策,不少企业领了国家发放的津贴,硬是把设备“晾”在生产车间里。 自动化改造我已使出洪荒之力,为什么收效甚微? 这五大误区你必须知道! 误区一:引入机器人就是进行自动化升级改造 机器人的应用是自动化升级改造最具代表性的一个方面。但不等于能解决一切问题。气动液压控制及非标设备自动化也是实现自动化非常重要的手段之一。尤其针对一些特殊应用,
机器人网
2018/04/25
9180
五大误区+十大标配,工厂自动化改造不仅仅需要机器人
移动机器人设计与实践-基础概念汇总
人类社会经历过农业时代(最强代表汉唐)-工业时代(最强代表日不落帝国)-信息时代(最强代表美利坚合众国),目前全力升级到智能时代(刚开始)。 
zhangrelay
2023/04/27
6650
移动机器人设计与实践-基础概念汇总
工业机器人(三)——控制方案
控制方案 控制系统是机器人重要组成部分,其主要功能是接收来自传感器的检测信号,驱动机械臂中电动机工作,进而带动机械臂移动到预定位置。本推文通过简单的实例(微型舵机)对机器人控制的简要过程进行介绍,主要
联远智维
2022/01/20
9380
工业机器人(三)——控制方案
工业机器人的腕部和手部结构
工业机器人的腕部起到支承手部的作用,机器人一般具有6个自由度才能使手部(末端 操作器)达到目标位置和处于期望的姿态,手腕上的自由度主要是实现所期望的姿态。作为 一种通用性较强的自动化作业设备,工业机器人的末端执行器(手部)是直接执行作业任务 的装置,大多数手部的结构和尺寸都是根据其不同的作业任务要求来设计的,从而形成了多 种多样的结构形式。 1.腕部结构的基本形式和特点 手腕是连接末端执行器和手臂的部件,通过手腕调整或改变工件的方位,它具有独立的 自由度,以便机器人末端执行器适应复杂的
机器人网
2018/04/24
7.3K0
工业机器人的腕部和手部结构
详解:机器人手腕结构图
机器人手腕是连接末端操作器和手臂的部件,它的作用是调节或改变工件的方位, 因而它具有独立的自由度,以使机器人末端操作器适应复杂的动作要求。  工业机器人一般需要6个自由度才能使手部达到目标位置并处于
机器人网
2018/04/24
5.6K0
详解:机器人手腕结构图
什么是伺服电机,伺服电机知识汇总
“伺服”一词源于希腊语“奴隶”的意思。“伺服电机”可以理解为绝对服从控制信号指挥的电机:在控制信号发出之前,转子静止不动;当控制信号发出时,转子立即转动;当控制信号消失时,转子能即时停转。 伺服电机是
机器人网
2018/05/04
1.9K0
什么是伺服电机,伺服电机知识汇总
如何成功制作你的第一个机器人?
成功的关键就是动机。为什么要制作机器人呢?你的动机是什么呢?看起来很Cool?还是想参加像battlebots那样的比赛?机器人学能教你太多的知识,其涵盖了电子科学、机械学、控制理论、程序设计甚至动物行为学和人类心理学。在开始这个教程前先问问自己为什么要制作机器人,你的目的和动机是什么,否则当你半路 退出时还不知道自己到底为什么开始。 OK既然你已经知道自己为什么要制作一个机器人了,那么让我们谈谈制作机器人你所需要知道的东西… 成功完成第一个机器人总是最难的。所以最好要采用KISS(Keep It Simp
机器人网
2018/04/20
2.7K0
如何成功制作你的第一个机器人?
如何选择机器人电机
在机器人中,执行机构一般分为液压驱动和电机驱动两种类型,其中又以电机驱动最为常见。本文主要讨论一般机器人驱动机构中电机的选择问题。 机器人中常用的电机分为有刷直流电机、无刷直流电机、永磁同步电机、步进电机等。其中在中小型机器人(尺寸在15cm-30cm)中,由于价格便宜,定位精度高,直流电机以及无刷直流电机最为常见。本文主要讨论直流电机的选择方法。 第一部分:电机要求 直流电机简介: 在市场上,存在着多种多样的直流电机。据不完全估计,单就国内就有上千家电机生产厂家。更不要提日本、德国等老牌电机生产强
机器人网
2018/04/24
2K0
如何选择机器人电机
工业机器人的关节(精密减速机)到底是什么结构呢?
现今工业机器人的先进程度让人叹为观止,尤其是那些灵动的5轴6轴机器人,具有如此多的关节,还能够做到运动和指令的精确传输,各部位紧密配合完成复杂的工作,让人不禁好奇它们的传动系统到底是怎样的,关节到底是
机器人网
2018/04/25
1.6K0
工业机器人的关节(精密减速机)到底是什么结构呢?
推荐阅读
相关推荐
全球最具影响力的十大机器人减速机品牌
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档