OushuDB 管理指南 集群高可用(3)

简介: 如果主节点发生故障, 日志同步将停止。此时必须激活备用主节点。激活备用主节点后, Oushu Database 将重建最后一成功提交的事务时的状态。

image.png

故障切换

如果主节点发生故障, 日志同步将停止。此时必须激活备用主节点。激活备用主节点后, Oushu Database 将重建最后一成功提交的事务时的状态。

手动激活备用主节点

  1. 确保已为系统配置了备用主节点。
  2. 请登录到 Oushu Database 备用主节点并激活:
oushu_master$ hawq activate standby

激活备用主节点后, 它将成为 Oushu Database 群集的活跃的主节点。

  1. (可选)配置新的备用主节点。有关说明, 请参阅  「向现有群集添加备用主节点」- http://www.oushu.com/docs/ch/master-mirroring.html#id4  。
  2. 通过在主节点上执行以下命令来检查 Oushu Database 群集的状态:
oushu_master$ hawq state

新激活的主节点的状态应为 active。如果配置了新的备用主节点, 则备用主节点状态为 passive。当未配置备用主节点时, 该命令将显示 -No entries found, 指示没有配置主节点。

  1. 查询该 gp_segment_configuration 表来验证 segment 节点是否已将自己注册到新的 master 节点:
oushu_master$ psql dbname -c 'SELECT * FROM gp_segment_configuration;'
  1. 最后, 通过查询 gp_master_mirroring 视图来检查新添加的备用主节点的状态。有关说明, 请参阅  「检查备用主节点的状态」- http://www.oushu.com/docs/ch/master-mirroring.html#id13  。

自动激活备用主节点

最新的 Oushu Database 支持备用主节点的自动激活,您可以按如下步骤打开此功能。

  1. 确保已为系统配置了备用主节点。
  2. 您可以在启动集群前,在配置文件 hawq-site.xml 中添加如下属性并同步到各节点,也可以在启动集群后再修改 GUC 值。 (友情提示:对于初次使用 Oushu Database 的用户,建议先跳过此步骤,避免因某些操作不慎导致 master 启动失败,引发主节点切换,给后续操作带来麻烦。)
<property><name>enable_master_auto_ha</name><value>on</value></property><property><name>ha_zookeeper_quorum</name><value>ZKHOST1:2181,ZKHOST2:2181,ZKHOST3:2181</value></property>

image.png

强烈建议您将 zookeeper 集群所有服务端的地址添加到 ha_zookeeper_quorum 中,请参见  「安装HDFS」- http://www.oushu.com/docs/ch/installation.html#hdfs  时在 core-site.xml 中对 ha.zookeeper.quorum 的设置,而非使用默认值。这是为了保证 Oushu Database 主节点与备用主节点使用相同的 zookeeper 服务,以避免本地 zookeeper 服务无法使用而导致 Oushu Database 无法自动切换或者发生错误切换。
(注:如果第一个属性值为 on,则要求用户手动将第二个属性值添加到 hawq-site.xml,以确保 zookeeper 服务被能正常访问,否则 Oushu Database 将不会启动。)

  1. 启动运行 Oushu Database 后,您可以直接查询上述属性值是否设置正确:
oushu_master$ hawq config -s enable_master_auto_ha
GUC      : enable_master_auto_ha
Value    : on
oushu_master$ hawq config -s ha_zookeeper_quorum
GUC      : ha_zookeeper_quorum
Value    : x.x.x.x:2181,y.y.y.y:2181,z.z.z.z:2181
  1. 如果运行时的集群的上述属性值没有设置恰当(针对跳过第 2 步的用户),您可以在主节点上手动修改,并重启集群:
