一文讲透 OceanBase 单机版:架构介绍、部署流程、性能测试、MySQL对比、资源配置等等

引言

OceanBase 单机集中式集群(即单机版,后文不再称“单机集中式集群”)是OceanBase 推出的极简数据库架构,区别于分布式集群架构,单机版无多副本和扩缩容能力,适用于开发测试环境及数据安全性要求不高的业务系统。

OceanBase 社区版和企业版都支持单机版部署,相关区别如下。

  • 主备集群: OceanBase v4.1.0 之前,物理备库的产品形态为集群级主备。

    集群有两种角色:主集群和备集群。主集群下面所有用户租户都是主租户;备集群下面所有用户租户都是备租户,备集群会自动同步主集群的租户变更操作。

  • 主备租户: OceanBase v4.1.0 之后,物理备库的产品形态变更为租户级主备,即主或备的角色信息属于租户,分为主租户和备租户,集群不再有主备角色的概念,而只是承载租户的容器。

安装部署

1.1 OceanBase 单机版部署方式

OceanBase 单机社区版部署方式有 3 种,分别是:

  1. 通过 OBD ALL-IN-ONE 包部署

    • 推荐,轻量级部署,所需资源少(OBD 和 OceanBase 单机版数据库可复用1台服务器),方便快速
  2. 通过命令行方式部署

    • 需纯手工命令行操作
  3. 通过 OCP 社区版平台部署

    • 适合规模化部署,需要额外资源部署 OCP 云平台,运维方便

    • 生产环境推荐

1.2 OceanBase 单机版最简部署

需要提前在 OceanBase 官网上下载 OBD all-in-one 安装包,下载地址:https://www.oceanbase.com/softwarecenter

1. 通过 all-in-one 安装包部署 OBD 环境

su - admin
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. 禁用远程仓库

obd mirror disable remote
obd mirror list
# 查看 Type=remote 对应的 Enabled 变成了 False,说明已关闭远程镜像源

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

obd mirror list local

4. 准备配置文件

cd ~/.oceanbase-all-in-one/obd/usr/obd/example/
cp mini-single-example.yaml mini-single-20240221.yaml
vim mini-single-20240221.yaml

添加如下参数到配置文件。

user:
    username: admin
    password: OceanBase_123#
    port: 22
oceanbase-ce:
  servers:
    - 10.186.58.87
  global:
    home_path: /home/admin/observer
    data_dir: /data/1
    redo_dir: /data/log1
    devname: eth0
    mysql_port: 2881
    rpc_port: 2882
    zone: zone1
    cluster_id: 1
    memory_limit: 12G
    system_memory: 1G
    datafile_size: 10G
    datafile_next: 2G
    datafile_maxsize: 20G
    log_disk_size: 20G
    cpu_count: 12
    production_mode: false
    enable_syslog_wf: false
    enable_syslog_recycle: true
    max_syslog_file_count: 4
    root_password: OceanBase_123#

5. 部署 OceanBase 数据库

下述命令创建一个名字为 obtest 的单节点集群

obd cluster deploy obtest -c mini-single-20240221.yaml

输出 obtest deployed 表示该集群创建完成。

6. 配置 lib 环境变量

通过 OCP 社区版或 OBD 启动时不会有环境变量问题(启动时带了相关库),手工启动或执行 observer 命令将报错,解决方式如下。

echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/admin/observer/lib' >> ~/.bash_profile
source ~/.bash_profile

7. 检查和启动数据库

确认 observer 程序在目标机器安装成功。

/home/admin/observer/bin/observer --version

结果为 observer (OceanBase_CE 4.2.2.0)。

启动 OceanBase 数据库。

obd cluster start obtest

启动完成后,使用 root 登录数据库(默认登录 sys 租户)进行创建业务租户等操作。

mysql -h10.186.58.87 -P2881 -uroot -p'OceanBase_123#' -Doceanbase -A
show full processlist;

主备架构

2.1 单机版主备租户简述

OceanBase 单机版支持主备租户架构,并采用异步方式做数据同步。由于 OceanBase 集群支持部署多个业务租户,所以主备租户架构有三种部署方式:

  1. 集群中仅有主租户或备租户

    • 典型场景,适用于两地容灾等多种业务场景

  1. 集群中既有主租户又有备租户

    • 适用于两地多写(容灾)场景

  1. 主租户和备租户在同一个集群中

    • 适用于业务升级(保留数据镜像)场景

2.2 单机版主备租户部署

本章以经典架构(集群中仅有主租户或备租户)为例进行部署,部署方式使用相对简便的 OCP 社区版云平台进行部署。

2.2.1 部署 OCP 社区版

使用 OBD 白屏工具部署 OCP 社区版,具体步骤略。

2.2.2 添加主备主机

OCP 社区版部署完成后,登录到 OCP Web 控制台,添加 2 台主备服务器。

2.2.3 安装两个集群

上传需要部署的 OceanBase 数据库安装包到 OCP 中,需要上传的包如下(具体版本以实际为准):

  • oceanbase-ce-utils-4.2.2.0-100000192024011915.el7.x86_64.rpm

  • oceanbase-ce-libs-4.2.2.0-100000192024011915.el7.x86_64.rpm

  • oceanbase-ce-4.2.2.0-100000192024011915.el7.x86_64.rpm

