暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

OceanBase 单机企业版初体验

698

大家好,我是 JiekeXu,江湖人称“强哥”,青学会 MOP 技术社区主席,荣获 Oracle ACE Pro 称号,墨天轮 MVP,墨天轮年度“墨力之星”,拥有 Oracle OCP/OCM 认证,MySQL 5.7/8.0 OCP 认证以及 PCA、PCTA、OBCA、OGCA、金仓KCA、KCP 等众多国产数据库认证证书,今天和大家一起来看看OceanBase 单机企业版初体验!欢迎关注我的微信公众号“JiekeXu DBA之路”,然后点击右上方三个点“设为星标”置顶,更多干货文章才能第一时间推送,谢谢!

前 言

在3月28日 OceanBase 合作伙伴大会上,OceanBase 基于自主研发的单机分布式一体化架构,发布了全新的单机版产品,单机版具备极简数据库架构和高度兼容性,包含企业版 Oracle 租户能力和社区版 MySQL 兼容能力,可为中小规模业务提供兼具性能与成本效益的单机数据库解决方案,满足客户从分布式到单机场景的多元化需求。OceanBase 的单机版和分布式版作为企业版两个独立产品,拥有独立的安装包、License、适配工具、文档体系和定价方案。

目前,OceanBase 可兼容超过 95% 的 Oracle 语法、命令、对象,支持存储过程、C 语言接口、预编译器等功能。OceanBase 单机版的 Oracle 兼容性 与 OceanBase 分布式版完全一致,涵盖 SQL 语法、OCI 驱动兼容性、C 语言嵌入 Pro-C 能力等,尤其在过程化语言(PL)方面已实现完整兼容。话不多说,今天就来体验一下吧,还是从安装部署开始。

单机企业版下载

单机版下载链接:https://www.oceanbase.com/softwarecenter-standalone

注意:此链接下载提供的 OceanBase 企业版(单机版),配置有试用版许可证(非生产用途),有效期为180天,仅供学习、测试或适配使用,不提供技术支持及SLA保障,不得用于营利性、商业性或生产目的。试用许可证过期后,您将无法继续使用数据库功能。

oceanbase-standalone-all-in-one-4.2.5.3-103000152025033110.el7.x86_64.tar.gz 安装包属于内测仅 180 天可用,安装包获取需联系官方人员。

另外配套文档也已上线:https://www.oceanbase.com/docs/common-oceanbase-database-standalone-1000000002701677

安装准备

如果使用 obd 工具安装单机版服务器最低要求:CPU 2 核,内存 6G,推荐:CPU 4 核,内存 8G 以上,要是使用 OCP 工具安装单机版,服务器最低要求CPU:16 核,内存:32 GB,磁盘:1.5 TB。

使用 obd 命令行工具部署服务器要求

部署产品

服务器数量

测试开发最低配置

生产环境最低配置

磁盘类型

OceanBase 集群和 obd

1 台

最低要求:CPU 2 核,内存 6G
推荐:CPU 4 核,内存 8G 以上

CPU:8 核
内存:16 GB

SSD 存储

使用 OCP 白屏工具部署服务器要求

OCP 和 MetaDB

1 台

CPU:16 核
内存:32 GB
磁盘:1.5 TB 存储

CPU:32 核
内存:128 GB
磁盘:1.5 TB,万兆网卡

SSD 存储

eanBase 集群和 obd

1 台

最低要求:CPU 2 核,内存 6G
推荐:CPU 4 核,内存 8G 以上

CPU:8 核
内存:16 GB

SSD 存储

另外需要保障 free 的 Mem 值足够满足上述 服务器配置要求 内的配置,如果不够,请清理缓存或者更换服务器。

sysctl -w vm.drop_caches=3
#或echo 3 > /proc/sys/vm/drop_caches

1745491577993

本次因为OS 内存有限,则打算使用 odb 部署,如果内存富裕,可参考官方文档或总监写的文档使用 OCP 工具部署。

操作系统要求CentOS / Red Hat Enterprise Linux 7.x、8.x 或者麒麟V10 或者 Rocky Linux 9 等等。

OceanBase 数据库要求操作系统内核为 3.10.0 及以上。

[root@jiekexu ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.6 (Maipo)
[root@jiekexu ~]# uname -r
3.10.0-957.el7.x86_64

配置NTP

单机环境、测试环境下不需要配置 NTP,如果通过 OCP 部署单机版或者单机版部署了物理备库,则需要设置。

安装NTP

yum install ntp ntpdate -y

查看NTP服务器连接

ntpq -4p

NTP 服务端配置

vi /etc/ntp.conf
server <your_ntp_server_ip> 10.10.10.100

service ntpd restart --重启NTP
ps -ef | grep -i ntpd --查看是否启动成功
chkconfig ntpd on --设置开机自启动

NTP 客户端配置

使用 root 用户登录 OBServer 节点服务器 service ntpd stop

ntpdate 10.10.10.100 <your_ntp_server_ip> 同步NTP服务器时间

vi /etc/ntp.conf
server <your_ntp_server_ip> 10.10.10.100

/etc/init.d/ntpd start

验证

ntpstat
timedatectl

创建用户

部署 OceanBase 单机版推荐使用 admin 用户,也可以使用其他用户(不推荐 root 用户)。但是要求用户具备 sudo 权限和作为数据库相关目录的所有者。这里介绍如何创建普通用户并为普通用户设置 sudo 权限。

groupadd admin
useradd -g admin -d /home/admin -s /bin/bash admin
echo 'JiekeXu_#1234' | passwd --stdin admin

vim /etc/sudoers
admin ALL=(ALL) NOPASSWD: ALL


磁盘规划

OceanBase 数据库的服务器依赖数据盘、事务日志盘和 OceanBase 数据库的安装盘。生产环境建议严格区分磁盘,个人测试随意。我这里使用 /data/OceanBase 即可。

[root@jiekexu data]# mkdir -p /data/OceanBase
[root@jiekexu data]# chown -R admin:admin /data/OceanBase/
[root@jiekexu data]# su - admin

/data/OceanBase/data --存放数据
/data/OceanBase/log --存放日志
/data/OceanBase/oceanbase --存放 OceanBase 数据库的二进制文件和运行日志

配置资源限制 limits.conf

OceanBase 数据库的进程涉及的限制包括线程最大栈空间大小(Stack)、最大文件句柄数(Open Files)和 core 文件大小 (Core File Size)。将会话级别的最大栈空间大小设置为 unlimited,最大文件句柄数设置为 655350,Core 文件大小设置为 unlimited。

cat >> /etc/security/limits.conf << “EOF”
##################################
############For OceanBase Setting########
admin soft nofile 655350
admin hard nofile 655350
admin soft stack unlimited
admin hard stack unlimited
admin soft nproc 655360
admin hard nproc 655360
admin soft core unlimited
admin hard core unlimited
EOF

ulimit -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。

配置 sysctl.conf

vim /etc/sysctl.conf

#### for oceanbase setting####
## 修改内核异步 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 = 16777216
net.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=0
vm.swappiness = 0
vm.min_free_kbytes = 2097152
vm.overcommit_memory = 0
fs.file-max = 6573688
fs.pipe-user-pages-soft = 0
# 修改进程可以拥有的虚拟内存区域数量
vm.max_map_count = 655360
# 设置 core 文件的文件名格式以及目录
kernel.core_pattern = /data/core-%e-%p-%t
# sysctl -p

最后关闭防火墙和 SELinux,这里就不介绍了。

systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld

cp /etc/selinux/config /etc/selinux/config_`date +"%Y%m%d_%H%M%S"`&& sed -i 's/SELINUX\=enforcing/SELINUX\=disabled/g' /etc/selinux/config

使用 obd 部署 OceanBase 数据库单机版

为方便通过 obd 部署 OceanBase 数据库单机版,OceanBase 提供了统一的安装包 oceanbase-standalone-all-in-one-4.2.5.3-xxxxxxxxxxxxxxxxxx.el7.x86_64.tar.gz。该安装包解压后,在 rpms 目录下存在安装 obd、部署 OceanBase 数据库单机版以及监控所需的所有包。该安装包包含 obd、OBClient、OceanBase 数据库、obagent、Grafana 和 Prometheus。rpms 目录中包含的安装包如下所示:

[admin@jiekexu OceanBase]$ tar -xzf oceanbase-standalone-all-in-one-4.2.5.3-103000152025033110.el7.x86_64.tar.gz 

安装 obd

进入 oceanbase-standalone-all-in-one 的安装 bin目录,执行 install_obd.sh 脚本安装 obd。

[admin@jiekexu bin]$ ll
total 52
-rwxr-xr-x 1 admin admin 281 Apr 2 16:24 env.sh
-rwxr-xr-x 1 admin admin 5336 Apr 2 16:24 install_obd.sh
-rwxr-xr-x 1 admin admin 35170 Apr 2 16:24 install_ob.sh
-rwxr-xr-x 1 admin admin 2058 Apr 2 16:24 uninstall_obd.sh
[admin@jiekexu bin]$ bash install_obd.sh
install obd as sudo
No previous obd installed, try install..., wait a moment
name: grafana
version: 7.5.17
release:1
arch: x86_64
md5: 1bf1f338d3a3445d8599dc6902e7aeed4de4e0d6
size: 177766248
add /data/OceanBase/oceanbase-standalone-all-in-one/rpms/grafana-7.5.17-1.el7.x86_64.rpm to local mirror
name: obagent
version: 4.2.2
release:100000042024011120.el7
arch: x86_64
md5: 19739a07a12eab736aff86ecf357b1ae660b554e
size: 72919140
add /data/OceanBase/oceanbase-standalone-all-in-one/rpms/obagent-4.2.2-100000042024011120.el7.x86_64.rpm to local mirror
name: ob-deploy
version: 3.2.0
release:2.el7
arch: x86_64
md5: 7168f4535b417f0a70b78dab2640f08502d07ba6
size: 180796860
add /data/OceanBase/oceanbase-standalone-all-in-one/rpms/ob-deploy-3.2.0-2.el7.x86_64.rpm to local mirror
name: oceanbase-diagnostic-tool
version: 3.2.0
release:52025031411.el7
arch: x86_64
md5: 782ef007c1c8a641ce90288e75e8900f6a61e163
size: 71387558
add /data/OceanBase/oceanbase-standalone-all-in-one/rpms/oceanbase-diagnostic-tool-3.2.0-52025031411.el7.x86_64.rpm to local mirror
name: oceanbase-standalone
version: 4.2.5.3
release:103000152025033110.el7
arch: x86_64
md5: 65f9ed1994b7365a376c9f4c5fc9bd581ff08426
size: 1817991565
add /data/OceanBase/oceanbase-standalone-all-in-one/rpms/oceanbase-standalone-4.2.5.3-103000152025033110.el7.x86_64.rpm to local mirror
name: oceanbase-standalone-libs
version: 4.2.5.3
release:103000152025033110.el7
arch: x86_64
md5: 693de98e5144b63a5f054614e79a69ab4d1067cf
size: 7856
add /data/OceanBase/oceanbase-standalone-all-in-one/rpms/oceanbase-standalone-libs-4.2.5.3-103000152025033110.el7.x86_64.rpm to local mirror
name: prometheus
version: 2.37.1
release:10000102022110211.el7
arch: x86_64
md5: 58913c7606f05feb01bc1c6410346e5fc31cf263
size: 211224073
add /data/OceanBase/oceanbase-standalone-all-in-one/rpms/prometheus-2.37.1-10000102022110211.el7.x86_64.rpm to local mirror
Trace ID: fe59e048-30a2-11f0-a648-0050568a6bf6
If you want to view detailed obd logs, please run: obd display-trace fe59e048-30a2-11f0-a648-0050568a6bf6
Disable remote ok
Trace ID: 01eb8a40-30a3-11f0-bdbd-0050568a6bf6
If you want to view detailed obd logs, please run: obd display-trace 01eb8a40-30a3-11f0-bdbd-0050568a6bf6
add auto set env logic to profile: /home/admin/.bash_profile

[admin@jiekexu bin]$ obd -h
Usage: obd <command> [options]
Available commands:
binlog binlog service tools
cluster Deploy and manage a cluster.
demo Quickly start
display-trace display trace_id log.
host Host tools
license Register and display license.
mirror Manage a component repository for OBD.
obdiag Oceanbase Diagnostic Tool
pwd Obd cluster password management.
repo Manage local repository for OBD.
test Run test for a running deployment.
tool Tools
update Update OBD.
web Start obd deploy application as web.
Options:
--version show program's version number and exit
-h, --help Show help and exit.
-v, --verbose Activate verbose output.
[admin@jiekexu bin]$ obd --version
OceanBase Deploy: 3.2.0
REVISION: 5f4ee37b01de1063b822e7866aaf945e4089cba7
BUILD_BRANCH: HEAD
BUILD_TIME: Apr 01 2025 18:55:12OURCE
Copyright (C) 2025 OceanBase
License Apache 2.0: Apache version 2 or later <https://www.apache.org/licenses/LICENSE-2.0>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

使用 obd 快速部署

两种部署方案,要么使用白屏工具 OCP 图形化部署,要么直接使用 obd demo 快速启动一个环境,注意:obd demo 部署仅适用于快速上手体验,不适用于生产环境

仅部署 OB 数据库 obd demo -c oceanbase-standalone

-c 参数指定组件列表,使用英文逗号(,)间隔。用于指定需要部署的组件。该命令默认在当前用户的家目录下进行最小规格部署,部署的组件版本默认为最新版本。当前支持组件为:oceanbase-ce、obproxy-ce、obagent、grafana、prometheus、ob-configserver、ocp-express。

obd 自 V2.8.0 起支持使用 obd demo 命令部署 ocp-express 组件,自 V2.9.0 起支持使用 obd demo 命令部署 ob-configserver 组件

因为家目录一般为根目录空间没那么大,所以这里需要更改安装目录,按照上一节磁盘规划存到/data/OceanBase/oceanbase 这个目录下。

obd demo -c oceanbase-ce,obproxy-ce --home_path=/data/OceanBase/oceanbase/demo

初始化日志如下:

[admin@jiekexu ~]$ mkdir -p /data/OceanBase/oceanbase/demo
[admin@jiekexu ~]$ ll /data/OceanBase/oceanbase

total 0
drwxrwxr-x 2 admin admin 6 May 14 14:38 demo
[admin@jiekexu ~]$ obd demo -c oceanbase-ce,obproxy-ce,obagent,grafana,prometheus --home_path=/data/OceanBase/oceanbase/demo
Package obproxy-ce-4.2.3.0-3.el7 is available.
Package grafana-7.5.17-1 is available.
Repository integrity check ok
Remote obagent-4.2.2-100000042024011120.el7-19739a07a12eab736aff86ecf357b1ae660b554e repository install ok
Load cluster param plugin ok
Check before start observer ok

[WARN] OBD-2000: (127.0.0.1) not enough memory. (Free: 5151M, Need: 6144M)
[WARN] OBD-1012: (127.0.0.1) clog and data use the same disk (/data)

Check before start obagent ok
Check before start obproxy ok
Initialize oceanbase-ce ok
Start obagent ok
Wait for observer init ok
+---------------------------------------------+
| observer |
+-----------+---------+------+-------+--------+
| ip | version | port | zone | status |
+-----------+---------+------+-------+--------+
| 127.0.0.1 | 4.3.0.1 | 2881 | zone1 | ACTIVE |
+-----------+---------+------+-------+--------+
obclient -h127.0.0.1 -P2881 -uroot -Doceanbase -A
+-----------------------------------------------------------------+
| obagent |
+--------------+--------------------+--------------------+--------+
| ip | mgragent_http_port | monagent_http_port | status |
+--------------+--------------------+--------------------+--------+
| 192.168.217.173 | 8089 | 8088 | active |
+--------------+--------------------+--------------------+--------+
+---------------------------------------------+
| obproxy |
+-----------+------+-----------------+--------+
| ip | port | prometheus_port | status |
+-----------+------+-----------------+--------+
| 127.0.0.1 | 2883 | 2884 | active |
+-----------+------+-----------------+--------+
obclient -h127.0.0.1 -P2883 -uroot -Doceanbase -A
+-----------------------------------------------------+
| prometheus |
+-------------------------+------+----------+--------+
| url | user | password | status |
+--------------------------+------+----------+--------+
| http://192.168.217.173:9090 | | | active |
+--------------------------+------+----------+--------+
+--------------------------------------------------------------------+
| grafana |
+--------------------------------------+-------+------------+--------+
| url | user | password | status |
+--------------------------------------+-------+------------+--------+
| http://192.168.217.173:3000/d/oceanbase | admin | inUlbPdD2z | active |
+--------------------------------------+-------+------------+--------+
demo running

Trace ID: 1bd7f980-308e-11f0-8918-0050568a476d
If you want to view detailed obd logs, please run: obd display-trace 1bd7f980-308e-11f0-8918-0050568a476d

上面是快速启动方式,之前体验社区版的时候就是使用的这种方式,大家可以尝试一下。

交互式安装

在 oceanbase-standalone-all-in-one 的安装目录下,执行 install_ob.sh 脚本启动交互式安装流程。

参考官网进行交互式设置,这里就不做解释了。https://www.oceanbase.com/docs/common-oceanbase-database-standalone-1000000002701718

[admin@jiekexu bin]$ bash install_ob.sh
Enter the IP (Default: 192.168.217.86) (only support local IP):
Valid local IP: 192.168.217.86 --当前主机IP
Enter the current user password : --输入当前用户密码
Trace ID: a13a4940-30a5-11f0-b31d-0050568a6bf6
If you want to view detailed obd logs, please run: obd display-trace a13a4940-30a5-11f0-b31d-0050568a6bf6
get system config ok
No need to change system parameters
Trace ID: a373e4be-30a5-11f0-b22d-0050568a6bf6
If you want to view detailed obd logs, please run: obd display-trace a373e4be-30a5-11f0-b22d-0050568a6bf6
#设置集群名,支持大小写字母、数字和下划线,不区分首字符类型
Enter the cluster name (Default: standalone; allowed characters: letters, numbers, and underscores): JiekeXu
Enter the OB SQL port (Default: 2881):
Enter the OB RPC port (Default: 2882):
Enter the obshell port (Default: 2886):
Enter the OB root password (Default: UORebMBztZLRyFDRfaQ0)
#设置集群 root@sys 用户密码,对应配置文件中的 root_password。未设置时默认会生成一个随机字符串
Confirm the OB root password: --确认root@sys租户密码
#设置集群可用 CPU 总数,对应配置文件中的 cpu_count,配置的值不能小于 8,小于 8 时会自动将值置为 8。未设置时 obd 会自动检测
Enter the OB cpu count (Default: 8): 4
The cpu_count cannot be less than 8. It will be set to 8 automatically.
#设置集群所用内存,对应配置文件中的 memory_limit
Enter the OB memory limit (Configurable Range[6, 7], Default: 7, Unit: G): 6
#设置 OceanBase 集群的安装目录,对应配置文件中的 home_path,未设置时默认在用户家目录下创建集群同名文件夹
Enter the OB installation directory (Default: /home/admin/JiekeXu): /data/OceanBase/oceanbase
#设置存储 SSTable 等数据的目录,对应配置文件中的 data_dir,未设置时默认为 /data/1/${cluster_name}
Enter the OB data directory (Default: /data/1/JiekeXu): /data/OceanBase/data
#设置存储日志的目录,对应配置文件中的 redo_dir,未设置时默认为 /data/log1/${cluster_name}
Enter the OB log directory (Default: /data/log1/JiekeXu): /data/OceanBase/log
The data_dir and redo_dir are using the same disk.
#设置集群的数据磁盘大小,对应配置文件中的 datafile_size
Enter the OB datafile maxsize (Configurable Range[12, 21], Default: 21, Unit: G): 12
#设置集群的日志磁盘大小,对应配置文件中的 log_disk_size,推荐为内存规格的三倍以上
Enter the OB log disk size (Configurable Range[12, 25], Default: 16, Unit: G): 12
#控制是否创建业务租户
Do you want to create tenant for your business workload? (y/n)(Default: y): y
# sys 租户资源信息
Tenant: sys conifguration: 2C/1G/2G(CPU/Memory/Log disk)
system_memory configuration(Unit: G): 1
#设置租户名,支持大小写字母、数字和下划线,不区分首字符类型,默认为test
Enter the tenant name (Default: test; allowed characters: letters, numbers, and underscores):
Please select the tenant mode (enter the corresponding number):
1) MySQL
2) Oracle
#设置租户兼容模式,支持设置为 Oracle 模式和 MySQL 模式,这里为Oracle租户相关配置
Please enter your choice [1/2] (default 1):2
Enter the tenant cpu (Configurable Range[1, 6], Default: 6): 2
Enter the tenant memory (Configurable Range[1, 4], Default: 4, Unit: G): 2
Enter the tenant log disk size(Configurable Range[6, 9], Default: 6, Unit: G): 6
#创建完 Oracle 租户后,默认密码为空,建议用户在创建好租户后及时修改用户密码。
#控制是否开启密码加密功能。输入 n 选择不开启密码加密功能,输入 n 将跳过本环节继续部署流程。您也可输出 y 设置密码加密,设置后查看集群信息时,密码输出为加密状态。
Do you want to enable encryption for password security? (y/n) (Default: n): n
#配置监控信息。
Do you need to install the monitoring components (OBAgent, Prometheus, Grafana)? (y/n) (Default: y):
Enter the OBAgent monitoring service port (Default: 8088):
Enter the OBAgent management service port (Default: 8089):
Enter the Prometheus port (Default: 9090):
Enter the Grafana port (Default: 3000):
#配置信息确认
#Saved configurations:
cluster name: JiekeXu
mysql port: 2881
rpc port: 2882
obshell port: 2886
cpu count: 8
memory limit: 6G
home path: /data/OceanBase/oceanbase
data dir: /data/OceanBase/data
log dir: /data/OceanBase/log
datafile maxsize: 12G
log disk size: 12G
tenant name: test
tenant cpu: 2
tenant memory: 2G
tenant log disk size: 6G
OBAgent monitoring service port: 8088
OBAgent management service port: 8089
Prometheus port: 9090
Grafana port: 3000
#如果上述信息有误,确认这里可以输入n直接结束。
Are you sure these configurations are correct? (y/n) (Default: y):
Configuration confirmed.
start cluster...
Package oceanbase-standalone-4.2.5.3-103000152025033110.el7 is available.
Package obagent-4.2.2-100000042024011120.el7 is available.
Package prometheus-2.37.1-10000102022110211.el7 is available.
Package grafana-7.5.17-1 is available.
install oceanbase-standalone-4.2.5.3 for local ok
install obagent-4.2.2 for local ok
install prometheus-2.37.1 for local ok
install grafana-7.5.17 for local ok
Cluster param config check ok
Open ssh connection ok
Generate obagent configuration ok
Generate prometheus configuration ok
Generate grafana configuration ok
+----------------------------------------------------------------------------------------------------+
| Packages |
+----------------------+---------+------------------------+------------------------------------------+
| Repository | Version | Release | Md5 |
+----------------------+---------+------------------------+------------------------------------------+
| oceanbase-standalone | 4.2.5.3 | 103000152025033110.el7 | 65f9ed1994b7365a376c9f4c5fc9bd581ff08426 |
| obagent | 4.2.2 | 100000042024011120.el7 | 19739a07a12eab736aff86ecf357b1ae660b554e |
| prometheus | 2.37.1 | 10000102022110211.el7 | 58913c7606f05feb01bc1c6410346e5fc31cf263 |
| grafana | 7.5.17 | 1 | 1bf1f338d3a3445d8599dc6902e7aeed4de4e0d6 |
+----------------------+---------+------------------------+------------------------------------------+
Repository integrity check ok
Load param plugin ok
Open ssh connection ok
Initializes obagent work home ok
Initializes observer work home ok
Initializes prometheus work home ok
Initializes grafana work home ok
Parameter check ok
Remote oceanbase-standalone-4.2.5.3-103000152025033110.el7-65f9ed1994b7365a376c9f4c5fc9bd581ff08426 repository install ok
Remote oceanbase-standalone-4.2.5.3-103000152025033110.el7-65f9ed1994b7365a376c9f4c5fc9bd581ff08426 repository lib check ok
Remote obagent-4.2.2-100000042024011120.el7-19739a07a12eab736aff86ecf357b1ae660b554e repository install ok
Remote obagent-4.2.2-100000042024011120.el7-19739a07a12eab736aff86ecf357b1ae660b554e repository lib check ok
Remote prometheus-2.37.1-10000102022110211.el7-58913c7606f05feb01bc1c6410346e5fc31cf263 repository install ok
Remote prometheus-2.37.1-10000102022110211.el7-58913c7606f05feb01bc1c6410346e5fc31cf263 repository lib check ok
Remote grafana-7.5.17-1-1bf1f338d3a3445d8599dc6902e7aeed4de4e0d6 repository install ok
Remote grafana-7.5.17-1-1bf1f338d3a3445d8599dc6902e7aeed4de4e0d6 repository lib check ok
JiekeXu deployed
Get local repositories ok
Load cluster param plugin ok
Open ssh connection ok
[WARN] OBD-2000: (192.168.217.86) not enough memory. (Free: 6G, Need: 6G)
[WARN] OBD-1012: (192.168.217.86) clog and data use the same disk (/)
Check before start obagent ok
Check before start prometheus ok
Check before start grafana ok
cluster scenario: None
Start observer ok
observer program health check ok
Connect to observer 192.168.217.86:2881 ok
oceanbase bootstrap ok
obshell start ok
obshell program health check ok
obshell bootstrap ok
Start obagent ok
obagent program health check ok
Start promethues ok
prometheus program health check ok
Start grafana ok
grafana program health check ok
Connect to grafana ok
Grafana modify password ok
Connect to observer 192.168.217.86:2881 ok
Wait for observer init ok
+-----------------------------------------------+
| oceanbase-standalone |
+-------------+---------+------+-------+--------+
| ip | version | port | zone | status |
+-------------+---------+------+-------+--------+
| 192.168.217.86 | 4.2.5.3 | 2881 | zone1 | ACTIVE |
+-------------+---------+------+-------+--------+
obclient -h192.168.217.86 -P2881 -uroot@sys -p'JiekeXu_#1234' -Doceanbase -A
cluster unique id: 1d6c718f-bed2-5ff1-bc29-e663fc5cd4cc-196ce35b76d-03050204
Connect to Obagent ok
+----------------------------------------------------------------+
| obagent |
+-------------+--------------------+--------------------+--------+
| ip | mgragent_http_port | monagent_http_port | status |
+-------------+--------------------+--------------------+--------+
| 192.168.217.86 | 8089 | 8088 | active |
+-------------+--------------------+--------------------+--------+
Connect to Prometheus ok
+-------------------------------------------------------+
| prometheus |
+-------------------------+-------+------------+--------+
| url | user | password | status |
+-------------------------+-------+------------+--------+
| http://192.168.217.86:9090 | admin | cvgwGlifUq | active |
+-------------------------+-------+------------+--------+
Connect to grafana ok
+------------------------------------------------------------------+
| grafana |
+-------------------------------------+-------+-----------+--------+
| url | user | password | status |
+-------------------------------------+-------+-----------+--------+
| http://192.168.217.86:3000/d/oceanbase | admin | oceanbase | active |
+-------------------------------------+-------+-----------+--------+
JiekeXu running
Trace ID: 4cdf4078-30a8-11f0-8391-0050568a6bf6
If you want to view detailed obd logs, please run: obd display-trace 4cdf4078-30a8-11f0-8391-0050568a6bf6
create tenant...
Get local repositories ok
Open ssh connection ok
Connect to observer 12.0.217.86:2881 ok
Create tenant test ok
Create user in oracle tenant is not supported and --password is not supported
Trace ID: 62f6dc9e-30a9-11f0-9caf-0050568a6bf6
If you want to view detailed obd logs, please run: obd display-trace 62f6dc9e-30a9-11f0-9caf-0050568a6bf6
You can access the test tenant using the following command.:
For security reasons, kindly reset the root password immeditely once the tenant has been successfully created.
obclient -h12.0.217.86 -P2881 -uSYS@test
If this cluster is for production use, please import a commercial license in time.

