首批通过分布式安全可靠测评,为关键业务系统打造
为集群替换仲裁服务
更新时间:2023-09-27 20:10:52
功能适用性
该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版暂不支持仲裁服务功能。
当仲裁服务所在的机器故障时,可以在新的机器上部署仲裁服务后为集群替换故障的仲裁服务。
前提条件
请确认待替换仲裁服务的新机器上已安装 OceanBase 数据库软件并已启动仲裁服务,详细操作可参见 部署两副本加仲裁服务的 OceanBase 集群。
操作步骤
使用
root用户登录到集群的sys租户。连接示例如下,连接数据库时请以实际环境为准。
obclient -h10.xx.xx.xx -P2883 -uroot@sys#obdemo -p***** -A有关更加详细的连接数据库的操作指引,参见 连接数据库概述(MySQL 模式) 和 连接数据库概述(Oracle 模式)。
执行以下命令,获取集群当前的仲裁服务地址。
SELECT * FROM oceanbase.DBA_OB_ARBITRATION_SERVICE;查询结果中的
ARBITRATION_SERVICE列即展示了集群当前的仲裁服务地址。执行以下命令,为集群替换仲裁服务。
ALTER SYSTEM REPLACE ARBITRATION SERVICE 'curr_arb_server_ip:curr_arb_server_port' WITH 'new_arb_server_ip:new_arb_server_port';相关参数说明如下:
curr_arb_server_ip:curr_arb_server_port:表示当前故障的仲裁服务的 IP 和 RPC 端口,端口号默认为 2882。new_arb_server_ip:new_arb_server_port:表示新的仲裁服务的 IP 和 RPC 端口,端口号默认为 2882。
示例如下:
obclient [(none)]> ALTER SYSTEM REPLACE ARBITRATION SERVICE '100.xx.xx.x2:2882' WITH '100.xx.xx.x3:2882';(可选)替换命令执行后,如果出现超时的情况,可以查询
DBA_OB_ARBITRATION_SERVICE视图确认仲裁服务的替换状态。SELECT * FROM oceanbase.DBA_OB_ARBITRATION_SERVICE;根据查询结果,如果
PREVIOUS_ARBITRATION_SERVICE列的值为非空,则表示后台变更流程还未完成,需要等待变更流程结束。如果PREVIOUS_ARBITRATION_SERVICE列的值为空,则表示后台变更流程已完成,仲裁服务实际已替换成功。有关
DBA_OB_ARBITRATION_SERVICE视图的更多介绍,请参见 DBA_OB_ARBITRATION_SERVICE。
相关文档
更多仲裁服务相关的信息,请参见以下内容: