关于Oceanbase4.3社区版弹性扩容的几点疑问

我是用Ubuntu布署了一套Oceanbase环境,搭建集群的方式是用了obd demo,集群信息如下
image

现在想测试单副本多节点,也大体理了一些思路

1.通过阅读文档,【添加节点】适用于弹性扩容,比较符合我的需求,因为我是想秒杀场景临时扩容几个小时,互动结束就进行缩容。
2.看了文档,扩容大体上分为:在新机器上搭建环境、在集群中增加节点、扩容租户unit
3.如果要进行缩容,步骤应该是隔离节点 - 删除节点

现在有些问题整不明白
1.以上步骤做完之后,我如何知道新扩容的机器已经完全准备好?通过SELECT * FROM oceanbase.DBA_OB_SERVERS;查询就行?比如有没有数据的分发过程的进度或任务状态之类?
2.集群通过扩容从单节点变成了多节点,如何是用集群?业务系统的连接字符串需要更改麽?现在都是直接只用节点的2881来访问数据库,如果不改的话新扩容的机器还能发挥作用麽?
3.秒杀活动结束后计划进行缩容,如何才能安全缩容,按照隔离节点 - 删除节点的过程就可以么?有没有数据的归拢过程或任务状态之类?
4.在翻看社区的历史帖子时注意到有人问这种集群是127.0.0.1的节点无法扩容,是这样么,可是我们已经布署好了,如果确实需要部署成局域网IP,有办法更改麽?
5.如何确认读写请求落在了新扩容的节点上?

总结一下:我们平时主要是一台机器,但是业务场景决定了会出现商城秒杀活动,访问量会激增,原来用的是MySQL,对于弹性伸缩这块不支持,必须用主从等,还得等数据同步,就是看中Oceanbase的分布式这块,需要的时候临时购买服务器快速扩容来提高读写性能!公司非常重视这次更换数据库,希望疑问能得到回复,也给其他想要切换的人一些指导

2 个赞

1.obd demo是用了进行测试使用的不能直接添加新节点,建议使用obd cluster destroy demo铲掉
,使用obd web 安装ocp-express进行白屏化安装集群。OceanBase分布式数据库-海量数据 笔笔算数
使用ocp后可以白屏化轻松进行集群添加删除新zone的节点。
2.高可用性可以使用ocp-express搭建obproxy路由,端口为2883,2881是本地访问的端口不会发挥作用。OceanBase分布式数据库-海量数据 笔笔算数
3.使用ocp删除节点即可
4. ob的主副本提供读写功能,可以将集群的副本优先级修改为随机状态这样请求就随机落到不同节点上了

1 个赞

1、问题的建议

机器准备好,添加进去集群,新机器需要追补日志,集群会自动均衡数据(不需要手动干预),可以根据DBA_OB_SERVERS的状态来判断节点,主要是STATUS为ACTIVE以及START_SERVICE_TIME有效值,则表示节点进程启动后,可以对外提供服务的的时间点

详细自动含义参考 OceanBase分布式数据库-海量数据 笔笔算数

2、问题2的建议:
你现在测试使用的2881端口直连observer,不太符合生产使用,一般ob多节点集群,前面需要有带有obproxy,由obproxy去做后端的路由以及连接管理。直接的坏处就是写死了一个IP,如果该IP节点宕机了,那么应用也就无法连接上,如果连接在obproxy上面的话,obproxy自己会感知,转到到正常的observer节点。可以参考如下图的架构设计。

当然obproxy有多个节点多IP,在其前面可以做一个F5负载均衡,或者使用一个DNS,应用侧使用域名,由DNS解析域名映射到obproxy的多个IP上,这样数据库前面的应用可以不用修改IP地址。大概如下的示意图

3、关于问题3的建议

关于扩缩容,一般来讲扩容相对简单,缩容要评估一下缩容后的资源是否能满足业务要求,最好做好日常监测,形成基线参考值,缩容的时候可执行集群管理指令,将待删除节点上的数据和负载迁移到其他可用节点上去,然后回收待删除节点,完成物理机缩容。缩容的时候考虑切主,是否带来业务影响,一般业务低峰期做相对较好。

4、关于问题4的建议

如果是obd部署的,重新部署,查一下obd的多节点配置文件,按需进行修改即可。

5、关于问题5

强一致读写一般看leader所在,你可以通过sql_audit查看sql执行的信息,里面有相关的ip地址,根据ip地址应该可以查看哪些在你新加入的节点执行的。(也跟业务有关,如果刚刚业务请求的数据leader都不在新加入的节点,没数据也正常)

另外也可以在opc白屏上面去监控看看,看新加入的节点的TPS与QPS。

以上纯粹个人建议,仅供参考。

1 个赞

sql_audit 表的字段参考

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000819111

关键还是得多测试,演练。

1 个赞

使用obd cluster destroy demo铲掉,数据有没有办法转移到新集群。 用逻辑备份数据量太大了,有没有配套的解决方案

1 个赞

可以用oms迁移数据或者物理备份恢复数据,另外生产环境不要用这个demo环境,生产环境建议做好规划使用ocp部署运维管理。

1 个赞

你好刚刚测试了一下,obd demo集群可以充当oms数据源,不可以纳入cp集群,可以参考上面建议使用oms迁移,或者可以尝试使用obd命令
如下面文章中 obd cluster tenant create-standby创建备租户方式进行主备切换,备租户要在新节点使用obd创建的集群
https://www.oceanbase.com/docs/community-obd-cn-1000000000955364#13-title-obd%20cluster%20tenant%20create

您这边还有疑问吗