社区版4.5 OCP部署,避坑指南

本文仅针对oceanbase 社区版4.5.0_20260203版本,不确定其他版本是否存在
由于我个人在模拟实验过程中,尝试本地部署oceanbase社区版,却总是提示内存6g不足,让我陷入了深度怀疑,于是前前后后不断地修改内存配置,发现总是提示小于6G,于是发觉这个问题并不寻常

目录
1.硬件配置
2.ob1命令行操作
3.web操作
4.问题复现
5.分析原因
6.解决方案

下面来描述一下我的问题的复现步骤

1. 硬件配置

操作系统为统一Centos7.9,关闭防火墙,关闭宽容,固定IP

主机名 预装服务 IP
ob1 16(OCP+OBserver+obproxy) 18.200
ob2 10(observer) 18.201
ob3 10(observer) 19.202

2.ob1命令行操作

ob1 ,安装oceanbase all in one 安装包,解压安装

wget -c https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/oceanbase-all-in-one/7/x86_64/oceanbase-all-in-one-4.5.0_20260203.el7.x86_64.tar.g

####
vi /etc/security/limits.d/nofile.conf
* soft nofile 655350
* hard nofile 655350

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

####安装obd,执行obd web
[admin@ob1 bin]$ pwd
/home/admin/oceanbase-all-in-one/bin
[admin@ob1 bin]$ ./install
[admin@ob1 bin]$ source ~/.oceanbase-all-in-one/bin/env.sh
[admin@ob1 bin]$ obd web
start OBD WEB in 0.0.0.0:8680
please open http://192.168.18.200:8680

3.web界面操作

# OB1 配置如下
[admin@ob1 ~]$ cat .obd/cluster/myocp/config.yaml
user:
  username: admin
  password: Zhou123
  port: 22
oceanbase-ce:
  version: 4.2.1.8
  release: 108000022024072217.el7
  package_hash: 499b676f2ede5a16e0c07b2b15991d1160d972e8
  192.168.18.200:
    zone: zone1
    datafile_maxsize: 48G
  192.168.18.201:
    zone: zone2
    datafile_maxsize: 54G
  192.168.18.202:
    zone: zone3
    datafile_maxsize: 54G
  servers:
  - 192.168.18.200
  - 192.168.18.201
  - 192.168.18.202
  global:
    appname: myocp
    root_password: Zhou123_
    mysql_port: 2881
    rpc_port: 2882
    home_path: /home/admin/oceanbase
    data_dir: /home/admin/data/1
    redo_dir: /home/admin/data/log1
    obshell_port: 2886
    memory_limit: 8GB
    ocp_meta_tenant:
      tenant_name: ocp_meta
      max_cpu: 2.0
      memory_size: 2G
    ocp_meta_username: root
    ocp_meta_password: Zhou123_
    ocp_meta_db: meta_database
    ocp_monitor_tenant:
      tenant_name: ocp_monitor
      max_cpu: 2.0
      memory_size: 2G
    ocp_monitor_username: root
    ocp_monitor_password: Zhou123_
    ocp_monitor_db: monitor_database
    cluster_id: 1778203781
    proxyro_password: zWh8Eyxaoy
    ocp_root_password: qYrz4inZeH
    ocp_meta_tenant_log_disk_size: 8G
    enable_syslog_wf: false
    max_syslog_file_count: 16
    production_mode: false
    datafile_size: 22G
    system_memory: 1G
    log_disk_size: 22G
    cpu_count: 8
    datafile_next: 5G
obproxy-ce:
  version: 4.3.5.0
  package_hash: f17b277b681adb1c86bfc3cfda369ad88896da9d
  release: 3.el7
  servers:
  - 192.168.18.200
  global:
    home_path: /home/admin/obproxy
    prometheus_listen_port: 2884
    listen_port: 2883
    enable_obproxy_rpc_service: false
    proxy_mem_limited: 1GB
    obproxy_sys_password: vsGS6EScnw
    skip_proxy_sys_private_check: true
    enable_strict_kernel_release: false
    enable_cluster_checkout: false
  depends:
  - oceanbase-ce
  192.168.18.200:
    proxy_id: 1748
    client_session_id_version: 2
ocp-server-ce:
  version: 4.4.0
  package_hash: f673d693677a2c640f925ad2127a604aaebf00bf
  release: 20251114143405.el7
  servers:
  - 192.168.18.200
  global:
    home_path: /home/admin/ocp
    soft_dir: /home/admin/software
    log_dir: /home/admin/logs
    ocp_site_url: http://192.168.18.200:8080
    port: 8080
    admin_password: Zhou123_
    memory_size: 2G
    manage_info:
      machine: 10
  depends:
  - oceanbase-ce
  - obproxy-ce

4. 问题现象

[注意]
!!! 前提一定要有自动修复,可以将ob2 和ob3 的内存设置为8G来复现问题

全新安装部署OCP

配置memory_limit为8G

在预检查结束时,仅出现了2项报错,但是可以被自动修复

当点击自动修复后,再次复检会出现一项关于memory_limit内存不足的报错

5.分析原因

这个配置文件里的memory_limit会在点击 自动修复 后的前一段时间内消失
然后过了一段时间,自动被重置为6G ,导致修复后的再次检查报错。

###查看命令
cat .obd/cluster/myocp/config.yaml | grep memory_limit

6. 解决方案

1.避免点击自动修复,在第一次自动修复后,返回上一步,重新设置memory_limit
2.重新执行预检,确认没有自动修复项,然后部署
3.如果ob2和ob3内存小于8G的,不要使用自动修复,直接扩大内存,跳过此步骤
总结:避免使用自动修复,提前解决各类问题,避免预检环节报错,可稳定安装

5 个赞

手动点赞~测试同学在复现了

2 个赞

厉害

2 个赞

学习了大佬

1 个赞

谢谢分享,好文档啊,收藏一下

1 个赞

@James-zhou obd当前的逻辑是这样的:
第一步先检查我们自己写的内存大小和机器可用内存大小,然后出现了第一次部署时的报错,提示内存不够,这里的自动修复会将配置中的内存大小修复为最大可用,就是6g。
第二次中检查出来提示租户内存配置过大,是由于修复后的内存不够租户使用,这里的主要目的是提示用户减小租户内存或者增加memory limit。而在第一步中由于我们自己写的内存是够租户使用的,所以只有机器内存不够大的报错提示,没有出现租户内存不够的报错。
这两个报错本来是没有关联性的。

1 个赞

学习一下

1 个赞

学习