访问数据抛出“存储体正在进行切换操作”错误
在数据库使用过程中,因一些意外原因如服务器宕机、断网、断电、人为误操作或人为KILL数据库节点进程,可能导致存储节点死亡,退出数据库集群。在节点死亡处理过程中,标记该节点存储无效,此时访问到这些存储时,会报错”存储体正在进行切换操作“。在节点判死完成后,会从其他节点选择这些存储的副本成为主版本,则可正常访问。
若需人为KILL数据库节点,需注意KILL节点前,先检查当前数据库存储状态,需要保证集群现有局部存储都处于有效状态:
sql
select store_sta,count(*) from sys_gstores group by store_sta;
STORE_STA用于指示所有版本状态,按位使用由低到高标记第一、第二、第三版本状态信息,每个版本存在4个状态,分别为:
- 不存在(00)
- 主版本(01)
- 副版本(10)
- 无效版本(11)
第一版本 | 第二版本 | 第三版本 | STORE_STA十进制 |
---|---|---|---|
00 | 00 | 00 | 0 |
01 | 00 | 00 | 1 |
10 | 00 | 00 | 2 |
11 | 00 | 00 | 3 |
01 | 10 | 10 | 41 |
11 | 01 | 10 | 39 |
11 | 10 | 01 | 27 |
11 | 01 | 11 | 55 |
11 | 11 | 01 | 31 |
11 | 11 | 11 | 63 |
注意:
上述操作请联系技术支持人员实施。