快速登录数据库

连接到 Oracle 租户模式

obclient -h$host -P$port -u$user_name -p****** [-c] [-A] [$schema_name] [--proxy_user[=]user_name]

obclient -h127.0.0.1 -P2881 -usys@test -p -c -A

连接到 MySQL 租户模式

通过 Observer 登录:obclient -h127.0.0.1 -P2881 -uroot@sys -p'JiekeXu_#1234' -Doceanbase -A

通过 MySQL 客户端登录:mysql -h 主机 IP -P 端口号 -u 账号 -p '数据库密码' -D 默认数据库 -A -c --prompt "OceanBase(\u@\d)> "

mysql -h192.168.217.86 -P2881 -uroot@sys -p -Doceanbase -A -c --prompt "OceanBase(\u@\d)> "

新搭建的集群,其 SYS 租户 root 用户的初始密码为JiekeXu_#1234。

创建租户

使用 root 用户登录到集群的 sys 租户。创建一个名称为 S1_unit_config 的资源规格,其资源配置为 CPU 为 1 核,内存 2G,日志盘空间 2G。

mysql -h192.168.217.86 -P2881 -uroot@sys -p -Doceanbase -A -c --prompt "OceanBase(\u@\d)> "

CREATE RESOURCE UNIT S1_unit_config
MEMORY_SIZE = '2G',
MAX_CPU = 1, MIN_CPU = 1,
LOG_DISK_SIZE = '2G',
MAX_IOPS = 10000, MIN_IOPS = 10000, IOPS_WEIGHT=1;

