当 Zone 发生故障时,您可以隔离故障 Zone。隔离后,新的读写请求不会路由到该故障 Zone 内的进程上。
当 Zone 故障后,您可以通过隔离操作将故障 Zone 上的 Leader 切换到其他机器上,以此尝试恢复用户的写服务和集群内的日志同步。待集群恢复正常后,尝试通过先 Stop Zone 后再重启故障机器的方式来解决问题。
隔离故障 Zone 的 SQL 语句如下:
obclient> ALTER SYSTEM ISOLATE ZONE 'zone_name';
该语句仅支持在
sys 租户中执行。
示例:
使用
root 用户登录数据库的
sys 租户。
执行以下命令,隔离故障的机器。
obclient> ALTER SYSTEM ISOLATE ZONE 'zone1';
SQL 语句执行成功,则表示隔离故障 Zone 的操作执行成功。同时,可以看到
oceanbase.DBA_OB_ZONES 视图中,该隔离 Zone 的
STATUS 的值为
INACTIVE,表示该 Zone 处于
stop状态。
查看视图
oceanbase.DBA_OB_ZONES的示例如下:
obclient> SELECT * FROM oceanbase.DBA_OB_ZONES WHERE zone= 'zone1'; +-------+----------+-----+----------+-----------+ | ZONE | STATUS | IDC | REGION | TYPE | +-------+----------+-----+----------+-----------+ | zone1 | INACTIVE | HZ1 | hangzhou | ReadWrite | +-------+----------+-----+----------+-----------+ 1 row in set
oceanbase.DBA_OB_ZONES 视图中各字段的详细说明请参见
DBA_OB_ZONES。
隔离故障的 Zone 后,如果需要解除隔离状态,您可以通过执行
ALTER SYSTEM START ZONE 'zone1' 命令来完成。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026121/viewspace-2932610/ ,如需转载,请注明出处,否则将追究法律责任。