灌水唠嗑区
其他
问答

集群从readonly模式切换回正常读写模式,需要执行什么操作?这个操作是否需要停机?

发表于2026-04-01 11:35:465次浏览4个评论

集群从readonly模式切换回正常读写模式,需要执行什么操作?这个操作是否需要停机?

评论

登录后才可以发表评论
用户头像
山佳发表于 4个月前
111
曾浩轩发表于 4个月前
# GBase集群readonly模式切正常读写模式操作说明
GBase 8a MPP Cluster集群从**readonly(只读)模式**切换回正常读写模式的操作基于集群专属管理工具`gcadmin`实现,**全程无需停机**,是在线无感知的模式切换操作,以下是详细操作命令和核心说明:

## 一、核心切换命令
### 1. 集群全局切换(单VC/默认集群)
直接在部署了`gcware`服务的Coordinator节点,以集群安装用户(默认`gbase`)执行以下命令,一键将整个集群从readonly切为正常模式:
```bash
gcadmin switchmode normal
```

### 2. 指定虚拟集群(VC)切换(多VC集群场景)
若集群为多VC架构,需指定具体VC名称单独切换(可逐个切换不同VC),命令如下:
```bash
gcadmin switchmode normal vc 虚拟集群名称
# 示例:切换vc1为正常模式
gcadmin switchmode normal vc vc1
```

## 二、关键前置/校验操作
### 1. 切换前查看集群当前模式(确认状态)
```bash
# 查看指定VC的模式(多VC必用)
gcadmin showcluster vc 虚拟集群名称
# 查看全局集群状态
gcadmin showcluster
```
执行后若输出中`VIRTUAL CLUSTER MODE`为`READONLY`,则确认当前为只读模式,可执行切换;若为`NORMAL`则无需操作。

### 2. 切换后验证结果
再次执行上述查看命令,若`VIRTUAL CLUSTER MODE`变为`NORMAL`,则说明切换成功,集群已恢复正常读写,可执行所有DDL/DML/DQL操作。

## 三、是否需要停机?
**该切换操作完全不需要停机**,核心原因:
1. `gcadmin switchmode`是GBase集群原生的**在线模式切换命令**,仅修改集群的运行模式标识,不重启任何数据库进程(gcluster、gcware、gbase等);
2. 切换过程为秒级完成,对集群当前的查询操作无影响,readonly模式下等待执行的DDL/DML操作,会在切换为normal模式后自动执行;
3. 操作仅需在**一个Coordinator节点**执行一次,集群会自动同步模式状态到所有节点,无需逐节点操作。

## 四、重要使用注意事项
1. **操作账号**:必须使用集群安装时指定的dbauser账号(默认`gbase`)执行,普通账号无权限切换集群模式;
2. **执行节点**:需在部署`gcware`服务的Coordinator节点执行,无需在所有节点重复操作;
3. **场景适配**:该命令同样适用于**recovery(恢复)模式**切正常模式(如集群备份恢复完成后),命令完全相同;
4. **业务影响**:切换前若有大量只读查询,切换过程无中断,业务无感知;readonly模式下提交的写操作会进入等待队列,切换后自动执行,无需重新提交。

## 五、配套常用命令(运维必备)
1. 切为readonly模式(如备份前准备):
```bash
gcadmin switchmode readonly [vc 虚拟集群名称]
```
2. 切为recovery模式(如集群级恢复前准备):
```bash
gcadmin switchmode recovery [vc 虚拟集群名称]
```
3. 查看集群所有进程状态(确认切换后服务正常):
```bash
gcluster_services all info
gcware_services all info
```
ljt98发表于 2个月前
继续努力
过客发表于 2个月前
好问题啊。