OceanBase 数据库集群至少由三个节点组成,所以先准备好3台服务器:
IP | 配置 | 操作系统 |
---|---|---|
x.x.x.150 | Intel x86 12C 64G内存 1T SSD | CentOS 7.9 |
x.x.x.155 | Intel x86 12C 64G内存 1T SSD | CentOS 7.9 |
x.x.x.222 | Intel x86 12C 64G内存 1T SSD | CentOS 7.9 |
关于运行 OceanBase 集群对于硬件资源和系统软件的要求,大家可以参考官方建议: https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000508277
服务器特殊的配置项(每台都要设置):
如果是使用的物理机部署,建议在BIOS中开启最大性能模式,X86芯片开启超线程。三台节点保证时间一致。
OceanBase 提供了多种部署方式,我们这里采用命令行部署,官方提供了集群管理工具OBD(俗称黑屏部署)。
下载安装包,直接上全家桶 All in One 的版本:https://www.oceanbase.com/softwarecenter
在三台机器中任意挑选一台当做集群的中控机,通过OBD来操作整个集群,中控机只是用于管理集群,用单独的机器部署也可以。
把安装包上传到中控机,先把OBD装好:
到这里集群管理工具 obd 和客户端连接工具 obclient 就都装好了。
在oceanbase-all-in-one/conf
目录下放了很多配置文件示例,可根据实际部署需要来修改。我这里要部署一套标准的 OceanBase 分布式集群,包含的组件有:
配置文件内容如下:
配置文件的整体格式是按组件来配置,三个节点定义成三个server,分布在三个zone,保存了三副本数据,参数定义参考注释即可。
这里要注意几个端口,observer 对外服务是用2881,对内节点间通信是用2882,obproxy是用2883。
准备好配置文件后部署集群就两行命令的事,先执行:
这一步会把各组件需要的文件通过shh传到各个节点上,同时创建目录、服务、给权限等等。
等最后输出下面这个信息就表示部署成功了。
接下来按提示启动集群即可:
还可以通过 list 和 display 命名查看集群状态:
前面启动集群的时候已经打印出了连接集群的方式,这里连接入口有两种。
一种是直连任意一台 observer,另一种是走负载均衡代理连接 obproxy,两种方式注意区别 ip 和端口号。另外连接工具用 obclient 或者 mysql 都可以。
先看一下3个节点的情况:
再看三副本的分布情况:
LOCALITY字段记录了副本的分布,这里面FULL代表全量副本,可以支持读写和参与投票选举leader,后面是该副本分布在哪个zone。
尝试创建跨zone的资源池和租户,注意 UNIT_NUM 不能超过每个zone里的 observer 数量:
登录到新租户里面做一些数据操作(新租户里的root用户默认是空密码):
下一篇尝试从 mysql 迁移数据到 OceanBase。