社区版部署

OceanBase社区版部署

前言

企业版和社区版区别
详情查询官网

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000507492

部署方式

OceanBase 企业版:

使用 OCP 部署 OceanBase 集群
使用 OBD 部署 OceanBase 集群
使用命令行部署 OceanBase 集群

OceanBase 社区版:

使用 OBD 部署 OceanBase 集群
使用 OCP 部署 OceanBase 集群
使用 Docker 镜像的方式部署 OceanBase 集群
在 Kubernetes 环境中使用 ob-operator 部署 OceanBase 集群

适用场景

1. OceanBase 企业版:

2.OceanBase 社区版:

软硬件要求

OceanBase 数据库是一个分布式集群产品,在生产环境中至少要求三台机器,学习环境可以部署单机版本。OceanBase 数据库的部署跟传统数据库的部署相比,存在很多共同的地方,对操作系统硬件、软件设置等会有一些最佳实践建议,这些是 OceanBase 数据库发挥高性能稳定运行的基础。

软件资源介绍

下表列出了不同操作系统版本适用的安装包:

操作系统	安装包下载地址
Alibaba Cloud Linux 2、CentOS 7、RedHat 7、Ubuntu 16.X、Debian 9.X	el7 下载地址(https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/)
Anolis OS 8.X、Alibaba Cloud Linux 3、CentOS 8、RedHat 8、Debian 10	el8 下载地址(https://mirrors.aliyun.com/oceanbase/community/stable/el/8/x86_64/)

硬件资源准备

OceanBase 数据库在以下配置进行了系统性测试验证,推荐您使用以下软硬件配置:

项目	描述
系统	
Anolis OS 8.X 版本(内核 Linux 3.10.0 版本及以上)
Alibaba Cloud Linux 2/3 版本(内核 Linux 3.10.0 版本及以上)
Red Hat Enterprise Linux Server 7.X 版本、8.X 版本(内核 Linux 3.10.0 版本及以上)
CentOS Linux 7.X 版本、8.X 版本(内核 Linux 3.10.0 版本及以上)
Debian 9.X 版本及以上版本(内核 Linux 3.10.0 版本及以上)
Ubuntu 16.X 版本及以上版本(内核 Linux 3.10.0 版本及以上)
SUSE / openSUSE 15.X 版本及以上版本(内核 Linux 3.10.0 版本及以上)
KylinOS V10 版本
统信 UOS V20 版本
中科方德 NFSChina 4.0 版本及以上
浪潮 Inspur kos 5.8 版本
物理 CPU	
测试环境最低要求 2 核。
生产环境最低要求 4 核,推荐 32 核及以上。
性能测试场景推荐 24 核及以上。
内存	
测试环境最低要求 8 GB。
生产环境最低要求 16 GB,长期使用要求不低于 32 GB,推荐设置在 256 GB 至 1024 GB 范围内。
性能测试场景推荐设置在 128 GB 至 1024 GB 范围内。
注意
当部署多个集群时,推荐使用 OCP 进行统一运维管理,当部署集群比较少时,建议使用 OBD 进行安装部署。

磁盘类型	使用 SSD 存储
磁盘存储空间	最低要求 19 GB
文件系统	EXT4 戓 XFS,当数据超过 16TB 时,使用 XFS
网卡	千兆互联及以上

部署流程

  • 在线部署:OBD 所在机器需保证能访问外部网络,无需提前配置部署所需安装包,部署过程中 OBD 会从远程镜像仓库获取部署所需安装包。
  • 离线部署:部署过程中无需访问外部网络,您需提前将部署所需安装包上传至 OBD 本地镜像库。选择离线部署时推荐直接下载所需版本的 all-in-one 安装包。
    根据不同的部署方式有不同的准备软件方法,您可根据实际情况选择合适的方法准备软件。

账号创建:

 useradd -U admin -d /home/admin -s /bin/bash
 echo "admin:admin" | chpasswd

配置admin的sudo权限

echo "admin       ALL=(ALL)       NOPASSWD: ALL" >> /etc/sudoers

limits.conf配置

OceanBase 数据库的进程涉及的限制包括线程最大栈空间大小(Stack)、最大文件句柄数(Open Files)和 core 文件大小 (Core File Size)

vi /etc/security/limits.conf
root soft nofile 655350
root hard nofile 655350
* soft nofile 655350
* hard nofile 655350
* soft stack unlimited
* hard stack unlimited
* soft nproc 655360
* hard nproc 655360
* soft core unlimited
* hard core unlimited

ulimit -a

从结果中可以看出:

core file size 表示核心文件的最大阈值(以块为单位),对应 limits.conf 配置文件中的 core 参数,需查看值是否为 unlimited。
open files 表示最大打开文件描述符数,对应 limits.conf 配置文件中的 nofile 参数,需查看值是否为 655350。
stack size 表示堆栈大小(以千字节为单位),对应 limits.conf 配置文件中的 stack 参数,需查看值是否为 unlimited。
max user processes 表示最大用户进程数,对应 limits.conf 配置文件中的 nproc 参数,需查看值是否为 655360。

sysctl.conf配置

vi /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 = 1 
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
fs.file-max = 6573688

#修改进程可以拥有的虚拟内存区域数量
vm.max_map_count = 655360

#此处为 OceanBase 数据库的 data 目录
kernel.core_pattern = /data/core-%e-%p-%t

其中,kernel.core_pattern 中的 /data 为 OceanBase 数据库的 data 目录。
max_map_count 配置不合理的情况下,可能会导致严重的内存泄露。

加载配置;

sysctl -p

关闭防火墙和 SELinux

关闭防火墙

systemctl disable firewalld 
systemctl stop firewalld
systemctl status firewalld

关闭 SELinux

vi /etc/selinux/config
SELINUX=disabled

时钟同步配置

免密配置(admin账号)

1.在中控机器上运行以下命令查看密钥是否存在:

su - admin
ls ~/.ssh/id_rsa.pub

如结果显示密钥已经存在,则无需生成新的密钥。

2.(可选)在中控机器上运行以下命令生成 SSH 公钥和私钥:

ssh-keygen -t rsa

3.将中控机的公钥复制到目标机器的 authorized_keys 文件中:

ssh-copy-id -i ~/.ssh/id_rsa.pub <user>@<server_ip>

关闭透明大页

对于 Red Hat 操作系统 RHEL 9 之前版本,需要运行以下命令,手动关闭透明大页:

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

对于 Red Hat 操作系统 RHEL 9 版本或 CentOS 操作系统,需要运行以下命令,手动关闭透明大页:

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

jdk配置

ob 4.2.2版本需要配置jdk1.8或者以上的版本
由于 OBD 是通过远程执行脚本部署 OCP Express,所以需要通过 SSH 方式验证 Java 环境,直接在机器上执行 java -version 可能无效。

创建软链接
ln -s /opt/jdk1.8.0_333/bin/java /usr/bin/java
java -version 出现了正确的版本号就说明配置成功了

如您已安装符合条件的 Java 但是验证却没有通过,可以通过以下任一方法解决:
方法一:通过组件页面 更多配置 配置 java_bin 路径
如下图,在配置项 java_bin 中配置 Java 的真实路径,如 /jdk8/bin/java。

方法二:将 Java 可执行文件软链接到 /usr/bin/java 中

devname 配置项指定网卡

部署集群时需要指定devname 参数,表示集群之间进行交互的网卡名称

在线部署

当您选择在线部署时,可以参考本节命令在中控机上安装 OBD。

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
sudo yum install -y ob-deploy
source /etc/profile.d/obd.sh

离线部署

当您选择离线部署时,可参考本节命令下载并安装 all-in-one 安装包。
您可从 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

操作步骤

启动白屏界面
命令行执行 obd web 命令启动白屏界面,单击输出的地址访问白屏界面。

obd web
start OBD WEB in 0.0.0.0:8680
please open http://10.10.10.1:8680

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

其中:

模式配置 可选择 最大占用 或 最小可用,最大占用 模式将最大化利用环境资源,保证集群的性能与稳定性,推荐使用;最小可用 模式配置满足集群正常运行的资源参数。两种模式的详细介绍可参考 模式配置规则 一文。

root@sys 密码 默认为 OBD 自动生成的随机字符串,可自定义设置。支持数字、英文、特殊字符,长度 8~32 之内,特殊字符仅支持「~!@#%^&*_-+=`|(){}[]:;',.?/」

集群的数据目录和日志目录默认在 节点配置 页面中配置的软件路径下,需为以 / 开头的绝对路径,支持自定义设置,但需确保设置的目录为空。

数据库和各组件的端口均为默认值,可自定义设置(仅支持 1024~65535 范围),需确保设置对的端口未被占用。

单击打开 更多配置 按钮查看对应的集群或组件参数,可使用自动分配的配置,也可自定义各个参数。

部署特定版本组件

使用 all-in-one 安装包部署时,all-in-one 的包是基于 OceanBase 版本进行迭代,若包中有其他组件存在更新版本,您可从 OceanBase 软件下载中心(https://www.oceanbase.com/softwarecenter) 下载最新版本的组件,参考如下步骤将其上传至本地镜像库,OBD 部署时会自动获取本地镜像库中的最新版本。

进到组件安装包所在目录下,将安装包添加至本地镜像库

[admin@test001 rpm]$ obd mirror clone *.rpm

查看本地镜像中安装包列表

[admin@test001 rpm]$ obd mirror list local

集群命令

查看集群列表
obd cluster list

查看集群状态,以部署名为 myoceanbase 为例
obd cluster display myoceanbase

停止运行中的集群,以部署名为 myoceanbase 为例
obd cluster stop myoceanbase

销毁已部署的集群,以部署名为 myoceanbase 为例
obd cluster destroy myoceanbase
posted @ 2024-03-27 15:26  数据库小白(专注)  阅读(20)  评论(0编辑  收藏  举报