本文使用vSAN集群进行真实安装,密码均为随机生成,试验结束后销毁网段和集群。
为现代数据架构打造的开源分布式数据库。兼容 MySQL 的单机分布式一体化国产开源数据库,具有原生分布式架构,支持金融级高可用、透明水平扩展、分布式事务、多租户和语法兼容等企业级特性。OceanBase 内核通过大规模商用场景的考验,已服务众多行业客户;面向未来携手生态伙伴,共建开源开放的数据库内核和生态。

文档: https://www.oceanbase.com/docs
OceanBase 云平台(OceanBase Cloud Platform,OCP)是一款为 OceanBase 集群量身打造的企业级管理平台,兼容 OceanBase 所有主流版本。OCP 提供对 OceanBase 图形化管理能力,包括数据库及相关资源的全生命周期管理、监控告警、性能诊断、故障恢复、备份恢复等,旨在协助客户更加高效地管理 OceanBase 数据库,降低企业的IT运维成本和用户的学习成本。 https://www.oceanbase.com/docs/ocp
本教程部署简化版集群 1ocp 1oms 2proxy 3zone6server 共10台主机,另外独立安装zabbix6和minio ocp配置 16C 64G 500G 其他主机配置 8C 32G 500G 操作系统为anolis8,全部关闭防火墙
tntocp 192.168.4.100
tntoms 192.168.4.101
tntproxy1 192.168.4.102
tntproxy2 192.168.4.103
tntob1-1 192.168.4.104
tntob1-2 192.168.4.105
tntob2-1 192.168.4.106
tntob2-2 192.168.4.107
tntob3-1 192.168.4.108
tntob3-2 192.168.4.109
tntzabbix6 192.168.4.110
tntminio 192.168.4.111下载OceanBase社区版一键安装包 (OceanBase All in One) OceanBase 数据库一键离线安装包,包括 OceanBase 数据库和 OCP(自 V4.3.3 起包含)、obd、OBProxy、OBClient、OCP Express、Prometheus、Grafana,以及诊断和测试工具。 https://www.oceanbase.com/softwarecenter
OCP依赖仅支持 JDK1.8 版本,下载并安装 jre-8u441-linux-x64.rpm https://www.java.com/en/download/manual.jsp
所有主机关闭防火墙
systemctl stop firewalld && systemctl disable firewalld上传一键安装包至OCP主机、解压安装
解压
tar zxf oceanbase-all-in-one-4.3.5_bp1_20250320.el8.x86_64.tar.gz启动obd
cd oceanbase-all-in-one/bin
source ~/.oceanbase-all-in-one/bin/env.sh
obd web install生成网页安装URL
进入 OCP 部署向导页面

部署OCP云平台并创建全新数据库

设置集群名称

创建metaDB,我这里使用ocp主机单机部署metaDB,即OCP、数据库节点、OBProxy都是一台服务器

OCP 资源规划为20台主机

预检查无异常

部署中,等待

部署完成,记好账号密码

http://192.168.4.100:8080
看到OCP平台初始化失败

查看异常为netstat: 未找到命令

注意,所有OB主机都需要netstat,通过yum安装
yum install net-tools -y所有OB主机都需要netstat!全部安装一遍
点击重启,执行成功

OCP部署成功


添加主机-新建集群-创建租户-创建用户-创建OBProxy集群
192.168.4.102-109

主机标准化 分为OBProxy和OceanBase,等待标准化完成

OBProxy标准化无异常但也需要修复一下,OceanBase标准化有8个异常,都需要修复

修复
检查透明大页
echo never > /sys/kernel/mm/transparent_hugepage/enabled
生效
chmod +x /etc/rc.d/rc.local
添加到开机启动
vi /etc/rc.d/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled
安装python2.7
yum install python2 -y
禁用swap分区
swapoff -a
删除swap分区
/etc/fstab
安装软件
yum -y install net-tools mtrtar binutils bind-utils curlnc iproute
添加admin用户
groupadd -g admin
useradd -m -u -g -s /bin/bash admin
id admin
关闭selinux
检查ulimit信息
/etc/security/limits.d/99-oceanbase_limits.conf
root soft nofile
root hard nofile
admin soft nofile
admin hard nofile
admin soft stack
admin hard stack
admin soft nproc
admin hard nproc
admin soft core unlimited
admin hard core unlimited
检查 clocksource 信息
echo tsc > /sys/devices/system/clocksource/clocksource0/current_clocksource
时间同步
调整端口范围,保留端口
sudo sysctl net.ipv4.ip_local_port_range
vi /etc/sysctl.conf
net.ipv4.ip_local_port_range =
net.ipv4.ip_local_reserved_ports =-63881
生效
sudo sysctl -p
python2软连接到python
sudoln -sf /usr/bin/python2 /usr/bin/python
创建软件目录
mkdir /data/log1 -p
mkdir /data/1 -p
重新检查,修复完成