SELECT * FROM oceanbase.DBA_OB_UNIT_CONFIGS WHERE NAME = 'S1_unit_config'; 

使用 root 用户登录到集群的 sys 租户。创建一个名为 mq_pool_01 的资源池,该 Unit 的资源规格为 S1_unit_config。

obclient -h127.0.0.1 -P2881 -uroot@sys -p'JiekeXu_#1234' -Doceanbase -A

CREATE RESOURCE POOL mq_pool_01
UNIT='S1_unit_config',
UNIT_NUM=1,
ZONE_LIST=('zone1');

SELECT * FROM DBA_OB_RESOURCE_POOLS WHERE NAME = 'mq_pool_01';

OceanBase 数据库支持两种类型的租户,MySQL 兼容模式和 Oracle 兼容模式。创建租户时,您需要指定租户的类型。租户创建后,租户类型无法修改,因此创建租户前请规划好您的租户类型。

创建一个名为 mq_t1 的租户(默认为 MySQL 模式租户),资源池指定为 mq_pool_01,Primary Zone 为 zone1,允许所有 IP 连接数据库.

obclient -h127.0.0.1 -P2881 -uroot@sys -p'JiekeXu_#1234' -Doceanbase -A

CREATE TENANT IF NOT EXISTS mq_t1
PRIMARY_ZONE='zone1',
RESOURCE_POOL_LIST=('mq_pool_01')
set OB_TCP_INVITED_NODES='%';

