基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
隔离故障 Zone
更新时间:2023-07-19 13:03:06
当 Zone 发生故障时,您可以隔离故障 Zone。隔离后,新的读写请求不会路由到该故障 Zone 内的进程上。执行隔离故障 Zone 后,该 Zone 处于 stopped 状态。隔离操作会限制本 Zone 上面不能有主副本(Leader),将故障 Zone 上的 Leader 切换到其他机器上,以此尝试恢复用户的写服务和集群内的日志同步。
如果需要重启故障机器才能解除故障,可以执行 重启 OBServer 操作。为了安全,建议先执行 STOP SERVER 操作停止故障机器,然后再重启机器。如果 Zone 内机器都需要重启,也可以执行 STOP ZONE 操作停止故障 Zone。STOP SERVER 和 STOP ZONE 可以保证 Server 可以安全的被重启。
待整体的故障恢复以后,需要执行 START ZONE,操作,Leader 才能切回来。
说明
- Zone 故障可能是 Zone 内机器网络隔离、Server 本身出现软件故障(请求队列积压、内存爆、进程 core 掉等)导致不能正常提供服务。
- 有关副本的信息介绍,请参见 分布式数据库对象概述。
隔离故障 Zone 的 SQL 语句如下:
obclient> ALTER SYSTEM ISOLATE ZONE 'zone_name';
该语句仅支持在 sys 租户中执行。
示例:
使用
root用户登录数据库的sys租户。执行以下命令,隔离故障的机器。
obclient> ALTER SYSTEM ISOLATE ZONE 'zone1';SQL 语句执行成功,则表示隔离故障 Zone 的操作执行成功。同时,可以看到
__all_zone内部表中,该隔离 Zone 的name列中status字段为INACTIVE,表示该 Zone 处于INACTIVE状态。查看
oceanbase.__all_zone内部表的示例如下:obclient> SELECT * FROM oceanbase.__all_zone WHERE zone= 'zone1'; +----------------------------+----------------------------+-------+---------------------+------------------+-----------+ | gmt_create | gmt_modified | zone | name | value | info | +----------------------------+----------------------------+-------+---------------------+------------------+-----------+ | 2021-11-22 18:00:13.814701 | 2022-01-04 02:00:38.221218 | zone1 | all_merged_version | 45 | | | 2021-11-22 18:00:13.814422 | 2022-01-04 02:00:21.210032 | zone1 | broadcast_version | 45 | | | 2021-11-22 18:00:13.815255 | 2021-11-22 18:00:22.691700 | zone1 | idc | 0 | BJ1 | | 2021-11-22 18:00:13.814904 | 2022-01-04 02:00:38.220994 | zone1 | is_merge_timeout | 0 | | | 2021-11-22 18:00:13.814331 | 2022-01-04 02:00:38.220232 | zone1 | is_merging | 0 | | | 2021-11-22 18:00:13.814600 | 2022-01-04 02:00:38.220771 | zone1 | last_merged_time | 1641232838219704 | | | 2021-11-22 18:00:13.814510 | 2022-01-04 02:00:38.220535 | zone1 | last_merged_version | 45 | | | 2021-11-22 18:00:13.814809 | 2022-01-04 02:00:21.210365 | zone1 | merge_start_time | 1641232821208596 | | | 2021-11-22 18:00:13.815080 | 2022-01-04 02:00:38.221669 | zone1 | merge_status | 0 | IDLE | | 2021-11-22 18:00:13.815168 | 2021-11-22 18:00:13.815168 | zone1 | region | 0 | BEIJING | | 2021-11-22 18:00:13.814239 | 2021-11-22 18:00:13.814239 | zone1 | status | 2 | INACTIVE | | 2021-11-22 18:00:13.814993 | 2021-11-22 18:00:13.814993 | zone1 | suspend_merging | 0 | | | 2021-11-22 18:00:13.815343 | 2021-11-22 18:00:13.815343 | zone1 | zone_type | 0 | ReadWrite | +----------------------------+----------------------------+-------+---------------------+------------------+-----------+ 13 rows in set
隔离故障的 Zone 后,如果需要解除隔离状态,您可以通过执行 ALTER SYSTEM START ZONE 'zone1' 命令来完成。