news 2026/4/16 17:16:13

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/3/18 2:54:20

基于C#与ASP.NET MVC架构的图书借阅管理系统

c#_asp.net mvc图书管理系统、借阅管理系统 主要技术&#xff1a; 基于asp.net mvc架构和sql server数据库&#xff0c;数据库访问采用EF code first&#xff0c;三层架构&#xff0c;bootstrap。 功能模块&#xff1a; 系统分为后台和前台两部分&#xff0c;后台实现图书增删…

作者头像 李华
网站建设 2026/4/16 12:20:59

共学共修:团队进化之道

很多成长&#xff0c;不是没方法&#xff0c;而是一个人想&#xff0c;想不透。下周一学习实验室&#xff0c;我们继续做一件简单但不容易的事&#xff1a; 把现实问题带进来&#xff0c;在即时反馈中调整&#xff0c;通过共学共修形成共识&#xff0c;让团队在循环中慢慢进化。…

作者头像 李华
网站建设 2026/4/16 10:58:45

学长亲荐!专科生论文神器 —— 千笔·专业学术智能体

学长亲荐&#xff01;专科生论文神器 —— 千笔专业学术智能体你是否正为论文写作而焦虑&#xff1f;选题无从下手、文献资料繁杂、格式反复修改、查重率高得让人崩溃……这些困扰是不是让你夜不能寐&#xff1f;作为过来人&#xff0c;我深知专科生在论文路上的艰难。别再独自…

作者头像 李华
网站建设 2026/4/16 12:23:10

轻松搞定A2O污水处理工艺流程图制作超简单

在环保工程领域&#xff0c;A2O污水处理工艺因其高效的脱氮除磷效果&#xff0c;成为众多污水处理项目的核心技术方案。而一份清晰、规范的A2O污水处理工艺流程图&#xff0c;不仅是项目设计、施工、运维的重要指导文件&#xff0c;更是技术沟通、成果展示的关键载体。但很多工…

作者头像 李华
网站建设 2026/4/16 12:26:53

新手快速学会工业污水处理工艺流程图绘制方法

对于刚接触工业污水处理领域的新手来说&#xff0c;绘制工艺流程图可能是一项看似复杂且令人头疼的任务。但实际上&#xff0c;只要找对方法、选对工具&#xff0c;就能轻松上手&#xff0c;高效完成流程图的绘制。今天&#xff0c;就为大家详细拆解工业污水处理工艺流程图的绘…

作者头像 李华