当前位置: 首页 > news >正文

PolarDB-X 集群暂停 / 恢复完整运维文档

目录标题

  • PolarDB-X 集群暂停 / 恢复完整运维文档
    • 一、背景与基本认知(非常重要)
      • 1️⃣ PolarDB-X 没有传统意义的 shutdown
    • 二、组件角色与资源形态(基于你现场)
      • 1️⃣ 组件与 K8S 资源映射
    • 三、组件依赖关系(铁律)
    • 四、标准启停顺序(必须遵守)
      • ⏸ 暂停(Pause)顺序
      • ▶ 恢复(Resume)顺序
    • 五、为什么 `patch PolarDBXCluster replicas=0` 不生效
      • 你现场的真实现象
      • 根因总结
    • 六、正确且可落地的暂停 / 恢复方案
      • 控制策略总览
    • 七、最终可用脚本(适配你当前环境)
      • 📄 pxc-control.sh
    • 八、使用方式
    • 九、验证检查点(强烈建议执行)
      • 暂停后
      • 恢复后
    • 十、常见误区总结
    • 十一、运维级结论(建议写进团队规范)

PolarDB-X 集群暂停 / 恢复完整运维文档

(Kubernetes Operator 场景 · 适配当前环境)


一、背景与基本认知(非常重要)

1️⃣ PolarDB-X 没有传统意义的 shutdown

PolarDB-X没有数据库级别的 shutdown / stop 命令
集群的运行状态完全由 Kubernetes Operator 控制

因此:

  • ❌ 不能shutdown database
  • ❌ 不能只删 Pod
  • ✅ 只能通过K8S 资源(Deployment / XStore / CR)来“暂停”

所谓“暂停”,本质是:
让 Operator 不再运行 CN / DN / GMS / CDC 的 Pod


二、组件角色与资源形态(基于你现场)

1️⃣ 组件与 K8S 资源映射

组件K8S 资源说明
CNDeploymentSQL 入口,业务连接
DNXStore数据节点(cand / log 多 Pod)
GMSXStore元数据服务(cand / log)
CDCDeploymentBinlog / 同步组件

你现场 Pod 示例(已验证):

polardbx-demo-t8ms-cn-default-xxxx polardbx-demo-t8ms-dn-0-cand-0 polardbx-demo-t8ms-gms-log-0 polardbx-demo-t8ms-cdc-default-xxxx

三、组件依赖关系(铁律)

GMS ← DN ← CN

含义:

  • CN 启动前,DN + GMS 必须可用
  • DN 启动前,GMS 必须可用
  • GMS 不依赖任何组件

四、标准启停顺序(必须遵守)

⏸ 暂停(Pause)顺序

CN → CDC → DN → GMS

原因:

  • 先断业务入口
  • 再停数据访问
  • 最后冻结元数据

▶ 恢复(Resume)顺序

GMS → DN → CN → CDC

原因:

  • 元数据先可用
  • DN 注册完成
  • 最后开放业务入口

五、为什么patch PolarDBXCluster replicas=0不生效

你现场的真实现象

kubectl patch pxc replicas=0 → patched (no change) → Pod 一个没少 → PolarDBXCluster 仍显示 Running

根因总结

  1. 当前 Operator 版本中

    • .spec.topology.*.replicas不是控制入口
  2. DN / GMS 实际由 XStore CR 控制

  3. Pod label不符合官方示例

    • 没有polardbx/role=cn

👉 结论:

你当前环境,不能用 patch pxc 来 pause


六、正确且可落地的暂停 / 恢复方案

控制策略总览

组件正确控制方式
CNscale Deployment
CDCscale Deployment
DNscale XStore
GMSscale XStore

七、最终可用脚本(适配你当前环境)

📄 pxc-control.sh

#!/bin/bashset-eCLUSTER=$1ACTION=$2NS=${3:-default}if[[-z"$CLUSTER"||-z"$ACTION"]];thenecho"Usage:$0<cluster-name> pause|resume [namespace]"exit1fiK="kubectl -n$NS"pause(){echo"=== Pause PolarDB-X Cluster:$CLUSTER==="echo"[1/4] Stop CN"$Kscale deploy\-l polardbx/cluster=$CLUSTER,polardbx/component=cn\--replicas=0echo"[2/4] Stop CDC"$Kscale deploy\-l polardbx/cluster=$CLUSTER,polardbx/component=cdc\--replicas=0||trueecho"[3/4] Stop DN (XStore)"$Kscale xstore\-l polardbx/cluster=$CLUSTER\--replicas=0echo"[4/4] Stop GMS (XStore)"$Kscale xstore\-l polardbx/cluster=$CLUSTER,xstore-type=gms\--replicas=0||trueecho"=== Cluster paused ==="}resume(){echo"=== Resume PolarDB-X Cluster:$CLUSTER==="echo"[1/4] Start GMS"$Kscale xstore\-l polardbx/cluster=$CLUSTER,xstore-type=gms\--replicas=3echo"[2/4] Start DN"$Kscale xstore\-l polardbx/cluster=$CLUSTER\--replicas=3echo"[3/4] Start CN"$Kscale deploy\-l polardbx/cluster=$CLUSTER,polardbx/component=cn\--replicas=2echo"[4/4] Start CDC"$Kscale deploy\-l polardbx/cluster=$CLUSTER,polardbx/component=cdc\--replicas=1||trueecho"=== Cluster resumed ==="}case"$ACTION"inpause)pause;;resume)resume;;*)echo"Unknown action";exit1;;esac

