OceanBase(3)OBProxy部署与使用

TangLu 未命名 2022-05-23 1359 0

一、OBProxy介绍

OB Proxy是访问 OceanBase 的反向代理工具,虽然 OBServer 可以直连访问,但是如果直连的节点发生故障后会导致服务不可用,而通过OBPRoxy可以对SQL做基本解析,确定对应Leader所在节点,然后进行反向代理将请求路由到对应Leader,如果无法确定时随机选择OB Server。虽然OB Proxy是一个无状态的服务,不对数据做持久化,对部署位置无要求,但是在生产环境中建议为OB Proxy部署在独立的节点上并形成高可用


、OBProxy安装

如果是手动搭建的OBServer集群需要单独安装OBProxy。下载RPM安装包后直接安装,OBProxy默认安装路径为/home/admin/obproxy-{version},还会生成一个etc目录和log目录分别用于存放配置信息和日志

rpm -ivh obproxy-ce-3.2.3-2.el7.x86_64.rpm


三、启动OBProxy

OBProxy启动后默认监听2883、2884端口,会生成etc目录保存运行参数以及log目录保存运行日志

bin/obproxy -r "172.20.1.212:2881;172.20.1.213:2881;172.20.1.214:2881" -p 2883 -o "enable_strict_kernel_release=false,enable_cluster_checkout=false,enable_metadb_used=false" -c obdemo
#-c:指定集群名称,要和observer集群名称一致
#-o:指定集群启动参数
#-p:指定obproxy启动端口
#-r:指定observer集群的地址


四、OBProxy账号创建

obproxy启动后需要修改obproxy的管理密码以及与observer通信所需的密码

mysql -h 172.20.1.212 -u root@proxysys -P 2883 -p      #obproxy的默认登录用户名root@proxysys,密码为空
alter proxyconfig set observer_sys_password = '123456';   #修改obproxy root密码
alter proxyconfig set obproxy_sys_password = '123456';          
mysql -h 172.20.1.212 -u root@proxysys -P 2883 -p123456         #再次登录obproxy需要输入密码

obproxy1.png


· 登录observer,创建obproxy和observer通信用户

mysql -h 172.20.1.212 -u root@sys -P 2881 -p123456 -c -A         #这里使用root账号直连observer
create user proxyro;                               #OBProxy 连接 OceanBase 集群时默认用户为proxyro
grant select on oceanbase.* to proxyro identified by '123456' ;


· 通过 OBProxy 连接 OceanBase 集群时用户名需要为"用户名@集群名#实例名"这样的格式。登录后如果能查看所有会话,则说明 OBProxy 部署成功。OBproxy所提供的命令和MySQL并非完全一样,对于OBProxy不支持的命令执行后返回的都是系统变量信息,这些不被OBProxy支持的命令可以通过直连OBServer进行查看

mysql -h172.20.1.212 -uroot@sys#obdemo -P2883 -p123456 -c -A oceanbase 
show full processlist;


评论