ODP使用哪些方法来探测OBServer节点的可用性

在ODP的高可用机制中,ODP使用哪些方法来探测OBServer节点的可用性?
A 通过操作系统的TCP KeepAlive机制来探测OBServer节点状态
B 通过给OBServer节点的周期性的发送探测SQL来确定OBServer节点状态
C 通过定期从总控服务节点RS 处获得信息来确定OB Server 节点状态
D 可以根据业务SQL的执行结果去定义OBServer节点的状态

答案BCD

666


各选项可从教材里看到,BCD肯定是对的。
A选项是否正确呢?从教材看TCP探活机制可以探测TCP的连接状态,那这是否也描述了OBServer节点状态呢?希望大家可以讨论讨论 @论坛小助手

在 ODP 的高可用机制中,ODP 使用以下方法来探测 OBServer 节点的可用性:

  • 通过操作系统的 TCP KeepAlive 机制来探测 OBServer 节点状态:虽然 TCP KeepAlive 机制可以探测 TCP 连接的状态,但它无法感知 OBServer 节点的健康状态,如升级、Leader 切换、宕机、启停等过程中的状态。因此,仅依赖 TCP KeepAlive 机制是不够的。
  • 通过给 OBServer 节点周期性地发送探测 SQL 来确定 OBServer 节点状态:ODP 会周期性地发送探测 SQL 来检查 OBServer 节点的健康状态。
  • 通过定期从总控服务节点 RS 处获得信息来确定 OBServer 节点状态:ODP 会定期从总控服务节点 RS 获取 OBServer 节点的健康状态信息。
  • 可以根据业务 SQL 的执行结果去定义 OBServer 节点的状态:ODP 可以根据业务 SQL 的执行结果来判断 OBServer 节点的健康状态。

检索到的文档如下:

  1. 使用命令行部署 OceanBase 数据库生产环境
  2. 物理备库同步过程中卡住
  3. Switchover 或 Failover 相关问题
  4. OB和应用之间的通讯tcp