引言
OceanBase 单机集中式集群(即单机版,后文不再称“单机集中式集群”)是OceanBase 推出的极简数据库架构,区别于分布式集群架构,单机版无多副本和扩缩容能力,适用于开发测试环境及数据安全性要求不高的业务系统。
OceanBase 社区版和企业版都支持单机版部署,相关区别如下。
图片
- 主备集群: OceanBase v4.1.0 之前,物理备库的产品形态为集群级主备。集群有两种角色:主集群和备集群。主集群下面所有用户租户都是主租户;备集群下面所有用户租户都是备租户,备集群会自动同步主集群的租户变更操作。
- 主备租户: OceanBase v4.1.0 之后,物理备库的产品形态变更为租户级主备,即主或备的角色信息属于租户,分为主租户和备租户,集群不再有主备角色的概念,而只是承载租户的容器。
一、安装部署
1.1 OceanBase 单机版部署方式
OceanBase 单机社区版部署方式有 3 种,分别是:
- 通过 OBD ALL-IN-ONE 包部署
- 推荐,轻量级部署,所需资源少(OBD 和 OceanBase 单机版数据库可复用1台服务器),方便快速
- 通过命令行方式部署
需纯手工命令行操作
通过 OCP 社区版平台部署
适合规模化部署,需要额外资源部署 OCP 云平台,运维方便
生产环境推荐
1.2 OceanBase 单机版最简部署
需要提前在 OceanBase 官网上下载 OBD all-in-one 安装包,下载地址:https://www.oceanbase.com/softwarecenter[1]
1. 通过 all-in-one 安装包部署 OBD 环境
2. 禁用远程仓库
3. 查看本地镜像中安装包列表
4. 准备配置文件
添加如下参数到配置文件。
5. 部署 OceanBase 数据库
下述命令创建一个名字为 obtest 的单节点集群
输出 obtest deployed 表示该集群创建完成。
6. 配置 lib 环境变量
通过 OCP 社区版或 OBD 启动时不会有环境变量问题(启动时带了相关库),手工启动或执行 observer 命令将报错,解决方式如下。
7. 检查和启动数据库
确认 observer 程序在目标机器安装成功。
结果为 observer (OceanBase_CE 4.2.2.0)。
启动 OceanBase 数据库。
启动完成后,使用 root 登录数据库(默认登录 sys 租户)进行创建业务租户等操作。
二、主备架构
2.1 单机版主备租户简述
OceanBase 单机版支持主备租户架构,并采用异步方式做数据同步。由于 OceanBase 集群支持部署多个业务租户,所以主备租户架构有三种部署方式:
集群中仅有主租户或备租户
典型场景,适用于两地容灾等多种业务场景
图片
集群中既有主租户又有备租户
适用于两地多写(容灾)场景
图片
主租户和备租户在同一个集群中
适用于业务升级(保留数据镜像)场景
图片
2.2 单机版主备租户部署
本章以经典架构(集群中仅有主租户或备租户)为例进行部署,部署方式使用相对简便的 OCP 社区版云平台进行部署。
2.2.1 部署 OCP 社区版
使用 OBD 白屏工具部署 OCP 社区版,具体步骤略。
- 安装包下载
https://www.oceanbase.com/softwarecenter
安装包:ocp-all-in-one-4.2.1-20231208144448.el7.x86_64.tar.gz
- 安装步骤
参考:https://www.oceanbase.com/docs/common-ocp-1000000000584989[2]
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 - 租户 - 拓扑图 界面验证主备关系,查看同步延时。
图片
业务数据写入验证如下:
- 主库写入数据。
图片
- 备库查看数据。
图片
- 备库同步延时查看(需要使用备租户所在集群的 sys 租户)。
2.2.6 故障切换验证
测试 OceanBase 单机版主备租户模式的高可用能力,检查是否支持故障转移。
- 主库 kill 前状态,tmysql 租户主角色在集群 singlecluster 上。
图片
- 主库 kill 后状态,异步同步链路中断。
图片
图片
- 通过手工进行容灾切换的方式进行故障转移。
- 手工容灾切换后,tmysql 租户主角色切换到集群 singleClusterSlave。
图片
三、对比 MySQL 单机版
校正性能基准
3.1 测试命令
本章测试目的是在获取测试服务器 CPU、磁盘基准性能的情况下,对 OceanBase 4.2.2 单机(社区)版和 MySQL 8.0.35 单机(社区)版数据库性能对比测试环境和命令如下。
注意:为减少不同服务器之间误差,本次测试 MySQL 和 OB 数据库都在同一台服务器上进行测试,测试交替进行,MySQL 测试完毕后就关闭 mysqld 服务,启动 OB 数据库进行测试。
图片
3.2 测试机基准测试
3.2.1 磁盘 FIO 测试
使用 Fio 工具测试服务器的磁盘性能指标如下。
- 4K seq read
IOPS: 4975
- 4K seq write
IOPS: 3919
4K rand read
IOPS: 4768
4k rand write
IOPS: 3074
3.2.2 CPU 测试
使用 Sysbench 工具测试服务器的 CPU 性能指标如下。
3.3 4c8g 对比测试结果
同一服务器(配置为 4c8g)下测试 OB 和 MySQL 单机版的对比结果。
图片
通过上述测试,在校准测试服务器性能偏差的情况下,对比 OceanBase 单机版和 MySQL 单机版的测试结果结论如下:
低并发场景,OB 单机版性能比 MySQL 单机版低 50% 左右。
3.4 12c16g 对比测试结果
同一服务器(扩容虚机配置为 12c16g)下测试 OB 和 MySQL 单机版的对比结果。
图片
通过上述测试,在校准测试服务器性能偏差的情况下,对比 OceanBase单机版和 MySQL 单机版的测试结果结论如下
混合读写场景,OB 单机版性能与 MySQL 单机版持平(虚拟机多次测试结果上下差 ±2000 左右,所以该场景 OB 与 MySQL 的性能结果相差不大)。
纯写场景,OB 单机版性能与 MySQL 单机版略高 15% 左右。
四、对比 OBD 自带测试工具
OBD test 命令可以一键进行 sysbench 测试,原理上还是需要调用 sysbench 测试工具的 bin 文件和 LUA Scripts,仅在最外层包装了一层 Python 脚本进行调用,调用文件存储在:/oceanbase-all-in-one/obd/usr/obd/plugins/sysbench/4.0.0.0/run_test.py。
4.1 测试命令
图片
4.2 测试结果
使用 OBD test sysbench 与 直接使用 sysbench 测试 OceanBase 单机版结果差不多,部分测试结果如下:
图片
五、OB 单机版资源配置
5.1 单机版集群配置巡检
本节适用于集群做 Sysbench 测试前,对单机版集群的资源规格和集群配置等做一轮巡检,已提供更好的性能表现。
在部署 OceanBase 单机版集群之后,可以使用 obdiag (OceanBase Diagnose )工具对部署好的集群巡检,步骤如下。
5.1.1 安装 obdiag 工具
Obdiag 工具在 OBD ALL-IN-ONE 包中已提供,可直接使用 obd 进行安装。
5.1.2 巡检集群输出报告
- 直接复制命令,粘贴执行即可查看配置建议。
5.2 最低稳定运行环境
经过测试,OceanBase 单机版最少资源规格稳定运行所需的环境如下。
- 服务器规格
CPU 2C,内存 5G(确保可用内存大于 4G),磁盘 100G
- 系统租户规格
CPU 1G,内存 2G
业务租户规格
CPU 1G,内存 1G
集群配置文件
5.2.1 最低运行环境下启动 OB
部署的Linux服务器规格如下:
5.2.2 最低运行环境下 Sysbench 持续测试
注意:
- 业务规格为 1c1g 情况下,持续写入很容易打满内存。报如下错误,但不影响 observer 运行。
- 可以调整 alter system set memstore\_limit\_percentage=80; 将内存适度调大。
5.3 单机版推荐参数配置
结合 Sysbench 性能压测,推荐的集群、租户的参数或变量设置如下(适应于性能要求较高的测试环境)。
- 集群参数配置
- 业务租户参数配置
- 业务租户变量配置
七、附件
MySQL 配置文件
章节三对比测试中,用到的 MySQL 8.0.35 配置文件如下。
参考资料
[1]OBD 安装包: https://www.oceanbase.com/softwarecenter
[2]OBD 部署安装 OCP 社区版步骤: https://www.oceanbase.com/docs/common-ocp-1000000000584989
作者:任仲禹,爱可生数据库高级工程师,擅长故障分析和性能优化。