实践练习三:使用OBD 部署一个三副本OceanBase集群

1、部署环境

服务器信息

IP地址

10.0.14.22、10.0.14.23、10.0.14.24

网卡名

enp0s8

OS

CentOS Linux release 7.8.2003 (Core)

CPU

16C

内存

20G

磁盘1

本地盘/dev/sdd (lvm /data 、 /redo)

机器和角色划分

角色

机器

备注

OBD

10.0.14.22

中控机,自动化部署软件

OBSERVER

10.0.14.22

10.0.14.23

10.0.14.24

OceanBase数据库

OBPROXY

10.0.14.22

OceanBase反向代理访问

OBCLIENT

10.0.14.22

OceanBase命令行客户端

2、服务器初始化

执行OceanBase数据库软件部署前对服务器的相关初始化配置。

各服务器均进行如下初始化配置:

内核参数修改

vim /etc/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

让配置生效

sysctl -p

修改会话变量设置

vi /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

关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

关闭SELinux

vi /etc/selinux/config

SELINUX=disabled

配置安装用户

# 新增普通用户 admin

useradd admin

# 改用户密码

passwd admin

# 配置用户admin sudo权限

vi /etc/sudoers

修改系统时区

将系统时区设置为中国的+8区

tzselect

分别依次选择5) Asia、9) China、1) Beijing Time、1) Yes

vi /etc/profile

export TZ='Asia/Shanghai'

#生效修改

source /etc/profile

磁盘目录配置

# 创建pv

pvcreate /dev/sdd

# 创建vg

vgcreate vg /dev/sdd

# 创建lv

lvcreate -L 200G -n data1 vg

lvcreate -L 20G -n datalog1 vg

# 格式化文件系统

mkfs.ext4 /dev/mapper/vg-data1

mkfs.ext4 /dev/mapper/vgdatalog1

# 挂载文件系统

mkdir -p /data1 /datalog1

vi /etc/fstab

/dev/mapper/vg-data1 /data ext4 defaults 0 0

/dev/mapper/vgdatalog1 /redo ext4 defaults 0 0

# 修改目录所有者权限

mount -a

chown -R admin:admin /data

chown -R admin:admin /redo

配置SSH免密登录

# 生成RSA密钥(在中控机10.0.14.22上执行)

su - admin

ssh-keygen -t rsa

# 打通到本机的SSH免密登录

ssh-copy-id -i .ssh/id_rsa.pub admin@10.0.14.22

ssh admin@10.0.14.22 #测试ssh免密登录本机

# 打通到其他3台服务器的SSH免密登录(在中控机10.0.14.22上执行)

ssh-copy-id -i .ssh/id_rsa.pub admin@10.0.14.22

ssh-copy-id -i .ssh/id_rsa.pub admin@10.0.14.23

ssh-copy-id -i .ssh/id_rsa.pub admin@10.0.14.24

#测试ssh免密登录本机

ssh admin@10.0.14.22

ssh admin@10.0.14.23

ssh admin@10.0.14.24

配置时间同步服务

此实验时间同步服务使用chrony,其中10.0.14.22同步公网时间服务器,其他3台服务器的时间服务器使用10.0.14.22

服务器端配置

使用root用户,在服务器10.0.14.22上部署chrony同步公网时间,同时为内外其他服务器提供时间服务。

# 安装chrony软件

yum install chrony -y

# 修改配置文件 /etc/chrony.conf

先注释掉默认服务器配置项,修改为如下配置:

server ntp.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst

server ntp.aliyun.com minpoll 4 maxpoll 10 iburst

server ntp1.aliyun.com minpoll 4 maxpoll 10 iburst

server ntp1.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst

server ntp10.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst

#打开允许同步的IP地址段

allow 10.0.14.0/24

# 重启时间同步服务

systemctl enable chronyd

systemctl restart chronyd

# 查看时间同步源和状态

chronyc sources

chronyc sourcestats

客户端配置

在服务器10.0.14.23上部署chrony,以10.0.14.22为时间服务器。

# 安装chrony软件

