部署oceanbase,数据库国产化

部署oceanbase,数据库国产化

由于某些原因,公司的数据库需要由mysql,换为oceanbase,所以有了这篇帖子。

这个部署卡了我一周,现在终于可以使用了。

遇到了很多的问题,大部分都是连接超时,在启动,暂停,查看集群状态的时候连接超时,如下图所示,会一直卡在这个连接服务器的位置,其实真正运行起来他会很快,而不是需要等好几分钟,甚至十几分钟。

我的运行环境:

  • 虚拟化平台:VMware 虚拟机

  • 操作系统:Ubuntu 22.04.5 LTS

  • 内核版本:5.15.0-185-generic

  • CPU架构:x86_64

  • 总内存:16 GiB

  • 磁盘:机械硬盘 (HDD),根目录/总容量 156GB,当前使用 50%(可用 76GB

具体的可以跟官方的的比较一下https://www.oceanbase.com/docs/common-oceanbase-database-standalone-1000000006076963

关于里面的一项磁盘类型,磁盘类型官方文档推荐的是SSD,我用的是HDD,目前没有什么影响。如果需要搞性能的,可以选择SSD。

我选择的是单机使用obd 命令行部署集中式版,官方文档推荐的使用交互式部署方法部署。链接给你们放一下在这里:使用 obd 命令行部署集中式版 - OceanBase 数据库 V4.4.2 | OceanBase 文档中心

要注意,如果你们的磁盘或者内存不够,一定要按照官方的最小要求先扩大,不然后面可能会遇到各种各样的问题。

另外要注意的几点:

如果你曾经部署过,但是遇到了问题,需要重新部署的情况,

1.我建议在Ubuntu新建一个用户,并且开好足够的权限。

创建用户 - OceanBase 数据库 V4.4.2 | OceanBase 文档中心

2. 修复时钟/时区(非常重要,如果你有时区不匹配的问题)
– 检查时区

timedatectl date

– 确保时区正确且开启 NTP 同步

sudo timedatectl set-timezone Asia/Shanghai sudo systemctl enable --now chronyd # 或 ntp(找不到也没事,执行完上一条可以再检查一下时区是否正确)

– 确认时间不会跳变
chronyc tracking(执行不成功也没事,只要前面地命令检查出来的时区正确即可)

3. 把2881,2882,2886的端口的残留进程清掉,清理残留的数据目录(.oceanbase-all-in-one_20260728015113,myoceanbase以及其他的一些,可以询问一下ai,哪些残留数据会影响重新部署),确认 OBD 集群列表为空(obd cluster list); 不用删除安装包解压目录oceanbase-all-in-on,直接进入oceanbase-all-in-on开始部署;

按照官方文档部署好之后会输出配置信息并且成功启动集群

这时用命令查询,集群能否成功启动并且正常使用

admin@dotmess:~/oceanbase-all-in-one$ obclient -h127.0.0.1 -P2881 -uroot@sys -p'你自己的密码' -Doceanbase -e "select 1;" +------+ | 1 | +------+ | 1 | +------+
admin@dotmess:~/oceanbase-all-in-one$ obd cluster display myoceanbase Get local repositories and plugins ok Open ssh connection ok Connect to observer 127.0.0.1:2881 ok Wait for observer init ok +---------------------------------------------+ | oceanbase-ce | +-----------+---------+------+-------+--------+ | ip | version | port | zone | status | +-----------+---------+------+-------+--------+ | 127.0.0.1 | 4.6.0.0 | 2881 | zone1 | ACTIVE | +-----------+---------+------+-------+--------+ obclient -h127.0.0.1 -P2881 -uroot@sys -p'ai123456' -Doceanbase -A cluster unique id: 9b8d43d1-3d37-5b50-b551-07aa5ab5fbc0-19fa7c420b2-00000604 obshell program health check ok display obshell dashboard ok +----------------------------------------------------+ | obshell Dashboard | +-----------------------+------+------------+--------+ | url | user | password | status | +-----------------------+------+------------+--------+ | http://127.0.1.1:2886 | root | '********' | active | +-----------------------+------+------------+--------+ Trace ID: cf20b9d2-8a5b-11f1-a64c-000c296051f7 If you want to view detailed obd logs, please run: obd display-trace cf20b9d2-8a5b-11f1-a64c-000c296051f7

如果输出很快,一般都是没什么问题了的。