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

OceanBase单机群部署

IT那活儿 2024-11-15
434
点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!

  
OceanBase是阿里巴巴和蚂蚁金服完全自主研发的通用的分布式关系型数据库,定位为商用企业级数据库。OceanBase能提供金融级别的可靠性,目前主要应用于金融行业,同时也适用于非金融行业场景。它融合传统关系数据库和分布式系统的优势,利用普通的PC服务器组成数据库集群,拥有出色的线性扩展性。

本文针对OceanBase3.2.4版本安装单副本进行详细介绍,供大家参考。



创建目录和安装

1.1 创建admin用户
useradd admin
1.2 创建OceanBase目录(admin用户默认创建在home目录下)
mkdir -p /home/admin/oceanbase
1.3 上传rpm包并解压
rpm -ivh oceanbase-3.2.4.0-100010012022110218.el7.x86_64.rpm
1.4 初始化服务器环境
修改内核参数配置文件:
vim /etc/sysctl.conf

/如果在执行vim命令后出现-bash: vim:未找到命令
    执行以下命令
    yum -y install vim-minimal
    yum -y install vim-enhanced
  /
  将以下内容粘贴进sysctl.conf文件中编辑并保存
net.core.somaxconn = 2048
net.core.netdev_max_backlog = 10000
net.core.rmem_default = 16777216
net.core.wmem_default = 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

net.ipv4.ip_local_port_range = 3500 65535
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_slow_start_after_idle=0

vm.swappiness = 0
vm.min_free_kbytes = 2097152
vm.max_map_count=655360
fs.aio-max-nr=1048576

1.5 让配置生效
sysctl -p
1.6 修改会话变量设置
修改/etc/security/limits.conf配置文件,如果已有设置低于这个设置值:
vim etc/security/limits.conf

* soft nofile 655360
* hard nofile 655360
* soft nproc 655360
* hard nproc 655360
* soft core unlimited
* hard core unlimited
* soft stack unlimited
* hard stack unlimited

1.7 查看配置
退出当前会话,重新登录,执行以下命令,查看配置是否生效:
ulimit -a
1.8 清理OceanBase目(第一次部署不需要)
其中$cluster_name为集群名。
su admin
kill -9 `pidof observer` (注意这里是飘号)
rm -rf /data/1/$cluster_name
rm -rf /data/log1/$cluster_name
rm -rf /home/admin/oceanbase/store/$cluster_name /home/admin/oceanbase/log/* /home/admin/oceanbase/etc/*config*(创建软连接)
ps -ef|grep observer

1.9 初始化OceanBase目录
su - admin
mkdir -p /data/1/$cluster_name/{etc3,sort_dir,sstable}
mkdir -p /data/log1/$cluster_name/{clog,etc2,ilog,slog,oob_clog}
mkdir -p /home/admin/oceanbase/store/$cluster_name
for  t in{etc3,sort_dir,sstable};do ln -s /data/1/$cluster_name/$t /home/admin/oceanbase/store/$cluster_name/$t; done
for t in {clog,etc2,ilog,slog,oob_clog};do ln -s /data/log1/$cluster_name/$t /home/admin/oceanbase/store/$cluster_name/$t; done

检查结果:
cd /home/admin/oceanbase
tree store/

1.10 安装OceanBase客户端
rpm -ivh obclient-1.2.6-20210510164331.el7.alios7.x86_64.rpm

/检查是否安装成功/
which obclient


初始化OceanBase集群

注:示例IP已经做了脱敏处理,在部署时应根据自己机器真实IP填写。
2.1 启动observer进程
su admin
cd /home/admin/oceanbase && /home/admin/oceanbase/bin/observer -i eth0 -P 2882 -p 2881 -z zone1 -d /home/admin/oceanbase/store/obdemo -r
'10.10.10.1:2882:2881' -c 10001 -n obdemo -o
"system_memory=30G,datafile_size=500G,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"

可通过netstat -ntlp命令查看observer进程是否启动成功,如果监听到2882和2881端口,则说明进程启动成功。
2.2 集群bootstrap操
通过obclient命令连接已启动的observer进程,密码为空:
su admin
obclient -h127.1 -uroot@sys -P2881 -p
SET SESSION ob_query_timeout=1000000000;
ALTER SYSTEM BOOTSTRAP ZONE 'zone1' SERVER '10.10.10.1:2882';

2.3 验证集群初始化成功
进行bootstrap后,执行show databases;命令,能看到数据库列表里有OceanBase即可。
2.4 修改密码
Sys租户的root用户密码默认为空,初始化成功后修改密码。
ALTER USER root IDENTIFIED BY '123456';

END


本文作者:佘镕晶(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论