集群的“管理模式”有哪些(如readonly, maintenance等)?各自适用于什么运维场景?
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 | 极少 | 业务完全中断。 | “动根基,用恢复。” |
最佳实践建议:
在执行任何计划内维护(节点变更、备份)前,务必先将集群或目标VC切换为
READONLY模式。RECOVERY模式是“手术室模式”,仅在极端情况下使用,并需提前做好业务通知和预案。时刻关注
shrinkOnly状态,它是对存储容量的保护性状态,需要及时处理。模式切换命令通常很快,但应确保在业务低峰期进行。
通过合理运用这三种模式,DBA可以在保障数据安全和服务连续性的前提下,高效地完成各类集群运维任务
热门帖子
- 12025-12-01浏览数:182104
- 22023-05-09浏览数:24359
- 42023-09-25浏览数:17566
- 52020-05-11浏览数:16606