Skip to content

OceanBase 节点删除

节点删除前准备

检查节点状态

  • 确认待删除节点的服务状态,确保该节点上的租户业务已迁移或停止
  • 检查节点上的副本分布情况,确保删除节点后不会导致分区副本数不足
  • 确认集群整体状态正常,无其他正在进行的重要操作

数据迁移准备

  • 执行副本迁移命令,将待删除节点上的副本迁移到其他节点
  • 监控副本迁移进度,确保迁移完成后再进行节点删除
  • 验证副本分布是否合理,避免出现数据倾斜

工具准备

  • 确保 OCP 或 OBD 工具可用且版本兼容
  • 准备好集群管理员账户和密码
  • 确保网络连接正常,能够访问待删除节点

节点删除操作流程

使用 OCP 删除节点

  1. 登录 OCP 控制台,进入集群管理页面
  2. 选择待删除的节点,点击 "删除节点" 按钮
  3. 在弹出的确认对话框中,选择删除方式(立即删除或优雅删除)
  4. 确认删除操作,等待删除流程完成
  5. 验证节点是否已从集群中移除

使用 OBD 删除节点

bash
# 查看当前集群状态
obd cluster display <cluster-name>

# 从集群中移除节点
obd cluster remove-node <cluster-name> --servers <server-ip>:<ssh-port>

# 停止并删除节点上的 OceanBase 服务
obd server stop <server-ip>:<ssh-port> --force

手动删除节点

  1. 登录待删除节点,停止 OceanBase 服务
  2. 从集群的其他节点上执行 SQL 命令,将待删除节点从集群中移除
  3. 更新集群配置文件,移除待删除节点的相关配置
  4. 删除节点上的 OceanBase 数据和日志文件

节点删除后验证

集群状态验证

  • 检查集群整体状态是否正常
  • 确认节点已从集群成员列表中移除
  • 验证所有分区副本状态正常,无丢失副本

服务可用性验证

  • 检查各租户业务是否正常运行
  • 验证读写操作是否正常
  • 检查集群监控指标是否正常

数据完整性验证

  • 执行数据一致性检查
  • 验证重要表的数据完整性
  • 检查日志系统是否正常

常见问题(FAQ)

Q1: 删除节点时提示副本迁移失败怎么办?

A1: 检查迁移失败的原因,常见问题包括:

  • 目标节点资源不足:增加目标节点资源或选择其他目标节点
  • 网络连接问题:检查网络配置,确保节点间通信正常
  • 节点负载过高:在低峰期进行迁移操作
  • 副本状态异常:先修复异常副本,再进行迁移

Q2: 删除节点后集群状态异常怎么办?

A2: 立即执行以下操作:

  • 检查集群日志,定位异常原因
  • 验证副本分布,确保所有分区副本数满足要求
  • 如果是因为副本不足导致的异常,尝试添加新节点或恢复删除的节点
  • 联系 OceanBase 技术支持获取帮助

Q3: 如何避免节点删除过程中影响业务?

A3: 建议采取以下措施:

  • 在业务低峰期执行节点删除操作
  • 使用优雅删除方式,让节点上的业务逐渐迁移
  • 提前规划副本迁移,确保迁移过程平稳
  • 执行节点删除前,先进行充分的测试

Q4: 删除节点后,如何清理节点上的残留数据?

A4: 可以执行以下命令清理残留数据:

bash
# 删除 OceanBase 数据目录
rm -rf <data-dir>

# 删除 OceanBase 日志目录
rm -rf <log-dir>

# 删除配置文件
rm -rf <conf-dir>

Q5: 能否同时删除多个节点?

A5: 不建议同时删除多个节点,因为:

  • 会增加集群负载,影响业务性能
  • 可能导致多个分区副本数同时不足
  • 增加集群管理的复杂度和风险
  • 建议逐个删除节点,确保每个节点删除完成后集群状态正常