八、使用方式

chmod+x pxc-control.sh# 暂停./pxc-control.sh polardbx-demo pause qfusion-admin# 恢复./pxc-control.sh polardbx-demo resume qfusion-admin

九、验证检查点(强烈建议执行)

暂停后

kubectl get pod -n qfusion-admin|greppolardbx-demo

预期:

  • 无 CN / DN / GMS / CDC Pod

恢复后

kubectl get pod -n qfusion-admin|greppolardbx-demo

预期:

  • GMS → DN → CN → CDC 依次 Running

十、常见误区总结

误区正确理解
删除 PodOperator 会自动拉起
patch pxc replicas=0当前环境不支持
用 Pod 名控制必须用 label
忽略顺序极易引发异常

十一、运维级结论(建议写进团队规范)

**PolarDB-X 的暂停不是数据库命令,
而是 Operator 行为控制。

不同 Operator 版本,控制入口可能不同,
但启停顺序永远不变。**


如果你愿意,下一步我还能继续帮你做三件事之一:

1️⃣ 把这份文档整理成Markdown / Wiki 版
2️⃣ 脚本升级成自动识别 Operator 能力版
3️⃣ 补充异常场景 & 回滚 SOP

http://www.jsqmd.com/news/326806/

相关文章:

  • 【计算机毕业设计案例】基于springboot电商个性化推荐系统设计与实现基于springboot的个性化推荐电商平台的设计与实现(程序+文档+讲解+定制)
  • jsp钢铁集团公司安全管理系统e2160(程序+源码+数据库+调试部署+开发环境)
  • 【计算机毕业设计案例】基于SpringBoot+Vue校园体育器材管理系统基于springboot+bs架构的校园体育器材管理系统设计与实现(程序+文档+讲解+定制)
  • 【毕业设计】基于springboot的员工绩效管理系统的设计与实现(源码+文档+远程调试,全bao定制等)
  • React Native for OpenHarmony:Image 组件的加载、渲染与性能优化全解析
  • 告别知识孤岛!Wiki.js打造知识库,cpolar实现随处可用。
  • 【课程设计/毕业设计】基于bs架构的校园活动管理系统基于springboot+bs架构的校园活动管理系统【附源码、数据库、万字文档】
  • 手把手玩转北方苍鹰优化随机森林
  • 【计算机毕业设计案例】基于SpringBoot + Vue的校园活动管理系统设计与实现基于springboot+bs架构的校园活动管理系统(程序+文档+讲解+定制)
  • Java毕设项目:基于springboot+bs架构的校园活动管理系统(源码+文档,讲解、调试运行,定制等)
  • C++的函数是否可以做到完全覆盖Linux和windows的跨平台
  • 【Python大数据选题推荐】基于Django+Hadoop+Spark肺癌分析系统开发教程 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘
  • Java毕设项目:基于springboot+bs架构的校园体育器材管理系统设计与实现(源码+文档,讲解、调试运行,定制等)
  • 《提问的智慧》泛读总结
  • 【毕业设计】基于springboot+bs架构的校园体育器材管理系统设计与实现(源码+文档+远程调试,全bao定制等)
  • RTL9301管理型交换机模块DHCP Server使用方法
  • Java计算机毕设之基于springboot+bs架构的校园活动管理系统基于bs架构的springboot vue框架校园活动管理系统(完整前后端代码+说明文档+LW,调试定制等)
  • 如何理解“广州靠谱的PHP开发”:从技术本质到实践选择
  • 2026隐形车衣哪个牌子好?行业热门品牌实力解析
  • 2026性价比高的隐形车衣品牌推荐
  • 2026隐形车衣品牌推荐:热门口碑品牌大盘点
  • 2026年国产隐形车衣品牌有哪几家?实力品牌盘点
  • 【毕业设计】基于springboot+bs架构的校园活动管理系统(源码+文档+远程调试,全bao定制等)
  • 2026年靠谱的隐形车衣品牌推荐及口碑解析
  • 2026年目前环保的除雪设备技术支持厂家选型攻略,装载机除雪设备/撒盐除雪设备,除雪设备长期供应商口碑排行
  • Git 深度学习笔记:从初始化到核心操作机制解析
  • Java毕设项目:基于springboot的员工绩效管理系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 深度学习篇---不同层数的ResNet
  • 【节点】[VertexID节点]原理解析与实际应用
  • AI助手从“只会聊天“到“能写代码“,编程开发要变天了!