暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

「更易用的OceanBase」:OBD 之利用工具OBD来部署oceanbase 三副本集群

原创 杨凯同学 2022-10-28
1581
一、工具介绍

OceanBase Deployer(简称 OBD)是 OceanBase 开源软件的安装部署工具。OBD 同时也是包管理器,可以用来管理 OceanBase 所有的开源软件。本文介绍如何利用OBD工具 通过配置文件一键部署集群 和OBD 常用命令。

二、部署架构图

三、部署环境介绍
90.90.90.107(中控机器):存储 OceanBase 数据库安装包和集群配置信息的机器。
OBD:OceanBase Deployer,OceanBase 开源软件的安装部署工具,简称为 OBD。
obProxy:OceanBase 高性能反向代理服务器,简称为 ODP。
OBclient:OceanBase 客户端工具

90.90.90.104/90.90.90.105/90.90.90.104(OBserver)
zone:安装 OceanBase 数据库的机器。

image.png

四、安装部署
4.1 准备安装包
备注:安装包获取地址《OceanBase 开源官网》
(https://open.oceanbase.com/softwareCenter/community)

image.png

4.2 安装OBD工具
本实验使用 RPM 包(Centos 7 及以上)安装:如下图:

image.png

备注:如果使用源码安装在使用源码安装 OBD 之前,请您确认已安装以下依赖:
gcc
wget
python-devel
openssl-devel
xz-devel
mysql-devel

Python2.7 使用以下命令安装:
sh rpm/build.sh build
source /etc/profile.d/obd.sh
Python3.8 需按以下步骤安装
需先使用 Python2.7 环境执行以下命令:
sh rpm/build.sh executer
之后在 Python3.8 环境下执行以下命令:
sh rpm/build.sh build_obd
source /etc/profile.d/obd.sh
4.3 利用OBD工具打包镜像到本地

image.png

4.4 利用OBD工具查看镜像

image.png

4.5 准备配置文件
vi init.yaml  
#ssh 登录配置
user:
username: root
password: ******

oceanbase-ce:
servers:
- name: zone1
  ip: 90.90.90.104
- name: zone2
  ip: 90.90.90.105
- name: zone3
  ip: 90.90.90.106
 global:
devname: ens160
cluster_id: 1
memory_limit: 8G
system_memory: 4G
stack_size: 512K
cpu_count: 12
cache_wash_threshold: 1G
__min_full_resource_pool_memory: 268435456
workers_per_cpu_quota: 10
schema_history_expire_time: 1d
net_thread_count: 4
major_freeze_duty_time: Disable
minor_freeze_times: 10
enable_separate_sys_clog: 0
enable_merge_by_turn: FALSE
datafile_disk_percentage: 20
syslog_level: INFO
enable_syslog_wf: false
enable_syslog_recycle: true
max_syslog_file_count: 4
appname: ob_cluster
root_password: ******
proxyro_password: ******
zone1:
mysql_port: 2881
rpc_port: 2882
home_path: /usr/local/observer
data_dir: /data
zone: zone1
zone2:
mysql_port: 2881
rpc_port: 2882
home_path: /usr/local/observer
data_dir: /data
zone: zone2
zone3:
mysql_port: 2881
rpc_port: 2882
home_path: /usr/local/observer
data_dir: /data
zone: zone3

obproxy-ce:
 servers:
	- 90.90.90.107
 global:
listen_port: 2883
prometheus_listen_port: 2884
home_path: /usr/local/obproxy
enable_cluster_checkout: false
skip_proxy_sys_private_check: true
rs_list: 90.90.90.104:2881;90.90.90.105:2881;90.90.90.106:2881
cluster_name: ob_cluster
obproxy_sys_password: *****
observer_sys_password: *****
4.6 利用OBD工具执行一键部署
此命令会检查 home_path 和 data_dir 指向的目录是否为空。
若目录不为空,则报错。此时可以加上 -f 选项,强制清空。

image.png

4.7 利用OBD工具启动集群
此命令会检查系统参数 fs.aio-max-nr 是否不小于 1048576。
通常情况下一台机器启动一个节点不需要修改 fs.aio-max-nr。
但当一台机器需要启动 4 个及以上的节点时,请务必修改 fs.aio-max-nr。

image.png
image.png

4.8 利用OBD工具查看集群
参看 OBD 管理的集群列表
obd cluster list
查看 ob-cluster 集群状态
obd cluster display ob-cluster

image.png

五、利用OBD工具修改集群配置
备注:OceanBase 数据库有数百个配置项,有些配置是耦合的,
在您熟悉 OceanBase 数据库之前,不建议您修改示例配件文件中的配置。
修改示例如下:
使用 edit-config 命令进入编辑模式,修改集群配置
obd cluster edit-config ob-cluster
修改 sys_bkgd_migration_retry_num 为 4
注意 sys_bkgd_migration_retry_num 值最小为 3
保存并退出后,OBD 会告知您如何使得此次改动生效
此配置项仅需要 reload 即可生效
obd cluster reload ob-cluster


OBD 常用命令  
镜像和仓库命令组  
obd mirror clone  
obd mirror create  
obd mirror list  
obd mirror update  
集群命令组  
obd cluster edit-config  
obd cluster deploy  
obd cluster start  
obd cluster list  
obd cluster display  
obd cluster reload  
obd cluster restart  
obd cluster redeploy  
obd cluster stop  
obd cluster destroy  
测试命令组  
obd test mysqltest
六、如何升级OBD工具
1.先在一台可以连通公网的机器上下载 OBD 最新的 RPM 包,
把将下载好的 RPM 包拷贝到安装有 OBD 的机器(obd_server)上
sh ob-deploy-x.x.x-xxx.rpm obd_server:~
2.将下载好的镜像加入到 local 中
obd mirror clone ob-deploy-x.x.x-xxx.rpm
3.关闭远程镜像源
obd mirror disable remote
4.升级
obd update
七、总结

OBD工具真香,使用 OBD 启动和停止 OceanBase 集群,非常方便、适用、快速,OBD不但是一款安装部署工具,同时也是包管理器,可以用来管理 OceanBase 所有的开源软件部署和运维集群非常流畅,希望后期可以推出一键生成部署 OceanBase集群的配置文件工具。比oracle Exadata刷机都要方便。

最后修改时间:2023-05-14 10:58:45
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论