新建tntob集群,3zone,每zone 2台主机,由于是实验集群,我没有开启cgroup

创建中

安装完成


创建zabbix6租户

Unit规格选择S1并允许所有IP访问

创建完成

在zabbix6租户中创建用户zabbixdb,先不用创建数据库,一会直接导入一个数据库

创建tntproxy集群,加入102、103两台主机
注意:102、103都可以访问集群,而访问地址,一般指的是负载均衡设备的VIP地址,暂不讨论,这里访问地址先填写102

创建完成

连接到tntob集群

使用adminer登陆测试一下
连接参数
mysql -h192.168.4.102 -P2883 -uroot@zabbix6#tntob -p
登录成功

OMS文档 https://www.oceanbase.com/docs/oms-cn
创建oms租户作为OMS迁移服务的元数据库,需要使用租户的root用户

下载软件包 oms_4.2.8-ce.tar.gz 上传到tntoms主机 https://www.oceanbase.com/softwarecenter
安装docker
yum install -y yum-utils
#阿里云加速源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io启动docker
systemctl enable --now docker导入镜像
docker load -i oms_4.2.8-ce.tar.gz查看镜像名
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
reg.docker.alibaba-inc.com/oceanbase/oms feature_4.2.8_ce d56598287295 weeks ago .9GB
获取部署脚本
sudo docker run -d --net host --name oms-config-tool reg.docker.alibaba-inc.com/oceanbase/oms:feature_4.2.8_ce bash&&sudo docker cp oms-config-tool:/root/docker_remote_deploy.sh .&&sudo docker rm -f oms-config-tool
启动部署
mkdir /oms
bash docker_remote_deploy.sh -o /oms -i 192.168.4.101 -d reg.docker.alibaba-inc.com/oceanbase/oms:feature_4.2.8_ce
安装中
****CPU****
CPU_Name(System_Name): Intel(R) Xeon(R) Silver 4309Y CPU @ .80GHz
Total_physical_CPU:
Total_core_num:
*****Memory******
Total_Mem: KB
Total_Mem: G
*****Disk******
Total_disk_avail: G
提示:输入 <Control-C> 可退出部署
请选择部署模式:
●单地域单节点
单地域多节点
多地域
您选择的部署模式是:单地域单节点部署模式
请选择您所需要进行的任务:
●无配置文件,全新部署 OMS,从生成配置文件开始
已通过脚本[-c]选项传入参考配置文件,基于参考配置文件开始配置
开始配置元信息库,可以是 MySQL 或 OceanBase 数据库 MySQL 租户
(元信息库用于存储 OMS 运行时元数据信息)
请输入元信息数据库 IP:192.168.4.102
请输入元信息数据库端口:2883
请输入元信息数据库用户名:root@oms#tntob
请输入元信息数据库密码:***********************
请为 OMS 元数据库设置前缀
(示例:当前缀设置为 oms 时,最终库名分别为 oms_rm/oms_cm/oms_cm_hb):
您的元信息库配置如下:
{
"drc_cm_db":"_cm",
"drc_cm_heartbeat_db":"_cm_hb",
"drc_rm_db":"_rm",
"init_db":"true",
"oms_meta_host":"192.168.4.102",
"oms_meta_password":"9cb;CcrN1C3f,Xlub)rx{(#",
"oms_meta_port":"2883",
"oms_meta_user":"root@oms#tntob"
}
[y/n] 请确认配置信息[y]y
您选择的部署模式为单地域单节点部署模式
[y/n] 是否自定义组件端口号,并配置相关参数?[n]n
[y/n] 获取到您的默认 IP 地址:192.168.4.101,请确认是否需要更改?[n]n
您的 OMS 集群配置如下:
{
"cm_is_default": true,
"cm_location":,
"cm_nodes":[
"192.168.4.101"
],
"cm_region":"default",
"cm_region_cn":"默认地域",
"cm_server_port":"8088",
"cm_url":"http://192.168.4.101:8088",
"ghana_server_port":"8090",
"nginx_server_port":"8089",
"sshd_server_port":"2023",
"supervisor_server_port":"9000"
}
[y/n] 请确认配置信息[y]y
[y/n] 您是否需要对 OMS 历史数据进行监控?[n]n
[y/n] 是否需要开启 OMS 审计日志功能,并将审计日志写入 SLS 服务?[n]n
已加载您的所有配置项,并校验通过。
您的配置如下:
{
"apsara_audit_enable":"false",
"apsara_audit_sls_access_key":"",
"apsara_audit_sls_access_secret":"",
"apsara_audit_sls_endpoint":"",
"apsara_audit_sls_ops_site_topic":"",
"apsara_audit_sls_user_site_topic":"",
"cm_is_default": true,
"cm_location":"0",
"cm_nodes":[
"192.168.4.101"
],
"cm_region":"default",
"cm_region_cn":"默认地域",
"cm_server_port":"8088",
"cm_url":"http://192.168.4.101:8088",
"drc_cm_db":"_cm",
"drc_cm_heartbeat_db":"_cm_hb",
"drc_rm_db":"_rm",
"ghana_server_port":"8090",
"init_db":"true",
"nginx_server_port":"8089",
"oms_meta_host":"192.168.4.102",
"oms_meta_password":"9cb;CcrN1C3f,Xlub)rx{(#",
"oms_meta_port":"2883",
"oms_meta_user":"root@oms#tntob",
"sshd_server_port":"2023",
"supervisor_server_port":"9000",
"tsdb_enabled":"false",
"tsdb_password":"",
"tsdb_service":"",
"tsdb_url":"",
"tsdb_username":""
}
[y/n] 您是否需要重新配置?[n]n
您是需要在当前执行的机器上
接下来 OMS 需要在节点 ['192.168.4.101'] 上依次执行部署脚本。
请输入节点 192.168.4.101 上预备部署 OMS 的挂载目录:[/oms/]/oms/
请您确认以下内容:
[y/n] 部署 OMS 的 [镜像名/IMAGE-ID] 是:reg.docker.alibaba-inc.com/oceanbase/oms:feature_4.2.8_ce ,请确认是否正确。[y]y
[y/n] 是否需要在 OMS 容器中挂载 HTTPS 证书?[n]n
[y/n]192.168.4.101 节点下的配置文件 config.yaml 将写在这个路径:/oms/ 下可以吗?[y]y
.......
--------------------------------------------------------------------------------
# 【结束】全部初始化步骤执行成功
--------------------------------------------------------------------------------
登录控制台,首次登陆设置密码 http://192.168.4.101:8089/

