ITPub博客

首页 > 数据库 > 国内数据库 > 打卡 OceanBase 43|如何隔离故障的 OBServer?

打卡 OceanBase 43|如何隔离故障的 OBServer?

原创 国内数据库 作者:泡椒凤爪 时间:2023-01-18 15:36:07 0 删除 编辑

当 OBServer 发生故障时,您可以隔离故障 OBServer。隔离后,新的读写请求不会路由到该故障的 OBServer 上。 当 OBServer 故障后,您可以通过隔离操作将故障 OBServer 上的 Leader 切换到其他 OBServer 上,以此尝试恢复用户的写服务和日志同步。待集群恢复正常后,再尝试通过  STOP SERVER 命令停止 OBServer 的服务后,重启该故障的 OBServer 来解决问题。

隔离故障 OBServer 的 SQL 语句如下:

ALTER SYSTEM ISOLATE SERVER 'ip:port' [,'ip:port'...] [ZONE [=] 'zone']

该语句仅支持在  sys 租户中执行。

示例:

  1. 使用  root 用户登录数据库的  sys 租户。

  2. 执行以下命令,隔离故障的机器。

    示例如下:

    obclient> ALTER SYSTEM ISOLATE SERVER '10.10.10.10:2882' ZONE='zone1';

    SQL 语句执行成功,则表示隔离故障 OBServer 的操作执行成功。同时,可以看到  oceanbase.DBA_OB_SERVERS 视图中  status 字段仍然为  active,但是该 OBServer 对应的  stop_time 字段不为  NULL,表示该 OBServer 处于 stop 状态,且此时  stop_time 对应的值为该 OBServer 被执行故障隔离的时间戳。

    查看  oceanbase.DBA_OB_SERVERS 视图的示例如下:

    obclient> SELECT * FROM oceanbase.DBA_OB_SERVERS\G
     *************************** 1. row ***************************
                   SVR_IP: xx.xx.xx.xx
                 SVR_PORT: 2882
                       ID: 1
                     ZONE: zone1
                 SQL_PORT: 2881
           WITH_ROOTSERVER: YES
                   STATUS: ACTIVE
       START_SERVICE_TIME: 2022-06-17 11:30:04.589074
                 STOP_TIME: NULL
     BLOCK_MIGRATE_IN_TIME: NULL
         LAST_OFFLINE_TIME: NULL
             BUILD_VERSION: 4.0.0.0_20220525115829-1873fc2598d56060fe307ce3b7b88647686e0b09(May 25 2022 12:12:10)
     1 row in set

    oceanbase.DBA_OB_SERVERS 视图中各字段的详细说明,请参见  DBA_OB_SERVERS。

隔离故障的 OBServer 后,如果需要解除隔离状态,您可以通过执行  ALTER SYSTEM START SERVER '10.10.10.10:2882' 命令来完成。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026121/viewspace-2932615/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2023-01-18

  • 博文量
    53
  • 访问量
    19391