首批通过分布式安全可靠测评,为关键业务系统打造
清理残留的集群信息
更新时间:2024-04-19 18:15:47
功能适用性
该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版暂不支持仲裁服务功能。
执行替换仲裁服务或删除仲裁服务操作后,如果原仲裁 Server 处于故障状态(宕机或断网状态),则原仲裁服务所在的机器上可能会残留集群的相关信息,您需要手动通过 ob_admin 工具清理这些残留信息。
前提条件
在清理残留的集群信息前,请确认原仲裁 Server 上已安装了 ob_admin 工具。部署仲裁服务时,仲裁 Server 上默认已安装 ob_admin 工具,且默认安装路径为 /home/admin/oceanbase/bin。如果发现原仲裁 Server 上未安装 ob_admin 工具,则需要安装 ob_admin 工具后,再执行本操作。有关 ob_admin 工具的详细安装操作,请参见 ob_admin 简介。
清理残留信息
清理前检查。
使用
root用户登录到集群的sys租户。连接示例如下,连接数据库时请以实际环境为准。
obclient -h10.xx.xx.xx -P2883 -uroot@sys#obdemo -p***** -A有关更加详细的连接数据库的操作指引,参见 连接数据库概述(MySQL 模式) 和 连接数据库概述(Oracle 模式)。
执行以下命令,确认该集群的仲裁服务已经被替换或删除。
SELECT * FROM oceanbase.DBA_OB_ARBITRATION_SERVICE;替换仲裁服务后的查询结果如下:
+---------------------+---------------------+-------------------------+---------------------+------------------------------+------+ | CREATE_TIME | MODIFY_TIME | ARBITRATION_SERVICE_KEY | ARBITRATION_SERVICE | PREVIOUS_ARBITRATION_SERVICE | TYPE | +---------------------+---------------------+-------------------------+---------------------+------------------------------+------+ | 2023-06-26 19:30:19 | 2023-06-30 09:42:40 | default | xx.xx.xx.194:2882 | | ADDR | +---------------------+---------------------+-------------------------+---------------------+------------------------------+------+ 1 row in set根据查询结果,如果
ARBITRATION_SERVICE字段为空或为其他仲裁 Server,且PREVIOUS_ARBITRATION_SERVICE字段为空,则表示该集群的仲裁服务已经被替换或删除,可以清理残留的集群信息,否则可能会误清理正在提供服务的仲裁成员。
登录原仲裁服务所在的机器,清理仲裁 Server 上残留的集群信息。
登录原仲裁服务所在的机器。
进入 ob_admin 工具所在的目录。
ob_admin 的默认安装目录为
/home/admin/oceanbase/bin。cd /home/admin/oceanbase/bin执行以下命令,清理残留的集群信息。
./ob_admin -h$ARB_SERVER_IP -p$ARB_SERVER_PORT force_clear_arb_cluster_info $CLUSTER_ID其中:
$ARB_SERVER_IP:原仲裁服务的 IP。$ARB_SERVER_PORT:原仲裁服务的 RPC 端口号,默认为 2882。$CLUSTER_ID:当前集群的集群 ID。可以连接数据库后通过SHOW PARAMETERS LIKE 'cluster_id';命令获取。SHOW PARAMETERS LIKE 'cluster_id';查询结果如下:
+-------+----------+----------------+----------+------------+-----------+----------+-------------------+----------+---------+---------+-------------------+ | zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level | +-------+----------+----------------+----------+------------+-----------+----------+-------------------+----------+---------+---------+-------------------+ | zone1 | observer | xx.xx.xx.197 | 2882 | cluster_id | NULL | 20230625 | ID of the cluster | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | | zone2 | observer | xx.xx.xx.194 | 2882 | cluster_id | NULL | 20230625 | ID of the cluster | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | +-------+----------+----------------+----------+------------+-----------+----------+-------------------+----------+---------+---------+-------------------+ 2 rows in set根据查询结果可知,当前集群的
cluster_id为20230625。
清理残留的集群信息的示例如下:
./ob_admin -hxx.xx.xx.64 -p2882 force_clear_arb_cluster_info 20230625执行结果如下:
succ to open, filename=ob_admin.log, fd=3, wf_fd=2 old log_file need close, old = ob_admin.log new = ob_admin.log succ to open, filename=ob_admin.log, fd=3, wf_fd=2 succ to open, filename=ob_admin_rs.log, fd=4, wf_fd=2