OceanBase CentOS7集群部署

2024-01-08 12:59:46

OceanBase CentOS7集群部署

一、前置条件

1.1手动关闭透明大页

echo never > /sys/kernel/mm/transparent_hugepage/enabled

1.2配置hosts

10.8.16.150 oceanbase1
10.8.16.151 oceanbase2
10.8.16.152 oceanbase3
10.8.16.153 oceanbase4

1.3设置无密码 SSH 登录

便捷脚本

#!/usr/bin/bash
#ip列表,密码
SERVERS=("root@oceanbase1" "root@oceanbase2" "root@oceanbase3" "root@oceanbase4")
PASSWORD="cqie"
keygen() {
sudo yum -y install expect
expect -c "
   spawn ssh-keygen -t rsa
   expect {
      *(~/.ssh/id_rsa):* { send -- \r;exp_continue}
      *(y/n)* { send -- y\r;exp_continue}
      *Enter* { send -- \r;exp_continue}
      *(y/n)* { send -- y\r;exp_continue}
      *Enter* { send -- \r;exp_continue}
      eof {exit 0}
   }
   expect eof
"
}
copy(){
expect -c "
   set timeout -1
   spawn ssh-copy-id $1
   expect {
      *(yes/no)* { send -- yes\r; exp_continue }
      *password:* { send -- $PASSWORD\r; exp_continue}
      eof {exit 0}
   }
   expect eof
"
}
ssh_copy_id_to_all(){
keygen ;
for host in ${SERVERS[@]}
do
      copy $host
done
}
ssh_copy_id_to_all

1.4配置时钟源

1.4.1在每台机器上执行以下命令安装 NTP
yum install ntp ntpdate -y
1.4.2启动NTP

如果您计划部署分布式 OceanBase 集群,需要保证集群内各机器的时间同步,否则集群无法启动,服务在运行时也会出现异常。OceanBase 集群允许的时钟偏差不能超过 2s。当超过 2s 时,会出现无主情况。恢复时钟同步后,重启 OceanBase 集群,可以恢复正常

systemctl start ntpd
systemctl enable ntpd
1.4.2配置NTP服务端服务器

这里使用oceanbase1作为NTP服务端服务器

#以 root 用户登录 NTP 服务端服务器,运行以下命令编辑配置文件:
vi /etc/ntp.conf
#在配置文件中添加以下内容:
server cn.pool.ntp.org
#保存并关闭配置文件。
#重启ntp服务
systemctl restart ntpd

1.5配置 limits.conf

  • 将会话级别的最大栈空间大小设置为 unlimited,最大文件句柄数设置为 655350,Core 文件大小设置为 unlimited

执行以下命令,打开 /etc/security/limits.conf 配置文件:

vi /etc/security/limits.conf
  • /etc/security/limits.conf 配置文件中添加以下内容:
root soft nofile 655350
root hard nofile 655350
* soft nofile 655350
* hard nofile 655350
* soft stack 20480
* hard stack 20480
* soft nproc 655360
* hard nproc 655360
* soft core unlimited
* hard core unlimited

1.6配置 sysctl.conf

  • 执行以下命令,打开 /etc/sysctl.conf 配置文件:
vi /etc/sysctl.conf
  • /etc/sysctl.conf 配置文件中添加以下内容:
# for oceanbase
## 修改内核异步 I/O 限制
fs.aio-max-nr=1048576

## 网络优化
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

# 此处为 OceanBase 数据库的 data 目录
kernel.core_pattern = /data/core-%e-%p-%t
  • 加载配置
sysctl -p

1.7关闭防火墙和 SELinux

  • 关闭防火墙
systemctl disable firewalld 
systemctl stop firewalld
systemctl status firewalld
  • 关闭 SELinux
#执行以下命令,打开 /etc/selinux/config 配置文件:
vi /etc/selinux/config
#在 /etc/selinux/config 配置文件中修改对应配置项为以下内容:
SELINUX=disabled
#执行以下命令或重启服务器,使更改生效:
setenforce 0
#执行以下命令,查看更改是否生效:
sestatus

二、集群部署

2.1集群规划

本文采用三副本部署模式,推荐使用四台机器,您可以根据自己实际情况选择合适的部署方案。本文中四台机器的使用情况如下:

角色机器备注
OBD10.8.16.150安装在中控机上的自动化部署软件
OBServer 节点10.8.16.151OceanBase 数据库 Zone1
OBServer 节点10.8.16.152OceanBase 数据库 Zone1
OBServer 节点10.8.16.153OceanBase 数据库 Zone1
OBAgent10.8.16.151、10.8.16.152、10.8.16.153OceanBase 数据库监控采集框架
ODP10.8.16.150OceanBase 数据库专用的反向代理软件
OCP Express10.8.16.150基于 Web 的 OceanBase 数据库 4.x 管理工具

2.2下载并安装 all-in-one 安装包

2.2.1在线安装

若您的机器可以连接网络,可执行如下命令在线安装。

bash -c "$(curl -s https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/oceanbase-all-in-one/installer.sh)"
source ~/.oceanbase-all-in-one/bin/env.sh
2.2.2离线安装

若您的机器无法连接网络,可参考如下步骤离线安装。

OceanBase 软件下载中心 下载最新的 all-in-one 安装包,并将其复制到中控机任意目录下。

在安装包所在目录下执行如下命令解压安装包并安装。

tar -xzf oceanbase-all-in-one-*.tar.gz
cd oceanbase-all-in-one/bin/
./install.sh
source ~/.oceanbase-all-in-one/bin/env.sh

2.3 OBD白屏部署

启动白屏界面

命令行执行 obd web 命令启动白屏界面,单击输出的地址访问白屏界面,在白屏界面中单击 开启体验之旅 即可进入到 OceanBase 数据库的配置界面。

obd web

说明

  • 白屏界面默认使用 8680 端口,您可使用 obd web -p <PORT> 命令指定端口。
  • 在阿里云或其他云环境下,可能出现程序无法获取公网 IP,从而输出内网地址的情况,此 IP 非公网地址,您需要使用正确的地址访问白屏界面。

文章来源:https://blog.csdn.net/qq_41631913/article/details/135403129
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。