OceanBase 4.2.1社区版 最小资源需求安装方式

OceanBase 4.2.1社区版 最小资源需求安装方式

资源需求

资源需求分析

observer Memory 控制参数:

memory_limit_percentage 默认80%

memory_limit 直接设定observer Memory 大小

System memory 可设为1G

租户内存:sys租户内存设为1G,OCP需要的租户ocp_mate、ocp_monitor 最小内存需要2G,链接会报错。

SQL查询还要预留部分内存1G

需要总内存1G+1G+2G+2G+1G=7G.

正常使用OCP安装的话最小也需要 7G/80%=9G 内存。

我们使用不正常方式来安装,需求还可以在减小一点。

我们可以把ocp_mate、ocp_monitor租户使用单个note,分别放到两个note上。那需要总内存就为1G+1G+2G+1G=5G.

虚机配置规划

OBD虚机 :1核CPU,1G内存,200G硬盘。

OCP虚机 :4核CPU,5G内存,200G硬盘。

OBServer1虚机 :4核CPU,8G内存,200G硬盘。

OBServer1虚机 :4核CPU,8G内存,200G硬盘。

虚拟机环境

虚拟机安装

我是用的是VMware加centoc7.虚拟机安装比较简单,就不详细写了。

创建虚机

OBD虚机 :1核CPU,1G内存,200G硬盘,hostname:obd。

OCP虚机 :4核CPU,5G内存,200G硬盘,hostname:ocp。

OBServer1虚机 :4核CPU,8G内存,200G硬盘,hostname:obs1。

OBServer1虚机 :4核CPU,8G内存,200G硬盘,hostname:obs2。

环境配置

创建用户

useradd -U admin -d /home/trw -m -s /bin/bash

设置密码

passwd admin

关闭防火墙

systemctl stop firewalld.service

systemctl disable firewalld.service

systemctl status firewalld.service

设置ulimit

vi /etc/security/limits.d/20-nproc.conf在文件尾部添加

sh 复制代码
vi /etc/security/limits.d/20-nproc.conf
*       soft    nproc   655360          #最大线程数
*       hard    nproc   655360          #最大线程数

vi /etc/security/limits.conf在文件尾部添加

sh 复制代码
vi /etc/security/limits.conf
*       soft    nofile  655350
*       hard    nofile  655350
*       soft    stack   20480
*       hard    stack   20480
*       soft    core    unlimited
*       hard    core    unlimited

vi /etc/sysctl.conf在文件尾部添加

sh 复制代码
vi /etc/sysctl.conf
vm.max_map_count=655360
vm.min_free_kbytes=2097152
fs.file-max = 6573688

设置免密码sudo

vi /etc/sudoers 在文件尾部添加

sh 复制代码
vi /etc/sudoers
admin       ALL=(ALL)       NOPASSWD: ALL

创建需要的目录

sh 复制代码
sudo mkdir /data
sudo chown admin:admin /data

数据库oceanbase-ce、obproxy-ce 安装

下载软件包

OceanBase社区版一键安装包 (OceanBase All in One)

https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/oceanbase-all-in-one/7/x86_64/oceanbase-all-in-one-4.2.1.2-102000042023120514.el7.x86_64.tar.gz

OceanBase 云平台 OCP

https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/ocp/4.2.1_CE_BP1/ocp-all-in-one-4.2.1-20231208144448.el7.x86_64.tar.gz

OBD安装

使用admin用户,上传上面下载的两个软件包。(我上传到:/home/admin/soft/ 下,这个随自己爱好,在哪都行)

分别解压两个软件包。

sh 复制代码
cd /home/admin/soft/
tar -zxvf ocp-all-in-one-4.2.1-20231127205908.el7.x86_64.tar.gz
tar -zxvf oceanbase-all-in-one-4.2.1.1-100120231117154841.el7.x86_64.tar.gz

拷贝 oceanbase-all-in-one/rpms/ 下的所有rpm包到 ocp-all-in-one/rpms/ 下

