资讯专栏INFORMATION COLUMN

OceanBase在线扩容缩容

IT那活儿 / 3224人阅读
OceanBase在线扩容缩容
一. 基本概述

现有集群 1-1-1架构,每个zone里面只有一个observer

扩容后2-2-2,每个zone里面有两个observer


二. observer服务器准备

配置建议和原集群中的observer一模一样

1. 所有主机配置主机名及/etc/hosts

hostnamectl set-hostname ob5
hostnamectl set-hostname ob6
hostnamectl set-hostname ob7

配置/etc/hosts文件
192.168.8.147  ob5
192.168.8.148  ob6
192.168.8.149   ob7

2. 所有主机关闭防火墙与selinux

1) 关闭防火墙,并开机禁用
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
2) 禁用selinux
sed -i s@SELINUX=enforcing@SELINUX=disabled@g /etc/selinux/config
grep "^SELINUX=" /etc/selinux/config
3) 重启
reboot
4) 检查
systemctl status firewalld.service
iptables -L
getenforce

3.  所有主机配置NTP

vi /etc/ntp.conf

注释文件中的以下4行
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

在末行添加NTP服务器IP地址,我这里是本地NTP服务器,就使用OCP主机最为时钟源
server 192.168.8.130

重启NTP服务,预计5~10分钟就会同步,可手动拉同步
systemctl restart ntpd.service
ntpq -p

--检查时间误差
clockdiff 192.168.8.130

4.  允许root SSH

vi /etc/ssh/sshd_config
注释
#PermitRootLogin no
systemctl restart sshd.service

5. 关闭numa

判断系统是否开启了numa 功能
grep -i numa /var/log/dmesg
如果出现了:"No NUMA configuration found" ,则证明是关闭了numa 功能,如果是其他内容,则为开启了numa

--关闭numa
vi /etc/default/grub
在 GRUB_CMDLINE_LINUX 参数的末尾增加 numa=off


[root@ob6 clonescripts]# vi /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed s, release .*$,,g /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=vg0/lv_root rd.lvm.lv=vg0/lv_swap rhgb quiet numa=off elevator=deadline
numa=off"
GRUB_DISABLE_RECOVERY="true"

--重建grub 配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
--重启操作系统
reboot


三. 部署Observer

使用自动化部署工具部署Observer

1.安装自动化部署工具

rpm –ivh t-oceanbase-antman-1.3.6-1919351.alios7.x86_64.rpm
cd /root/t-oceanbase-antman/clonescripts
./clone.sh –h 获取帮助

2. 添加admin用户

./clone.sh –u

3. 修改属主属组

chown admin:admin -R /data/1
chown admin:admin -R /data/log1

4. 对每台服务器的操作系统内核进行设置

cd /root/t-oceanbase-antman/clonescripts
./clone.sh -r
obc

5. 安装依赖包

cd /root/t-oceanbase-antman/clonescripts
./clone.sh -r
obm

6. 部署前环境检查

统一检查脚本

cd /root/t-oceanbase-antman/clonescripts
./clone.sh –t

也可以使用如下检查方法:

sh precheck.sh –m ob          ob主机使用

关注failed项,处理好后继续检查,直到所有的检查项都通过。


四. 在OCP扩容

1. 添加主机

直到新添加的observer的状态为空闲。

2. 添加observer

3. 注意事项

添加遇到问题,日志如下:


2021-03-10 10:43:20.703  INFO 67 --- [ task-2,0abda3d4bc1b4206,14188bec0edd] c.a.o.c.metadb.task.TaskInstanceEntity : task 35868 run with context Context(parallelIdx=-1, stringMap={cluster_name=cluster, cluster_id=2, service_type=OB_CLUSTER, rpm_name=oceanbase-2.2.73-20201117154111.el7.x86_64.rpm, service_name=cluster:1, target_operate_status=NORMAL, zone_name=zone3, server_port=2882, service_version=2.2.73, ob_cluster_id=1}, listMap={root_server_ips=[192.168.8.132, 192.168.8.131, 192.168.8.133], host_ids=[8], server_ips=[192.168.8.147]})

2021-03-10 10:43:20.705  INFO 67 --- [ task-2,0abda3d4bc1b4206,14188bec0edd] c.a.o.c.metadb.task.TaskInstanceEntity : executor node ip:192.168.8.130

2021-03-10 10:43:20.707 ERROR 67 --- [ task-2,0abda3d4bc1b4206,14188bec0edd] com.alipay.ocp.core.util.ExceptionUtils : Checked Exception: com.alipay.ocp.core.exception.IllegalArgumentException occurred with code error.file.meta.not.found, and args [sys-package, oceanbase-2.2.73-20201117154111.el7.x86_64.rpm]