SELECT * FROM DBA_OB_TENANTS WHERE TENANT_NAME = 'mq_t1'; 

使用 root 用户登录到集群的 sys 租户。创建一个名为 oracle_tenant1 的 Oracle 兼容模式租户,需要显式指定 ob_compatibility_mode='oracle'。

当然也可以继续创建 Oracle 租户,这里就不演示了,因为之前已经创建过 test 租户了。

obclient -h127.0.0.1 -P2881 -uroot@sys -p'JiekeXu_#1234' -Doceanbase -A

CREATE RESOURCE UNIT S2_unit_config
MEMORY_SIZE = '1G',
MAX_CPU = 1, MIN_CPU = 1,
LOG_DISK_SIZE = '2G',
MAX_IOPS = 10000, MIN_IOPS = 10000, IOPS_WEIGHT=1;

CREATE RESOURCE POOL ora_pool_01
UNIT='S2_unit_config',
UNIT_NUM=1,
ZONE_LIST=('zone1');

SELECT * FROM DBA_OB_RESOURCE_POOLS WHERE NAME = 'ora_pool_01';

CREATE TENANT IF NOT EXISTS oracle_tenant1
PRIMARY_ZONE='zone1',
RESOURCE_POOL_LIST=('ora_pool_01')
SET OB_TCP_INVITED_NODES='%',
ob_compatibility_mode='oracle'; 

