基于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
- 从 OceanBase 社区下载中心 下载最新的 all-in-one package,oceanbase-all-in-one-4.xx.xx-xxx.tar.gz。
- 执行以下命令解压安装包并安装。
tar -xzf oceanbase-all-in-one-4.xx.xx-xxx.tar.gz
cd oceanbase-all-in-one/bin/
./install.sh
3. 执行 which obd 和 which 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就是安装失败,成功如下:
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
连接工具:
- 自身的obclient
- mysql、oracle
- 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@租户名@集群名
# mysql连接方式
mysql -h 192.168.1.100 -P 2883 -u root@sys#obtest oceanbase -c -A
PS:你问我为啥没有密码?因为我自始至终也没看到在哪里设置密码