sh 复制代码
 cp  /home/admin/soft/oceanbase-all-in-one/rpms/*.rpm /home/admin/soft/ocp-all-in-one/rpms/

执行install.sh安装obd

sh 复制代码
[admin@obd rpms]$ cd /home/admin/soft/ocp-all-in-one/bin/
[admin@obd bin]$ ls
env.sh  install.sh  uninstall.sh
[admin@obd bin]$ ./install.sh
[admin@obd ~]$ source ~/.oceanbase-all-in-one/bin/env.sh

创建配置文件

可使用OBD web创建配置文件,也可以使用我的配置文件。两种方法使用其中一种

配置文件会保存在/home/admin/.obd/cluster下,如下图ob、ocp文件夹为OBD管理的集群名各自的配置保存在自己的文件夹下。

使用我的observer配置文件config.yaml

直接创建目录/home/admin/.obd/cluster/ob

sh 复制代码
mkdir -p /home/admin/.obd/cluster/ob

创建config.yaml把下方配置内容粘贴到config.yaml文件中

sh 复制代码
vi /home/admin/.obd/cluster/ob/config.yaml
yaml 复制代码
user:
  username: admin
  password: admin
  port: 22
oceanbase-ce:
  version: 4.2.1.1
  release: 101010012023111012.el7
  package_hash: e98c6ef860b5644c36f806e6fa2265255572b40a
  192.168.7.31:
    zone: zone1
  192.168.7.32:
    zone: zone2
  servers:
  - 192.168.7.31
  - 192.168.7.32
  global:
    appname: ob
    root_password: ABcd@#11223344
    mysql_port: 2881
    rpc_port: 2882
    home_path: /home/admin/ob/oceanbase
    datafile_maxsize: 10GB
    system_memory: 1GB
    cluster_id: 1702558665
    enable_syslog_recycle: true
    enable_syslog_wf: false
    max_syslog_file_count: 2
    memory_limit: 6G
    datafile_size: 2G
    log_disk_size: 20G
    cpu_count: 16
    production_mode: false
    __min_full_resource_pool_memory: 1073741824
    datafile_next: 2G
    proxyro_password: XztSLx00hB
obproxy-ce:
  version: 4.2.1.0
  package_hash: 0aed4b782120e4248b749f67be3d2cc82cdcb70d
  release: 11.el7
  servers:
  - 192.168.7.31
  - 192.168.7.32
  global:
    prometheus_listen_port: 2884
    listen_port: 2883
    home_path: /home/admin/ob/obproxy
    obproxy_sys_password: ABcd@#11223344
    skip_proxy_sys_private_check: true
    enable_strict_kernel_release: false
    enable_cluster_checkout: false
    proxy_mem_limited: 500M
  depends:
  - oceanbase-ce
使用obd_web创建配置文件

使用obd web命令启动web服务

sh 复制代码
[admin@obd cluster]$ obd web 
start OBD WEB in 0.0.0.0:8680
please open http://192.168.7.10:8680

登录网页 http://192.168.7.10:8680 根据自己的提示登录

点击 开启体验之旅 开始部署

如下图点击

如下图点击,取消工具前的复选框

保留两个节点

红框标注处注意修改

点击预检测后配置文件即可生成/home/admin/.obd/cluster/ob/config.yaml。

此时可以继续点部署进行部署,也可使用命令部署。建议点击退出使用命令部署。这样可以 vi config.yaml 进行更多参数修改优化

安装oceanbase-ce、obproxy-ce

使用 obd cluster deploy ob 进行部署 ob为前面输入的集群名

sh 复制代码
[admin@obd ob]$ obd cluster deploy ob

运行完成之后按提示执行obd cluster start ob 继续部署,命令执行完成之后oceanbase-ce、obproxy-ce 部署成功

sh 复制代码
obd cluster start ob

数据库ocp-server-ce 安装

链接数据库

根据自己喜欢的工具链接数据库,我使用的是navicat

最好链接obproxy的2883端口

数据库优化设置

sql 复制代码
# 按照物理机器总内存的百分比计算observer内存上限
SHOW parameters LIKE 'memory_limit_percentage'
alter system set memory_limit_percentage=90

# OceanBase 数据库的内存大小
SHOW parameters LIKE 'memory_limit'
alter system set memory_limit='7G'

# 表示租户的MemStore 部分占租户总内存的百分比
SHOW parameters LIKE 'memory_limit_percentage'
alter system set memstore_limit_percentage=90

# 通过参数设定"系统内部内存"上限
SHOW parameters LIKE 'system_memory'
alter system set system_memory='1G'

创建ocp需要的租户

创建资源单元uint,资源池pool,租户tenant ocp_meta、ocp_monitor

sql 复制代码
#创建资源单元uint
create resource unit trw_unit max_cpu=2, min_cpu=2, memory_size='2G';
#创建资源池pool
create resource pool trw_pool1 unit=trw_unit, unit_num=1, ZONE_LIST=('zone1');
create resource pool trw_pool2 unit=trw_unit, unit_num=1, ZONE_LIST=('zone2');
#创建租户tenant
CREATE TENANT ocp_meta RESOURCE_POOL_LIST=('trw_pool1') SET VARIABLES ob_tcp_invited_nodes='%';
CREATE TENANT ocp_monitor RESOURCE_POOL_LIST=('trw_pool2') SET VARIABLES ob_tcp_invited_nodes='%';

修改租户密码

使用空密码链接租户ocp_meta、ocp_monitor修改root用户密码

sql 复制代码
ALTER USER root IDENTIFIED BY password;

创建数据库

租户ocp_meta下创建数据库

sql 复制代码
# cp_meta 下创建数据库
CREATE DATABASE meta_database
CREATE DATABASE backup1472
CREATE DATABASE backup147x
CREATE DATABASE backup21
CREATE DATABASE backup2230

租户 ocp_monitor 下创建数据库

sql 复制代码
# 租户 ocp_monitor 下创建数据库
CREATE DATABASE monitor_database

创建配置文件

可使用OBD web创建配置文件,也可以使用我的配置文件。两种方法使用其中一种

使用我的ocp配置文件config.yaml

直接创建目录/home/admin/.obd/cluster/ocp

sh 复制代码
mkdir -p /home/admin/.obd/cluster/ocp

创建config.yaml把下方配置内容粘贴到config.yaml文件中

sh 复制代码
vi /home/admin/.obd/cluster/ocp/config.yaml
yaml 复制代码
user:
  username: admin
  password: admin
  port: 22
ocp-server-ce:
  version: 4.2.1
  package_hash: 92177252c57cf643656c1c1d2073dc256c87e12a
  release: 20231127205908.el7
  servers:
  - 192.168.7.20
  global:
    home_path: /home/admin/ocp
    soft_dir: /home/admin/software
    log_dir: /home/admin/logs
    port: 8080
    admin_password: ABcd@#11223344
    memory_size: 2G
    manage_info:
      machine: 3
    jdbc_url: jdbc:oceanbase://192.168.7.31:2883/oceanbase
    jdbc_username: root@sys
    jdbc_password: ABcd@#11223344
    ocp_meta_tenant:
      tenant_name: ocp_meta
      max_cpu: 2.0
      memory_size: 2G
    ocp_meta_username: root
    ocp_meta_password: ABcd@#11223344
    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: ABcd@#11223344
    ocp_monitor_db: monitor_database
使用obd_web创建配置文件

使用obd web命令启动web服务

sh 复制代码
[admin@obd cluster]$ obd web 
start OBD WEB in 0.0.0.0:8680
please open http://192.168.7.10:8680

登录网页 http://192.168.7.10:8680 根据自己的提示登录

点击 开启体验之旅 开始部署

如下图点击

如下图点击

输入ocp的集群名

输入obproxy的IP:192.168.7.31、端口:2883 、sys租户root用户的密码

输入要安装ocp的服务器的应户名、密码、IP

设置ocp网页的管理员密码,端口

如下修改资源规格参数,输入ocp_meta、ocp_monitor租户root用户密码

点击预检查可生成配置文件/home/admin/.obd/cluster/ocp/config.yaml(预检查会卡住或报错无法通过,直接点退出)

跳过租户检测

修改 /home/admin/.obd/plugins/ocp-server-ce/4.2.1/start_check.py文件设置skip_create_tenant='True' 注意缩进保持一致

python 复制代码
                # tenant check
                #skip_create_tenant = 'False'
                #skip_create_tenant = getattr(options, "skip_create_tenant", "False")
                skip_create_tenant = 'True'
                if skip_create_tenant == 'False':
                    sql = "select * from oceanbase.DBA_OB_TENANTS where TENANT_NAME = %s"
                    meta_tenant = server_config.get('ocp_meta_tenant')['tenant_name']
                    meta_max_cpu = server_config['ocp_meta_tenant'].get('max_cpu', 2)
                    meta_memory_size = server_config['ocp_meta_tenant'].get('memory_size', '2G')
                    if server_config.get('ocp_monitor_tenant'):
                        monitor_user = server_config.get('ocp_monitor_username', 'monitor_user')
                        monitor_tenant = server_config['ocp_monitor_tenant']['tenant_name']
                        monitor_max_cpu = server_config['ocp_monitor_tenant'].get('max_cpu', 2)
                        monitor_memory_size = server_config['ocp_monitor_tenant'].get('memory_size', '4G')
                        res = cursor.fetchone(sql, [monitor_tenant])
                        if res:
                            error('tenant', err.EC_OCP_SERVER_TENANT_ALREADY_EXISTS.format({"tenant_name":monitor_tenant}))
                    res = cursor.fetchone(sql, [meta_tenant])
                    if res:
                        error('tenant', err.EC_OCP_SERVER_TENANT_ALREADY_EXISTS.format({"tenant_name":meta_tenant}))
                    break

安装ocp-server-ce

执行命令 obd cluster deploy ocp 部署ocp

sh 复制代码
 obd cluster deploy ocp

待执行结束,根据提示执行 obd cluster start ocp

sh 复制代码
obd cluster start ocp

执行完成,就可以登录ocp 网页了,通过网页接管ob集群,就不再介绍自行添加。

如果再在想添加一个节点组成三节点,网页ocp可直接操作。

相关推荐
OceanBase数据库官方博客4 天前
解析 OceanBase 生态工具链 —— OAT / obd / OCP / obshell
数据库·oceanbase·分布式数据库
福大大架构师每日一题8 天前
RAGFlow v0.24.0 发布!全新「内存系统 + 多沙箱引擎 + OceanBase 支持」惊艳登场,功能全面革新!
oceanbase·ragflow
云和恩墨15 天前
云和恩墨zCloud V6.0、zData X V3与OceanBase V4完成兼容互认证,解锁数据管理新可能
oceanbase·兼容认证·zcloud·zdatax
OceanBase数据库官方博客17 天前
从分库分表到原生分布式:高德基于 OceanBase 的数据底座演进之路
数据库·oceanbase·分布式数据库
MoMoSQL66618 天前
2026年1月国产数据库大事记:国开行2822万采购Gbase,浙商银行930万采购GoldenDB,墨天轮发布“2025年度数据库”……
数据库·阿里云·tidb·oceanbase·gaussdb
OceanBase数据库官方博客24 天前
OceanBase场景解码系列三|OB Cloud 如何稳定支撑中企出海实现数 10 倍的高速增长?
数据库·oceanbase·分布式数据库
码海踏浪24 天前
从简单到专业在OceanBase中查看SQL是否走索引
数据库·sql·oceanbase
OceanBase数据库官方博客1 个月前
DeepK 自动程序修复框架论文——OceanBase 校企联合研究
数据库·oceanbase·分布式数据库
OceanBase数据库官方博客1 个月前
高德刘振飞:从自研 OceanBase,回望数据库技术范式变迁
数据库·oceanbase·分布式数据库·高德
MMMMMMMMMMemory1 个月前
社区版oceanbase报警XA事务悬挂
数据库·oceanbase