yum install chrony -y

# 修改配置文件 /etc/chrony.conf

先注释掉默认服务器配置项,修改为如下配置:

server 10.0.14.22 iburst

# 重启时间同步服务

systemctl enable chronyd

systemctl restart chronyd

# 查看时间同步源和状态

chronyc sources

chronyc sourcestats

3、部署OceanBase集群

本实验使用obd自动部署多节点OceanBase,包括代理服务obproxy。

编辑OBD配置文件

使用wget https://github.com/oceanbase/obdeploy/blob/master/example/mini-distributed-with-obproxy-example.yaml 下载自动部署的模板配置文件,根据自己服务器环境做相应调整即可。

重命名模板文件名为obce-3zones.yaml,主要配置项如下:

配置项

配置值

cluster_name

obce-3zones

servers

- name: server1

ip: 10.0.14.22

- name: server2

ip: 10.0.14.23

- name: server3

ip: 10.0.14.24

home_path

/home/admin/observer

/home/admin/obproxy

data_dir

/data

redo_dir

/redo

devname

enp0s8

memory_limit

10G

system_memory

10G

mysql_port

2881

rpc_port

2882

listen_port

2883

zone

zone1、zone2、zone3

cluster_id

1

安装obd程序软件

安装obd命令程序用于自动化部署OceanBase集群,在中控机(10.0.14.22)上执行如下命令:

rpm -ivh ob-deploy-1.3.0-8.el7.x86_64.rpm

使用obd命令部署集群

部署使用命令:obd cluster deploy [集群名] -c 集群配置文件

obd cluster deploy obcluster -c mini-distributed-example.yaml

检查部署结果

使用obd部署成功OceanBase集群后的状态为 deployed,正常使用还需要进行集群的启动和初始化。

查看部署目录结构

节点10.0.14.22的目录结构如下:

启动和初始化集群

启动使用命令:obd cluster start <集群名>

obd cluster start obcluster

启动成功,再次查看其状态已经为running。

检查OceanBase 集群各个节点进程信息

IPS="10.0.14.22 10.0.14.23 10.0.14.24"

for ob in $IPS;do echo $ob; ssh $ob "ps -ef | grep observer | grep -v grep "; done

检查OceanBase 集群各个节点监听状况

IPS="10.0.14.22 10.0.14.23 10.0.14.24"

for ob in $IPS;do echo $ob; ssh $ob "netstat -ntlp"; done

4、验证测试OceanBase集群

验证集群部署使用obclient客户端软件。

部署obclient客户端

# 在中控机(10.0.14.22)上执行

rpm -ivh libobclient-2.0.0-2.el7.x86_64.rpm

rpm -ivh obclient-2.0.1-2.el7.x86_64.rpm

登录测试OceanBase集群

分别通过直接登录observer服务和obproxy服务端口验证。

直接登录observer节点:

obclient -h 10.0.14.22 -uroot@sys -P2881 -c -A oceanbase

obclient -h 10.0.14.23 -uroot@sys -P2881 -c -A oceanbase

obclient -h 10.0.14.24 -uroot@sys -P2881 -c -A oceanbase

***无需密码****

登录代理节点obproxy

obclient -h 10.0.14.22 -P2883 -uroot@sys#obcluster -c -A oceanbase

并查看当前server列表

select zone, svr_ip, svr_port, with_rootserver, status from __all_server order by zone, with_rootserver desc;

测试节点数据一致性

通过在一个zone节点上创建数据表并写入数据之后,在另外一个zone节点上查看数据是否一致。

在zone1上创建数据表并写入数据记录:

obclient -h 10.0.14.22 -uroot@sys -P2881 -c -A oceanbase

create table t1(id int(4) primary key, test_time datetime);

insert into t1(id, test_time) values(1, now());

select * from t1;

在zone2和zone3上查看数据是否一致:

obclient -h 10.0.14.23 -uroot@sys -P2881 -c -A oceanbase

obclient -h 10.0.14.24 -uroot@sys -P2881 -c -A oceanbase

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值