GBase 8a
其他
文章
精选

集群的“管理模式”有哪些(如readonly, maintenance等)?各自适用于什么运维场景?

发表于2026-03-25 10:28:24325次浏览2个评论

GBase 8a MPP Cluster 的 “集群模式” 主要有三种:NORMAL(正常模式)、READONLY(只读模式) 和 RECOVERY(恢复模式)。您提到的 maintenance(维护模式)并非一个独立的官方模式,其功能通常由 READONLY 模式承担。

这三种模式是管理员可以手动切换的操作模式,用于控制整个集群或单个虚拟集群(VC)允许执行的SQL操作类型,以适应不同的运维场景。

一、三种集群模式详解

模式官方名称允许的SQL操作禁止的SQL操作核心目的
NORMAL正常模式所有SQL操作,包括:
• 查询(SELECT)
• DML(INSERT/UPDATE/DELETE)
• DDL(CREATE/ALTER/DROP)
• 数据加载(LOAD DATA)
无日常生产运行,提供全功能服务。
READONLY只读模式仅允许查询(SELECT)。所有写操作:
• DML、DDL
• 数据加载
安全维护窗口,在变更期间冻结数据,保证查询业务不受影响。
RECOVERY恢复模式不允许任何SQL操作(包括查询)。所有操作数据保护,在执行备份恢复或极端故障修复时,确保集群绝对静止,防止干扰。

二、各模式的适用运维场景

1. NORMAL 模式:默认的生产模式

  • 场景:集群正常对外提供服务,业务可以进行任意读写操作。
  • 运维操作:在此模式下,不建议执行任何会影响数据一致性或服务可用性的重大运维变更(如节点替换、分布表调整)。

2. READONLY 模式:标准的维护与变更模式

这是执行大多数计划内运维操作的首选模式,相当于“维护模式”。其适用场景包括:

  • 集群扩容/缩容:添加或移除节点时,需切换为只读,防止在数据重分布过程中发生并发写入导致不一致。
  • 节点替换:用新节点替换故障节点时,集群会自动或手动进入只读模式。

     

  • 数据备份:执行逻辑备份(如SELECT ... INTO OUTFILE)时,为确保备份数据的一致性视图,可切换为只读。
  • 重大应用发布:在应用版本上线,需要确保数据静止时,短暂切换为只读。

    “在执行扩容、替换或数据备份操作时集群会在一段时间内处于只读模式。”

     

3. RECOVERY 模式:高风险的修复模式

此模式用途专一,仅在特定恢复场景下由高级管理员使用:

  • 数据恢复:从备份文件中恢复整个集群或VC的数据。
  • 灾难恢复演练。
  • 极端不一致修复:当集群出现严重逻辑错误,需要导入外部修复数据时。
  • 注意:该模式下所有连接和查询都会被拒绝,业务完全中断,使用时必须非常谨慎。

三、如何查看和切换集群模式

1. 查看当前模式

使用 gcadmin showcluster 命令,输出中的 VIRTUAL CLUSTER MODE 字段即为当前模式。

[gbase@node1 ~]$ gcadmin showcluster vc vc1
CLUSTER STATE: ACTIVE
VIRTUAL CLUSTER MODE: NORMAL  # <-- 这里显示当前模式
...

2. 手动切换模式

使用 gcadmin switchmode 命令。

  • 语法:gcadmin switchmode <mode> [vc vc_name]

     

    # 将整个集群切换为只读模式
    gcadmin switchmode readonly
    # 将特定VC(vc1)切换为恢复模式
    gcadmin switchmode recovery vc vc1
    # 将集群切换回正常模式
    gcadmin switchmode normal

四、重要关联概念:集群工作状态

需要特别注意,集群模式与集群工作状态是两个不同的概念:

  • 集群模式:如上所述,是可控的操作模式。
  • 集群工作状态:由系统自动判定,反映集群健康度,主要有:
    • ACTIVE:健康,可工作。
    • shrinkOnly:一种特殊状态,当集群存储容量达到License限制时自动进入。此状态下禁止INSERT和LOAD操作,但允许DROP TABLE等释放空间的操作。用户执行show license刷新容量后,状态可能恢复为ACTIVE。

       

    • 非ACTIVE:如出现半数以上GCware节点故障等严重问题,集群将无法提供服务。

Active: 表示集群工作正常。shrinkOnly: 集群达到容量限制值后...该状态限制insert和load操作。”

总结与最佳实践

模式切换频率业务影响

运维口诀

NORMAL

默认常驻无

“生产跑,全功能。”

READONLY

经常(维护时)查询业务不受影响,写业务暂停。

“要变更,先只读。”

RECOVERY

极少

业务完全中断。

“动根基,用恢复。”

最佳实践建议:

  1. 在执行任何计划内维护(节点变更、备份)前,务必先将集群或目标VC切换为 READONLY 模式。

  2. RECOVERY 模式是“手术室模式”,仅在极端情况下使用,并需提前做好业务通知和预案。

  3. 时刻关注 shrinkOnly 状态,它是对存储容量的保护性状态,需要及时处理。

  4. 模式切换命令通常很快,但应确保在业务低峰期进行。

通过合理运用这三种模式,DBA可以在保障数据安全和服务连续性的前提下,高效地完成各类集群运维任务

评论

登录后才可以发表评论
用户头像
山佳发表于 6个月前
111
流泪猫猫头发表于 5个月前
学习了。