使用新租户新用户登录mysql租户

obclient -h127.0.0.1 -P2881 -uroot@mq_t1 -A
ALTER USER root IDENTIFIED BY 'JiekeXu_#1234';
obclient -h127.0.0.1 -P2881 -uroot@mq_t1 -pJiekeXu_#1234 -A

清理集群

查看单机版的状态 obd cluster list

查看是否存在备租户

obd cluster tenant show JiekeXu -g

输出如下,表示不存在备租户,且单机版中仅有 sys 租户。若单机版中的租户存在备租户,其输出内容和字段含义的详细介绍可参见官方文档 使用 obd 部署主备租户

destroy 命令不可逆,会在停止 OBServer 进程的同时清除数据库文件。因此执行以下命令前,请先确认单机版已经不再使用,并且需要备份的数据已经完成备份。

obd cluster destroy JiekeXu -f [--igs]

-f 表示检查到工作目录下有运行中的进程时,会强制停止进程,销毁单机版。

--igs 表示检查到单机版中租户在其他单机版中存在备租户时,强制执行 obd cluster destroy 命令。

好了,今天就到这里了,可以看到一个集群可以同时支持 Oracle 和 MySQL 两个租户,比以前的社区版方便多了,后面我们有机会在探索吧。

下面是官方的一张测试对比图:

IMG_256


参考链接

https://www.oceanbase.com/docs/common-oceanbase-database-standalone-1000000002701709

https://www.oceanbase.com/softwarecenter-standalone

https://mp.weixin.qq.com/s/QwlPViTQNQYyMRLGYAhcOg

https://www.modb.pro/db/621129

https://www.oceanbase.com/devcon2025

https://ask.oceanbase.com/t/topic/35623644/18

全文完,希望可以帮到正在阅读的你,如果觉得有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~

❤️ 欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!
——————————————————————————
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
ITPUB:https://blog.itpub.net/69968215
腾讯云:https://cloud.tencent.com/developer/user/5645107
——————————————————————————

最后修改时间:2025-05-19 23:11:56
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论