news 2026/4/17 20:00:26

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 2:39:21

Java计算机毕设之基于springboot的个性化推荐电商平台的设计与实现基于SpringBoot的网上购物商城设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/18 3:11:25

C++的函数是否可以做到完全覆盖Linux和windows的跨平台

答案是无法做到完全覆盖*&#xff0c;但可以通过C的语言特性和工程设计&#xff0c;实现高程度的跨平台系统功能替代/封装——核心原因是Linux和Windows的底层系统架构、API体系存在本质性差异&#xff0c;C本身无原生能力抹平这些差异&#xff0c;需通过针对性的工程方案实现跨…

作者头像 李华
网站建设 2026/4/3 21:54:00

手把手玩转北方苍鹰优化随机森林

北方苍鹰优化算法(NGO)优化随机森林(RF)的分类预测&#xff0c;优化参数为:决策树个数和最小叶数 代码包括NGO-RF和基础RF的对比——可改为其他优化算法&#xff0c;如SSA,GEO,WOA,SMA等。 NGO算法为2022年最新算法 模型评价指标包括:准确率和混淆图等&#xff0c;代码质量极高…

作者头像 李华
网站建设 2026/4/15 18:09:13

Java计算机毕设之基于springboot+bs架构的校园活动管理系统基于bs架构的springboot vue框架校园活动管理系统(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/16 13:41:24

(转)Mac系统配置环境变量保姆级教程

转自&#xff1a; https://blog.csdn.net/LYNNBXLI/article/details/128054891 1、下载好相关安装包 2、打开终端&#xff0c;输入命令转到系统环境变量配置文件 sudo vim ~/.bash_profile 运行项目并下载源码 输入密码&#xff08;密码不显示&#xff0c;实际上已经在输入了…

作者头像 李华