Greenplum高可用实现场景及运用讨论

本文旨在讨论Greenplum系统的高可用实现场景和使用方法。

一、Master和Standby的高可用

1.当前集群环境中已经为master节点创建了standby节点,状态正常,且记作master节点为node01,standby节点为node04。

2.系统运行中,standby节点失效,可以用直接关闭电源的方法模拟系统与standby失去联系。

此时原集群的master正常,服务访问不受任何影响。

a.standby本身没有问题,服务器重启之后可以重新投入使用,node04重启之后,在master的bin下执行:gpinitstandby -n,任何其他操作都不用,直接把standby节点加入集群队列,并完成元数据同步。如果在使用gpstate -f 发现始终无法完成master数据同步,则将数据库重启到 -m 状态,同样执行gpinitstandby -n操作即可。

b.standby本身有严重问题,无法继续提供standby服务,则需要重新添加一个standby节点,注意如果仍然使用node04这个节点,需要将之前的文件目录和数据目录清除干净,然后重新执行添加standby脚本。

3.系统运行中,master节点失败,同样通过直接关闭node01电源的方式模拟系统与master失去联系。

a.登录standby节点,首先修改pg_hba.conf文件,使该节点能够登录。

b.在standby节点的bin执行:./gpactivatestandby -d /data/gpdata/master/gpseg-1,激活standby的master,使原来的standby成为master。

c.重新查询gpstate -f,原master已经被踢出集群队列,原standby已经成为了master,如果还想把原来的node01加回集群,只能清除node01上gp安装目录和数据目录,重新以standby的形式加入集群。

 

二、primary和mirror的高可用

1.primary和mirror的部署方案有grouped和spread两种,最直观的不同是,使用grouped方式部署,系统可接受的最少segment是1个,即primary和对应的mirror可以部署在同一个节点上,而spread方式的部署可接受的最少segment是2个,即和primary对应的mirror必须部署在其他节点上。也因此处于容错考虑,实际运维场景中多数采用spread方式的部署。

2.当场景中的mirror节点由于意外停止服务,此时不影响数据库的整体访问,假设该mirror没有遭到破坏,直接重新启动即可恢复,则需要在master的bin下执行:gprecover,系统自动将停止服务的mirror调启并加入系统队列。

3.当场景中的primary节点由于意外停止服务,此时系统访问仍然不会感到异常,访问该primary节点的请求直接被转到对应的mirror上,假设停止服务的primary节点没有遭到损坏,直接可以恢复访问,则需要在master的bin中,先执行gprecover,将停止服务的primary重新调启,然后再执行gprecover -r,将原先的primary和mirror的角色重新调整完毕。

4.当某台节点服务器发生掉电或故障,导致该服务器上的primary和mirror均无法访问的时候则要考虑:

a.丢掉的mirror本身不会对他的primary造成影响,而丢掉的primary此时已经将请求转移到了对应的mirror上。

b.重启掉电的服务器,保证hosts节点名称不变,data目录完整的前提下,使用gprecovery 和 gpreconvery -F ,可以把丢掉的节点再重新加回集群。

 

 

三、运用高可用的时机

由前面描述master和standby以及primary和mirror的切换方式,当节点出现服务异常或物理宕机的时候,自动由高可用功能提供连续不断的访问,确保服务不会中断。另外在数据库实际运行过程中,需要实时监控磁盘读写效率,网络延迟等硬件信息,一旦发现哪个节点的磁盘读写效率下降,网络延迟增加,就要考虑利用高可用的方式,在不停止服务的情况下切换新节点,此处我觉得不推荐使用节点收缩的原因是,执行收缩节点时首先要停止正常的访问,并且需要靠备份还原操作完成数据一致,如果数据量比较大,恢复的时间比较长,严重影响服务正常使用。但是使用高可用直接去掉损坏的硬件,之后再通过节点扩展,可以在不停止服务的情况下直接完成节点恢复。

操作方法为,当发现某个物理节点的硬件出现问题,直接关掉这个节点,此时由高可用功能,系统访问不受影响,之后如果能通过人为修复,解决该节点性能下降原因,则直接重启机器,用./gprecover恢复节点访问,如果不能解决而需要换机器,则把新机器的节点名称等信息修改为故障节点一致的内容,更新所有节点的hosts文件,启动新节点,在新节点的相同位置,创建于旧节点完全一致的数据目录,然后执行./gprecover -F ,将关机节点的数据目录恢复到新节点上即可,稍等一会儿系统状态自动恢复正常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
greenplum培训文档是一种教育工具,用于帮助人们学习和理解greenplum数据库系统。greenplum是一个开源的大数据处理平台,具有高性能和可扩展性,广泛应用于大数据分析和数据仓库的建设。 培训文档通常包含以下主要内容: 1. greenplum概述:介绍greenplum的基本原理、架构和特点,帮助学习者了解该系统的背景和优势。 2. 安装和配置:详细说明如何安装和配置greenplum数据库系统,包括硬件和软件要求,并提供步骤和示例。 3. 数据管理:介绍如何创建、导入、导出和删除数据表,以及如何进行数据备份和恢复。还会介绍如何进行数据管理操作,如增删改查等。 4. 查询和优化:讲解如何编写高效的查询语句,以及如何使用greenplum的优化器和索引来提高查询性能。还会介绍一些常见的查询优化技巧和策略。 5. 数据分布和并行处理:解释greenplum中数据的分布方式和分片策略,以及并行查询和并行加载数据的原理。学习者将了解如何设计和优化数据分布以提高系统的并行处理能力。 6. 高可用性和故障恢复:讨论如何配置高可用性和冗余机制以确保系统的可用性,并介绍故障恢复的方法和策略。 7. 监控和性能调优:介绍如何使用greenplum内置的监控工具和指标来监控系统性能,并提供调优技巧和建议来提升系统的处理能力。 8. 典型应用案例:通过一些典型的应用案例,展示如何使用greenplum进行大数据分析和数据处理,帮助学习者了解实际应用场景和解决方案。 总之,greenplum培训文档是一种重要的学习资源,通过提供详细的介绍和实践案例,帮助人们快速上手和掌握greenplum数据库系统,从而应用于实际的大数据处理和分析工作中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你说我听海绵宝宝派大星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值