oushu_master$ hawq config -c enable_master_auto_ha -v on
oushu_master$ hawq config -c ha_zookeeper_quorum -v x.x.x.x:2181,y.y.y.y:2181,z.z.z.z:2181
oushu_master$ hawq restart cluster
  1. 在 zookeeper 服务能正常访问时(半数以上zookeeper节点存活),Oushu Database 的备用主节点能在主节点故障后 2~3 分钟内完成自动激活。 (注:此时集群中不再有备用主节点,如需添加,后续步骤参见  「向现有群集添加备用主节点」- http://www.oushu.com/docs/ch/master-mirroring.html#id4  。)
目录
相关文章
|
C++
C++ 条件与 If 语句:掌握逻辑判断与流程控制精髓
C++ 中的条件语句用于根据布尔表达式的真假执行不同代码。`if` 用于当条件为真时执行一段代码,`else` 配合 `if` 在条件不成立时执行另一段代码。`else if` 允许测试额外的条件。`switch` 语句提供多分支选择。还有三元运算符 `(condition) ? expressionTrue : expressionFalse`,它是一种简写的 if...else 形式,常用于一行内作出决定。
340 0
|
开发者
冷门但好看的 VSCode 主题推荐
笔者在使用VSCode进行开发的过程中喜欢没事就逛一逛插件商店里的颜色主题,也看过国内外许多论坛上面的颜色主题推荐,不知不觉已经下载了超过一百个的颜色主题。这篇文章总结了我用过的最舒服的一些颜色主题。
8034 0
冷门但好看的 VSCode 主题推荐
|
8月前
|
运维 监控 BI
15 分钟快速上手 Odoo
Odoo 是一款备受企业青睐的开源 ERP 系统,但传统基于 Docker 的部署方式存在安装复杂、镜像拉取困难、配置繁琐及管理不便等问题。Websoft9 提供了一键部署方案,通过云原生应用模板和自动化运维工具,用户可在 15 分钟内快速上手 Odoo,享受零门槛、极速交付与自动化运维体验。本文还深度体验了 Odoo 的核心功能模块,如 CRM 智能客户管理、项目管理敏捷协作、库存精准控制及报表零代码定制等功能,助力企业高效开启数字化转型之旅。
290 5
|
9月前
|
人工智能 运维 Cloud Native
2025年国内工单系统推荐:技术架构、场景适配与行业实践
分析了智能化升级、大数据驱动、云原生架构及全渠道融合四大技术趋势,从功能适配性、易用性、集成能力、安全性和性价比五个维度指导企业选型,并推荐合力亿捷等三家系统的优劣对比,结合电商和制造行业的实际案例,帮助企业提升客户服务水平与竞争力。
665 11
2025年国内工单系统推荐:技术架构、场景适配与行业实践
|
11月前
|
人工智能 自动驾驶 安全
《解锁数据新动能:数据标注工具与AI模型训练平台的无缝对接热潮》
在人工智能快速发展的今天,数据成为核心驱动力。数据标注工具与模型训练平台的集成,实现了数据无缝流转,犹如为AI发展装上双引擎。集成不仅提高了数据传输效率、减少了人工干预,还确保了数据准确性,提升了模型性能。统一的数据标准、高效的接口设计和严格的安全保障是实现无缝流转的关键要素。这种集成推动了医疗、自动驾驶等领域的快速发展,促进了数据驱动的创新,为企业和社会带来巨大价值。未来,这一趋势将更加高效智能,进一步推动AI技术的广泛应用。
374 8
|
C语言
【C语言】逗号运算符详解 - 《不起眼的 “逗号”》
逗号运算符(`,`)是C语言中的一个二元运算符,它会对两个操作数进行求值,并返回最后一个操作数的值。其主要作用是将多个表达式组合成一个复合表达式。
865 7
|
Kubernetes Cloud Native 开发者
云原生入门:Kubernetes的简易指南
【10月更文挑战第41天】本文将带你进入云原生的世界,特别是Kubernetes——一个强大的容器编排平台。我们将一起探索它的基本概念和操作,让你能够轻松管理和部署应用。无论你是新手还是有经验的开发者,这篇文章都能让你对Kubernetes有更深入的理解。
|
网络协议 程序员
TCP报文格式全解析:网络小白变高手的必读指南
**TCP报文格式详解摘要** 探索TCP,传输层的关键协议,提供可靠数据传输。报文含源/目的端口(标识应用),32位序号(跟踪字节顺序),确认序号(确认接收),4位首部长度,6位标志(URG, ACK, PSH, RST, SYN, FIN),窗口大小(流量控制),检验和(数据完整性),紧急指针(优先数据)及可变长选项(如MSS, 时间戳)。了解这些字段,能更好地理解TCP连接的建立、管理和数据交换。
1289 3
|
JavaScript 前端开发
【Web 前端】jQuery 库中的 $() 是什么?
【5月更文挑战第1天】【Web 前端】jQuery 库中的 $() 是什么?
|
机器学习/深度学习 Python
Py之lime:lime库的简介、安装、使用方法之详细攻略
Py之lime:lime库的简介、安装、使用方法之详细攻略
Py之lime:lime库的简介、安装、使用方法之详细攻略