OceanBase CentOS7集群部署

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集群规划

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

角色 机器 备注
OBD 10.8.16.150 安装在中控机上的自动化部署软件
OBServer 节点 10.8.16.151 OceanBase 数据库 Zone1
OBServer 节点 10.8.16.152 OceanBase 数据库 Zone1
OBServer 节点 10.8.16.153 OceanBase 数据库 Zone1
OBAgent 10.8.16.151、10.8.16.152、10.8.16.153 OceanBase 数据库监控采集框架
ODP 10.8.16.150 OceanBase 数据库专用的反向代理软件
OCP Express 10.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 非公网地址,您需要使用正确的地址访问白屏界面。

相关推荐

  1. OceanBase CentOS7部署

    2024-01-10 19:44:01       44 阅读
  2. 7、docker

    2024-01-10 19:44:01       16 阅读
  3. Kubeadm 部署

    2024-01-10 19:44:01       34 阅读
  4. Kafka部署

    2024-01-10 19:44:01       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-10 19:44:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-10 19:44:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-10 19:44:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-10 19:44:01       20 阅读

热门阅读

  1. 面试 React 框架八股文十问十答第四期

    2024-01-10 19:44:01       37 阅读
  2. MySQL面试题(下)

    2024-01-10 19:44:01       33 阅读
  3. 面试 React 框架八股文十问十答第一期

    2024-01-10 19:44:01       40 阅读
  4. glusterFS

    glusterFS

    2024-01-10 19:44:01      33 阅读
  5. linux系统关于nginx服务

    2024-01-10 19:44:01       41 阅读
  6. 修改 Git 仓库的远程地址

    2024-01-10 19:44:01       37 阅读
  7. C#语言练手小功能

    2024-01-10 19:44:01       37 阅读
  8. 计算几何学(工程版)

    2024-01-10 19:44:01       40 阅读
  9. H5语言-入门教程

    2024-01-10 19:44:01       28 阅读
  10. CE322 Algorithmic Game Theory

    2024-01-10 19:44:01       31 阅读
  11. 【打卡】牛客网:BM75 编辑距离(一)

    2024-01-10 19:44:01       39 阅读