当前位置: 首页 > news >正文

oceanbase-部署

一、环境检查

1.更改限制

sudo vim /etc/security/limits.confroot 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 unlimitedulimit -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。

2.更改系统配置

sudo vim /etc/sysctl.conffor 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 = 16777216net.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_slow_start_after_idle = 0vm.swappiness = 0
vm.min_free_kbytes = 2097152
vm.overcommit_memory = 0fs.file-max = 6573688
fs.pipe-user-pages-soft = 0修改进程可以拥有的虚拟内存区域数量
vm.max_map_count = 655360此处为 OceanBase 数据库的 data 目录
kernel.core_pattern = /data/core-%e-%p-%t

3.加载配置

sysctl -p

ARM 环境部署建议

  • bios/uefi 及内核启动参数开启 NUMA 支持。
  • 关闭 NUMA Balancing,避免平衡过程中性能发生抖动,命令如下。
sysctl kernel.numa_balancing=0
  • 禁用内存回收和重新分配功能,命令如下。
sysctl vm.zone_reclaim_mode=0

4.关闭大页

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

5.配置免密

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

6.配置sudo权限

#!/usr/bin/bashSERVERS=("<user>@<server_ip1>" "<user>@<server_ip2>" "<user>@<server_ip3>")
PASSWORD="******"
keygen() {
sudo yum -y install expect
expect -c "spawn ssh-keygen -t rsaexpect {*(~/.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 -1spawn ssh-copy-id $1expect {*(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[@]}
docopy $host
done
}
ssh_copy_id_to_all

二、下载和安装OBD与OCP

1.安装obd并启动

  • 这种方式下载的是el7的安装包,详细见链接
  • 推荐使用自己下载安装包的方式安装obd,详见文档
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.ocp安装

在这里插入图片描述

3.报错与解决

  • 报错:安装ocp时候报错缺少clockdiff
OBD-4360: 10.139.96.139: clockdiff not exists. Please install clockdiff manually
  • 解决:安装clockdiff
apt-get install iputils-clockdiff
  • 故障:安装途中obd退出,导致安装中断
  • 解决:需要清理集群,详见文档
# 列出集群
obd cluster list
# 清理集群
obd cluster destroy cluster_name

三、利用 OCP 安装 OB SERVER

1.添加主机

1.1 添加完主机后会安装OCP Agent,安装的过程较慢,需要等待一段时间

在这里插入图片描述

1.2 报错与解决

  • 添加主机失败,点击查看任务获取如下详细报错,这是
2025-08-27 10:48:46.900 ERROR 25753 --- [manual-subtask-executor2,2f9779ea2159d5fd,abdd57148a0cff4b] c.o.o.c.t.e.c.w.subtask.SubtaskExecutor  : An unknown error has occurred. Cause: Execute clock diff failed.. Error message: 10.139.96.141. Contact the administrator.
  • 解决
    检查clockdiff命令是否成功
# 不是必现的,有时候成功,有时候失败
clockdiff 192.168.1.1
..................................................
host=192.168.1.1 rtt=0(0)ms/0ms delta=0ms/0ms Wed Aug 27 11:15:32 2025
clockdiff 192.168.1.1
..................................................
clockdiff: 10.139.96.139 is down

这个是clockdiff的bug
需要下载最新版本的clockdiff,当然,还有一种方法,多重试几次,也能成功,因为不是必现的

git clone https://github.com/iputils/iputils.git
sudo apt install meson ninja-build libcap-dev build-essential xsltproc -y
cd iputils
./configure && meson build
cd builddir && meson install
sudo mv /usr/bin/clockdiff /usr/bin/clockdiff.bak
sudo mv /usr/local/bin/clockdiff /usr/bin
# 给clockdiff赋权,
# cap_net_raw:允许程序创建原始套接字(raw sockets),用于直接发送和接收网络层的数据包(如 ICMP、UDP/TCP 头部自定义等)。
# cap_sys_nice:允许程序调整进程优先级和 CPU 调度策略(如使用 nice、setpriority、实时调度策略 SCHED_FIFO、SCHED_RR)。
# +ep: e = effective(有效能力):程序运行时生效的权限。p = permitted(许可能力):程序允许使用的权限集合。
sudo setcap cap_net_raw,cap_sys_nice+ep /usr/bin/clockdiff
  • 报错
# 问题1
/tmp/6c9e609b975b4c24/install_package.sh: line 35: rpm2cpio: command not found cpio: premature end of archive
# 问题2
退出码:1,错误信息:sudo: alien: command not found
  • 解决
sudo apt install rpm2cpio alien

2.安装odp(obproxy)

  • 多副本observer的安装前提条件是有odp

3.创建集群

3.1 点击创建集群

在这里插入图片描述

3.2 上传版本包

4.2.5的版本是tp版本,比较稳定,4.3.5的版本是ap版本,支持列存副本以及自动分区,el7位内核版本<5.10的使用,el8为内核版本>=5.10的使用,内核版本用uname -r确定,如果ocp默认的软件包不满足要求,可以下载软件包并上传,软件包详见链接

  • 特别注意,软件包上传后要点击下上传,不能直接叉掉
  • ob:通常指 OceanBase,阿里巴巴开源的分布式关系数据库系统。
  • 4.2.5:版本号,表示主版本号 4,次版本号 2,修订号 5。
  • ce:通常表示 Community Edition,即社区版,开源免费版本。
  • bp5:一般指 Bug Patch 5,即第5个补丁包,包含针对该版本的若干bug修复或小改动。
http://www.dtcms.com/a/354401.html

相关文章:

  • yolo ultralytics之yolov8.yaml文件简介
  • 《信息检索与论文写作》实验报告三 中文期刊文献检索
  • Linux 云服务器内存不足如何优化
  • LinuxC系统多线程程序设计
  • C语言:数据在内存中的存储
  • nginx referer-policy 和 referer
  • redis集群分片策略
  • 【温室气体数据集】NOAA CCGG 飞机观测温室气体
  • 2025年06月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • spring-cloud项目中gateway配置解析
  • DMA学习
  • 【0420】Postgres内核 smgr + md + vfd 实现为指定 table(CREATE TABLE)创建 disk file
  • 每日八股文8.27
  • Linux系统调优工具
  • [Sync_ai_vid] 数据处理流水线 | 配置管理系统
  • 【重学 MySQL】九十二、 MySQL8 密码强度评估与配置指南
  • mysql mvcc机制详解
  • 期权交易中的“道”:从《道德经》中汲取投资智慧
  • RHEL9部署MySQL数据库及数据库的基本使用(增删改查,数据备份恢复)
  • 基于SpringBoot的社区儿童疫苗接种预约系统设计与实现(代码+数据库+LW)
  • Vue将内容生成为二维码,并将所有二维码下载为图片,同时支持批量下载(下载为ZIP),含解决一次性生成过多时页面崩溃解决办法
  • 【雅思020】Opening a bank account
  • C语言二级考试环境配置教程【window篇】
  • 能源行业数据库远程运维安全合规实践:Web化平台的落地经验
  • 【系统分析师】高分论文:论快速应用开发方法及应用
  • Linux初始——基础指令篇
  • Libvio 访问异常排查指南​
  • List | 常见的List实现类(ArrayList、LinkedList、Vector)以及ArrayList源码解读
  • 【Redis】数据分片机制和集群机制
  • 8.28 模拟|双指针