安装包上传完成后,分别创建 2 个单机集中式集群。

2.2.4 创建主备租户

第一步,集群 1 中创建示例主租户 tmysql

第二步,集群 2 中创建实例备租户 tmysql

2.2.5 数据同步验证

安装完成后可通过 OCP - 租户 - 拓扑图 界面验证主备关系,查看同步延时。

<think>嗯,用户想了解OceanBase单机安装部署,我需要先回忆一下相关知识。OceanBase是蚂蚁集团开源的分布式数据库,但单机部署可能用于测试或学习。首先,用户可能需要系统要求,比如操作系统、依赖库、硬件资源等。然后,安装步骤大概包括下载安装包、安装OBClient、配置环境、初始化目录、启动observer进程,接着配置集群和租户,最后测试连接。可能还需要提到资源限制,比如单机部署不适合生产环境。需要确保步骤清晰,命令准确,并且提醒可能的常见问题,比如端口冲突或依赖缺失。另外,用户可能对Docker部署也感兴趣,可以补充说明。要注意用中文,避免术语错误,结构要条理分明,分步骤解,方便用户跟随操作。需要验证一下各步骤的正确性,比如使用的yum命令是否正确,目录配置是否有误,以及启动命令的参数是否合适。还要注意版本问题,比如OceanBase版本更新可能导致步骤变化,建议用户参考官方文档。可能遇到的错误比如内存不足,如何调整参数,或者如何检查服务状态。总之,要全面但简洁,确保用户能顺利完成单机部署。</think>以下是OceanBase数据库单机版安装部署的详细步骤(适用于测试/学习环境,**不推荐生产环境**): --- ### **一、环境准备** 1. **操作系统** 推荐CentOS 7.x/8.x、Ubuntu 20.04+ 需确保`glibc`版本≥2.14,`python`版本≥3.8 2. **硬件资源** - 最低配置:4核CPU / 8GB内存 / 50GB磁盘 - 推荐测试配置:8核CPU / 16GB内存 / 100GB SSD 3. **依赖安装** ```bash # CentOS yum install -y libaio-devel numactl openssl-devel # Ubuntu apt-get install -y libaio1 libaio-dev numactl openssl ``` --- ### **二、安装步骤** #### **1. 下载安装包** ```bash wget https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/oceanbase-ce-4.2.0.0-1.el7.x86_64.rpm rpm -ivh oceanbase-ce-*.rpm ``` #### **2. 安装OBClient客户端** ```bash wget https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/obclient-2.2.9-1.el7.x86_64.rpm rpm -ivh obclient-*.rpm ``` #### **3. 初始化环境** ```bash # 创建数据/日志目录 mkdir -p /data/obdata/{sstable,etc,slog,clog,ilog} # 设置环境变量 echo "export LD_LIBRARY_PATH=/usr/local/oceanbase/lib:\$LD_LIBRARY_PATH" >> ~/.bashrc source ~/.bashrc ``` #### **4. 启动Observer服务** ```bash obd server start observer \ --home=/usr/local/oceanbase \ --data_dir=/data/obdata/sstable \ --etc_dir=/data/obdata/etc \ --slog_dir=/data/obdata/slog \ --clog_dir=/data/obdata/clog \ --ilog_dir=/data/obdata/ilog \ --zone=zone1 \ --cluster_id=1 \ --rpc_port=2882 \ --mysql_port=2881 \ --nodaemon ``` #### **5. 初始化集群** ```sql # 使用OBClient连接 obclient -h127.0.0.1 -P2881 -uroot # 执行初始化命令 ALTER SYSTEM BOOTSTRAP CLUSTER 'obcluster', 'zone1', '127.0.0.1:2882'; ``` #### **6. 创建测试租户** ```sql CREATE RESOURCE UNIT test_unit max_cpu=2, min_cpu=2, memory_size='4G'; CREATE RESOURCE POOL test_pool unit='test_unit', unit_num=1; CREATE TENANT test_tenant resource_pool_list=('test_pool'); ``` --- ### **三、验证部署** ```bash # 查看节点状态 obd cluster list # 连接测试租户 obclient -h127.0.0.1 -P2881 -utest_tenant@root -c ``` --- ### **四、注意事项** 1. **资源限制** 单机部署建议保留至少30%的CPU和内存余量 可通过`sysbench`进行性能压测: ```bash sysbench oltp_read_write --threads=8 --tables=4 --table-size=100000 prepare ``` 2. **Docker部署方案** ```bash docker run -p 2881:2881 -p 2882:2882 -d oceanbase/oceanbase-ce:latest ``` 3. **常见问题** - **端口冲突**:检查2881/2882端口占用情况 - **内存不足**:调整`memory_limit`参数 - **磁盘空间不足**:清理`sstable`目录下过期数据 --- 建议访问[OceanBase官方文档](https://open.oceanbase.com/docs)获取最新配置指南。单机部署仅适合功能验证,生产环境需采用至少3节点分布式部署
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值