2021-03-10 10:43:20.710 ERROR 67 --- [ task-2,0abda3d4bc1b4206,14188bec0edd] c.a.o.core.task.manager.TaskManagerImpl : got exception while execute task:
com.alipay.ocp.core.exception.IllegalArgumentException: [OCP IllegalArgumentException]: status=400 BAD_REQUEST, errorCode=FILE_META_NOT_FOUND, args=sys-package,oceanbase-2.2.73-20201117154111.el7.x86_64.rpm at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_152]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_152]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_152]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_152]
at com.alipay.ocp.core.util.ExceptionUtils.newException(ExceptionUtils.java:96) ~[ocp-core-2.5.0-20210105.jar!/:2.5.0-20210105]
at com.alipay.ocp.core.util.ExceptionUtils.throwException(ExceptionUtils.java:90) ~[ocp-core-2.5.0-20210105.jar!/:2.5.0-20210105]
at com.alipay.ocp.core.util.ExceptionUtils.illegalArgs(ExceptionUtils.java:29) ~[ocp-core-2.5.0-20210105.jar!/:2.5.0-20210105]
at com.alipay.ocp.service.compute.softwarepackage.SoftwarePackageService.getPackageByName(SoftwarePackageService.java:233) ~[ocp-service-2.5.0-20210105.jar!/:2.5.0-20210105]
at com.alipay.ocp.service.task.business.host.ReserveHostTask.getSoftwarePackageId(ReserveHostTask.java:73) ~[ocp-service-2.5.0-20210105.jar!/:2.5.0-20210105]
at com.alipay.ocp.service.task.business.host.ReserveHostTask.run(ReserveHostTask.java:45) ~[ocp-service-2.5.0-20210105.jar!/:2.5.0-20210105]
at com.alipay.ocp.core.metadb.task.TaskInstanceEntity.run(TaskInstanceEntity.java:192) ~[ocp-core-2.5.0-20210105.jar!/:2.5.0-20210105]
at com.alipay.ocp.core.task.manager.TaskManagerImpl.lambda$null$1(TaskManagerImpl.java:177) ~[ocp-core-2.5.0-20210105.jar!/:2.5.0-20210105]
at com.alipay.ocp.core.task.manager.TaskManagerImpl.redirectOutputIfNotSysSchedule(TaskManagerImpl.java:221) ~[ocp-core-2.5.0-20210105.jar!/:2.5.0-20210105]
at com.alipay.ocp.core.task.manager.TaskManagerImpl.lambda$executeTask$2(TaskManagerImpl.java:149) ~[ocp-core-2.5.0-20210105.jar!/:2.5.0-20210105] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_152]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_152]
at com.alipay.ocp.core.thread.TraceDecorator.lambda$decorate$0(TraceDecorator.java:28) ~[ocp-core-2.5.0-20210105.jar!/:2.5.0-20210105]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) ~[na:1.8.0_152]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:627) ~[na:1.8.0_152]
at java.lang.Thread.run(Thread.java:882) ~[na:1.8.0_152]

没找到oceanbase的rpm包,该包在安装集群的时候,就上传过,这里没找到是因为后面重新安装了OCP,接管了之前的集群,所有没找到rpm包,重新上传一下既可!

上传软件包(OCP重装后,需要重新上传oceanbase的安装包),如果没有重装,请忽略这一步!

4. 查看扩容进度

子任务执行失败之后,可以重试。

5.  扩容检查

拓扑图已完成在线扩容。


五. 在线缩容

现有集群 2-2-2架构,每个zone里面只有两个observer

缩容后1-1-1,每个zone里面只有一个observer

1. 发起合并

2.  停止计划下线的observer

需要一个一个的停止。

3. 删除计划下线的observer

4.  查看删除任务

删除计划下线的observer主机

检查

已完成在线缩容。

相关阅读:

OceanBase安装部署

Oceanbase集群搭建中问题处理

OceanBase 集群搭建过程中问题分享



END


更多精彩干货分享

点击下方名片关注

IT那活儿

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129822.html

相关文章

  • 银行交易系统 TiDB 在线缩容迁移

    摘要:临近年中,银行重要系统的建设进入投产冲刺阶段,本次上线又有多个系统对接,为了优化集群资源分配,引发了这次分享的主题线上系统的缩容的迁移,本文主要针对本次的缩容迁移过程进行梳理总结。 作者:Dan本文转载自公众号「白噪声OG」。 经历了上礼拜漫长的上线周期,终于有时间总结一下期间发生的故事。TiDB 是一款非常优秀的国产分布式 NewSQL 数据库,因其支持水平扩展性、强一致性、高可用性...

    suemi 评论0 收藏0
  • 宜信开源|详解PaaS平台LAIN的功能和架构

    摘要:是宜信公司大数据创新中心开发的开源平台。为宜信大数据创新中心各个团队提供了统一的测试和生产环境,简化了服务的部署与上线流程,也降低了运维人员对系统管理的复杂度。基于容器技术,面向多样化的技术栈,并且天然隔离系统和应用的依赖。 LAIN是宜信公司大数据创新中心开发的开源PaaS平台。在金融的场景下,LAIN 是为解放各个团队和业务线的生产力而设计的一个云平台。LAIN 为宜信大数据创新中...

    mist14 评论0 收藏0
  • 2021年11月国产数据库排行榜:openGauss闯入前三,Kingbase流行度与日俱增,TDe

    摘要:年月国产数据库流行度排行榜前名达梦本月分数下跌,总分,位于榜单第二位。人大金仓保持增长态势,本月分数大幅上涨,总分,位于榜单第九位。达梦入选其中,位列总榜第国产数据库第。月日,人大金仓与天津科大正式签订联合人才培养协议。2021年11月国产数据库流行度排行榜前15名   达梦本月分数下跌10.88,总分467.45,位于榜单第二位。作为具有完全自主知识产权的国产数据库厂商,今年达梦的...

    waruqi 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<