OceanBase4.0集群安装手把手教程

基于4.0.0社区版集群安装实操总结。官方文档又多又乱?看不懂?没关系,希望这篇实操总结能指明方向。

https://www.oceanbase.com/docs/community-observer-cn-10000000000900491#48fb2482-feaf-46a1-9a02-1a5654cf6a71

https://www.oceanbase.com/docs/community-observer-cn-10000000000900489

https://www.oceanbase.com/docs/community-observer-cn-10000000000900490#59268725-69d4-4826-a1d2-54b2f2ef3747

1 首要条件

https://www.oceanbase.com/docs/community-observer-cn-10000000000900489

3个机子且最低2核8g (4g就可以运行,但是无法创建租户使用。低于4g,observer program health check不通过,observer 无法启动。)

2 配置

https://www.oceanbase.com/docs/community-observer-cn-10000000000900490#ebe4705b-3558-436f-b91e-ed90b00a60e2

  • 释放内存、磁盘,保证足够资源
  • 查看网卡名称
  • 设置集群机子互相免密登录(非必须,可在配置文件里直接配置账号密码)
  • 集群机子时间同步

时间同步

# 查看命令
[root@centos-01 /root]#ntpq -4p
remote refid st t when poll reach delay offset jitter
==============================================================================
*time6.aliyun.co xxx.xxx.xxx.xxx 2 u 712 1024 377 21.951 4.253 4.208


ntpstat

timedatectl

ps -ef | grep -i ntpd


# 如果集群机子已经进行时间同步,无需设置
# 选择一台作为服务端,其它(客户端)与其同步。(也可以用其它机子做服务端)
# 服务端和客户端机子
yum install ntp ntpdate -y

# 服务端机子操作:


# 客户端机子操作
# 同步过程需要5分钟-几个小时不一定
service ntpd stop
ntpdate xxx.xxx.xxx.xxx # 同步服务端机子时间
vi /etc/ntp.conf
# 添加如下内容
server <yout_ntp_server_ip>
service ntpd start

chkconfig ntpd on

3 安装

以下操作无特殊说明只在中控机(或服务端)操作即可。

3.1 下载并安装 all-in-one package

  1. OceanBase 社区下载中心 下载最新的 all-in-one package,oceanbase-all-in-one-4.xx.xx-xxx.tar.gz。

  2. 执行以下命令解压安装包并安装。

    tar -xzf oceanbase-all-in-one-4.xx.xx-xxx.tar.gz
    cd oceanbase-all-in-one/bin/
    ./install.sh
    
  3. 执行 which obdwhich obclient 检测是否安装成功, 如果可以找到 oceanbase-all-in-one 下的 obd 和 obclient 路径,则表示安装成功。

    [root@test .obd]# which obd
    /root/.oceanbase-all-in-one/obd/usr/bin/obd
    [root@test .obd]# which obclient
    /root/.oceanbase-all-in-one/obclient/u01/obclient/bin/obclient
    

3.2 选择配置文件进行安装

安装有两种方式:

  • deploy : (老手使用)配置文件在~/.oceanbase-all-in-one/conf
  • autodeploy:(新手推荐):配置文件(~/.oceanbase-all-in-one/conf/autodeploy

这里以autodeploy说明:

# 进入
cd ~/.oceanbase-all-in-one/conf/autodeploy
# 查看该目录下的文件,各配置说明如下
  • default-example.yaml : 全家桶安装(包括server、OBProxy 、client、ocp-express);似乎还有Grafana 和 Prometheus
  • single-example.yaml : 单机模式(一个server)
  • single-with-obproxy-example.yaml: 单机模式(一个server和obproxy)
  • distributed-example.yaml:集群模式(默认3个server)
  • distributed-with-obproxy-example.yaml集群模式(默认3个server + 1个obproxy)
  • distributed-with-obproxy-and-obagent-example.yaml

推荐distributed-with-obproxy-example.yaml

据官方解释obproxy是用来做代理,但又需要自己集群及负载(就是个纯代理,有点懵),当然,也可以不需要,直接直连server。(那就选择distributed-example.yaml)

修改distributed-with-obproxy-example.yaml

  • 修改oceanbase-ce:改为自己的集群ip
  • 修改devname:改为对应网卡名
  • 修改obproxy-ce:集群里面选一台(单独一台或者和oceanbase-ce共用都行,毕竟obproxy也要集群,测试就用一个即可)
  • (可选)内存不够的,修改memory_limit:4G
  • (可选)端口如果被占用,可自定义oceanbase-ce(默认2881)和obproxy-ce(默认2883)的端口

运行命令

obd cluster autodeploy obtest -c distributed-with-obproxy-example.yaml

注:这里obtest 是集群名称,可自定义

等待输出,有红叉或者error就是安装失败,成功如下:
image

3.3 总结安装如下

#必备条件:参考1、 2
# 第一步:安装obd,如3.1
# 第二步,进入autodeploy,修改配置文件
cd ~/.oceanbase-all-in-one/conf/autodeploy
vim 配置文件
# 在autodeploy目录下
obd cluster autodeploy 集群名称 -c 配置文件

3.4 obd的一些命令

obd cluster --help # 查看关于cluster的相关命令参数
obd cluster list # 查看集群,集群状态有destroyed、deploy、running三种
obd cluster destroy 集群名 # 如果集群创建失败,需要destroy掉在deploy。(另外每次最好更换集群名)
obd cluster autodeploy 集群名称 -c 配置文件 # 根据配置文件创建集群
obd cluster start 集群名称 # 启动集群
obd cluster stop 集群名称 # destroy前要先stop
obd cluster display 集群名称 # 查看集群信息,即info
# 其它相关参数,基本没用

4 使用

4.1 创建租户

obd cluster tenant create 集群名 -n 租户名

4.2 连接

吐槽:既然不建议无租户的root的连接方式,就不要给出来;而且有租户才能用,乖乖

OceanBase 的连接方式有两种

  • 直连,即2881端口,ip任意一个集群内机子ip
  • 通过obproxy,即2883端口,安装obproxy的ip

连接工具:

  1. 自身的obclient
  2. mysql、oracle
  3. Navicat

命令如下:

obclient -h<your_ip> -P<obproxy_port> -uroot

# 连接sys实例
obclient -h192.168.79.2 -P2883 -uroot@sys@集群名
# 连接租户实例
obclient -h192.168.79.2 -P2883 -uroot@租户名@集群名

PS:你问我为啥没有密码?因为我自始至终也没看到在哪里设置密码
CSDN原文
如果对你有帮助,请转发分享,谢谢

2 个赞

好文点赞