查看王工zabbix6文章快速部署,部署完成后迁移到OceanBase集群 https://90apt.com/2982 安装完成

使用adminer导出数据库结构,不包括数据 adminer安装见后面1Panel部分

使用adminer导入到zabbix租户中


在OCP中给zabbixuser用户赋予zabbix数据库全部权限

添加双方数据源

配置迁移任务





启动任务

迁移完成,进行切换

配置文件修改 /etc/zabbix/web/zabbix.conf.php
<?php
// Zabbix GUI configuration file.
$DB['TYPE']='MYSQL';
$DB['SERVER']='192.168.4.102';
$DB['PORT']='2883';
$DB['DATABASE']='zabbix';
$DB['USER']='zabbixuser@zabbix6#tntob';
$DB['PASSWORD']='r*h(c^rLst8F';
/etc/zabbix/zabbix_server.conf
DBHost=192.168.4.102
DBName=zabbix
DBUser=zabbixuser@zabbix6#tntob
DBPassword=r*h(c^rLst8F
DBPort=重启zabbix服务
systemctl restart zabbix-server查看日志是否有异常 /var/log/zabbix/zabbix_server.log
Unable to start Zabbix server due to unsupported MySQL database version (5.06.25).修改OBPorxy数据版本,修改为8.0.0


再次重启zabbix服务查看日志,无异常

zabbix功能正常,采集正常


安装docker
yum install -y yum-utils
#阿里云加速源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io启动docker
systemctl enable --now dockercurl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh &&sh quick_start.sh安装adminer web数据库管理工具 支持MySQL、MariaDB、 SQLite、PostgreSQL、Oracle (beta)、MS SQL

登录1Panel面板

安装minio

登录minio

创建Bucket

创建Access Keys

创建zabbix6租户备份策略

存储目录为Bucket名称 访问域名为API的URL http://192.168.4.111:9000 在填入AK、SK,点击测试即可

立即备份

备份完成

误删数据库 由于王工上年纪老眼昏花,不小心删除了zabbix数据库,不稳啦!


zabbix崩溃

进行租户恢复

恢复完成

创建了新的租户,将原租户改名,新租户改为原来的名,这样业务就不用动了


业务恢复了,王工又稳啦!

添加主机-集群管理-添加OBServer、新增Zone

添加主机 OCP云平台-主机-添加主机 主机还是要按之前标准化进行环境修复,修复好再添加

再次进行标准化


OCP云平台-集群-概览-添加OBServer

一段时间后部署模式变为集群 (3-3-3)

新增Zone与之相同
理论上不能缩容,如果你非要缩,那可能得新建集群迁移数据库来变相缩容
进入租户修改Unit OCP云平台-租户-概览-修改Unit

如,将配置修改为S2,Unit修改为2
扩容成功

如,将配置修改为S1,Unit修改为1

缩容完成

OceanBase 开发者中心(OceanBase Developer Center,ODC)是开源的企业级数据库协同开发工具,有桌面版、Web 版两种产品形态。 ODC Web 版提供了个人空间和团队空间两种工作模式。个人空间适合个人开发者使用,为您在浏览器端提供桌面版的体验;团队空间适合开发者和 DBA 协同使用,既是开发工具也是管控协同平台。 ODC 的代码维护在 Github,单击查看详情,加入 ODC 开源社区,一起创造 开发者和 DBA 喜爱的数据库协同开发工具。 https://www.oceanbase.com/docs/odc
注意:按官方教程你很可能装不上,还是看我的吧
上传到OMS主机,我将ODC安装在OMS主机,ODC为docker镜像 https://www.oceanbase.com/softwarecenter
创建tntodc租户 tntodc数据库 root用户
注意:数据库用户我测试用普通用户无法部署ODC,需要root用户

gunzip -c obodc4.3.3-bp2.tar.gz | docker load查看镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
reg.docker.alibaba-inc.com/oceanbase/oms feature_4.2.8_ce d56598287295 weeks ago .9GB
oceanbase/odc 4.3.3_bp2 98a74ab3fbe1 weeks ago .75GB
odcinstall.sh
#!/usr/bin/env bash
mkdir -p /tntodc/log/odc
mkdir -p /tntodc/data/odc
docker run -v /tntodc/log/odc:/opt/odc/log -v /tntodc/data/odc:/opt/odc/data \
-d -i -p :8989 --cpu-period --cpu-quota --memory 8G --name "obodc"\
-e "DATABASE_HOST=192.168.4.102"\
-e "DATABASE_PORT=2883"\
-e "DATABASE_USERNAME=root@tntodc#tntob"\
-e "DATABASE_PASSWORD=78ABcd##123"\
-e "DATABASE_NAME=tntodc"\
-e "ODC_ADMIN_INITIAL_PASSWORD=78ABcd##123"\
oceanbase/odc:4.3.3_bp2
注意Shell 环境下,字符串中包含 !、 等特殊字符时,变量值需要使用单引号。例如:DATABASE_PASSWORD='11111!'。参数 ODC_ADMIN_INITIAL_PASSWORD 用于指定 ODC 管理员账号的初始密码。设置的初始密码需要须满足以下条件:至少 2 个数字。至少 2 个大写字母。至少 2 个小写字母。至少 2 个特殊字符,特殊字符的范围为 ._+@#%。不包含空格和其他特殊字符,长度为 8-32。
bash odcinstall.sh
成功

关机1台OBServer主机,集群无影响,一段时间后Zone内另一台主机接管此OBServer功能

开机此OBServer,一段时间后集群自动修复此主机并上线

暂无
太强了