本文为墨天轮数据库管理服务团队第 214 期技术分享,作者吴华伟,原创内容,如需转载请联系小墨(VX:modb666)并注明来源。
说明:
用于测试环境布署,个人学习,布署社区版4.5版本,单机的集群方式。
操作系统要求
[root@ob1 ~]#cat /sys/kernel/mm/transparent_hugepage/enabled[always] madvise never[root@ob1 ~]#echo never > /sys/kernel/mm/transparent_hugepage/enabled[root@ob1 ~]#cat /sys/kernel/mm/transparent_hugepage/enabledalways madvise [never]--修改/etc/rc.d/rc.local,添加以下,方便下次重启生效。echo never > /sys/kernel/mm/transparent_hugepage/enabled--给文件+x可执行权限chmod +x /etc/rc.d/rc.local
--创建用户[root@ob1 transparent_hugepage]# useradd -U admin -d /home/admin -s /bin/bash[root@ob1 transparent_hugepage]# chown -R admin:admin /home/admin[root@ob1 transparent_hugepage]# passwd adminChanging password for user admin.New password:BAD PASSWORD: The password is shorter than 8 charactersRetype new password:passwd: all authentication tokens updated successfully.[root@ob1 transparent_hugepage]#--设置SUDO权限[root@ob1 transparent_hugepage]# vim /etc/sudoers在 /etc/sudoers 文件末尾添加如下内容:## Same thing without a password# %wheel ALL=(ALL) NOPASSWD: ALLadmin ALL=(ALL) NOPASSWD: ALL
[root@ob1 transparent_hugepage]# cd /[root@ob1 /]# mkdir data[root@ob1 /]# mkdir redo[root@ob1 /]# chown -R admin:admin /data[root@ob1 /]# chown -R admin:admin /redo
在 /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
需查看 /etc/security/limits.d/20-nproc.conf 文件中是否存在 nproc 的配置,若存在 需同步修改该文件中 nproc 的值,将4096修改为655360[admin@ob1 /]$ cat /etc/security/limits.d/20-nproc.conf# Default limit for number of user's processes to prevent# accidental fork bombs.# See rhbz #432903 for reasoning.* soft nproc 4096root soft nproc unlimited [admin@ob1 /]$ sudo vi /etc/security/limits.d/20-nproc.conf[admin@ob1 /]$ cat /etc/security/limits.d/20-nproc.conf# Default limit for number of user's processes to prevent# accidental fork bombs.# See rhbz #432903 for reasoning.* soft nproc 655360root soft nproc unlimited[admin@ob1 /]$
退出当前会话,重新登录。执行以下命令,查看配置是否生效[root@ob1 /]# su - adminLast login: Thu Feb 26 12:34:40 PST 2026 on pts/1[admin@ob1 ~]$ ulimit -acore file size (blocks, -c) unlimiteddata seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size (blocks, -f) unlimitedpending signals (-i) 34264max locked memory (kbytes, -l) 64max memory size (kbytes, -m) unlimitedopen files (-n) 655350pipe size (512 bytes, -p) 8POSIX message queues (bytes, -q) 819200real-time priority (-r) 0stack size (kbytes, -s) unlimitedcpu time (seconds, -t) unlimitedmax user processes (-u) 655360virtual memory (kbytes, -v) unlimitedfile locks (-x) unlimited[admin@ob1 ~]$
执行以下命令,打开 /etc/sysctl.conf 配置文件:[admin@test001 ~]$ sudo vim /etc/sysctl.conf
在 /etc/sysctl.conf 配置文件中添加以下内容:#for oceanbase##修改内核异步 I/O 限制fs.aio-max-nr = 1048576##网络优化net.core.somaxconn = 2048net.core.netdev_max_backlog = 10000net.core.rmem_default = 16777216net.core.wmem_default = 16777216net.core.rmem_max = 16777216net.core.wmem_max = 16777216net.ipv4.ip_forward = 0net.ipv4.conf.default.rp_filter = 1net.ipv4.conf.default.accept_source_route = 0net.ipv4.tcp_syncookies = 1net.ipv4.tcp_rmem = 4096 87380 16777216net.ipv4.tcp_wmem = 4096 65536 16777216net.ipv4.tcp_max_syn_backlog = 16384net.ipv4.tcp_fin_timeout = 15net.ipv4.tcp_slow_start_after_idle = 0vm.swappiness = 0vm.min_free_kbytes = 2097152vm.overcommit_memory = 0fs.file-max = 6573688fs.pipe-user-pages-soft = 0##修改进程可以拥有的虚拟内存区域数量vm.max_map_count = 655360##设置 core 文件的文件名格式以及目录kernel.core_pattern = /data/core-%e-%p-%t
其中, kernel.core_pattern 中的 /data 为 OceanBase 数据库的 data 目录。更改配置完成后,执行以下命令,加载配置,使配置生效。[admin@ob1 ~]$ sudo sysctl -p
[admin@ob1 ~]$ sudo systemctl disable firewalld[admin@ob1 ~]$ sudo systemctl stop firewalld[admin@ob1 ~]$ sudo systemctl status firewalld
执行以下命令,打开 /etc/selinux/config 配置文件:[admin@ob1 ~]$ sudo vim /etc/selinux/config
在 /etc/selinux/config 配置文件中修改对应配置项为以下内容:[admin@ob1 ~]$ setenforce 0
2. 通过 obd 图形化界面部署OceanBase集群
本文以 x86 架构的 CentOS Linux 7.9 镜像作为环境介绍如何使用 obd 图形化界面部署 OceanBase 数据库。下载安装包,进入官网下载页面,下载最新的 OceanBase All in One,并上传到服务器。https://www.oceanbase.com/softwarecenter[admin@ob1 ~]$ tar -xzf oceanbase-all-in-one-*.tar.gz[admin@ob1 ~]$ cd oceanbase-all-in-one/bin/[admin@ob1 bin]$ ./install.sh
install obd as sudoNo previous obd installed, try install..., wait a momentname: alertmanagerversion: 0.28.1release:32025073111.el7arch: x86_64md5: c5fe05fcc8263b83f6d0602a871d7e1a7a79bdb8size: 69543154add /soft/oceanbase-all-in-one/rpms/alertmanager-0.28.1-32025073111.el7.x86_64.rpm to local mirrorname: grafanaversion: 7.5.17release:1arch: x86_64md5: 1bf1f338d3a3445d8599dc6902e7aeed4de4e0d6size: 177766248add /soft/oceanbase-all-in-one/rpms/grafana-7.5.17-1.el7.x86_64.rpm to local mirrorname: obagentversion: 4.2.4release:200000022025090416.el7arch: x86_64md5: bae1154d745991c109af6cb5b151fb2831594df4size: 72947757add /soft/oceanbase-all-in-one/rpms/obagent-4.2.4-200000022025090416.el7.x86_64.rpm to local mirrorname: ob-configserverversion: 1.0.0release:2.el7arch: x86_64md5: feca6b9c76e26ac49464f34bfa0780b5a8d3f4a0size: 24259515add /soft/oceanbase-all-in-one/rpms/ob-configserver-1.0.0-2.el7.x86_64.rpm to local mirrorname: ob-deployversion: 4.2.0release:1.el7arch: x86_64md5: 63936b09a892a27df843fe7337ca5143a72c7a5csize: 213908897add /soft/oceanbase-all-in-one/rpms/ob-deploy-4.2.0-1.el7.x86_64.rpm to local mirrorname: obproxy-ceversion: 4.3.5.0release:3.el7arch: x86_64md5: f17b277b681adb1c86bfc3cfda369ad88896da9dsize: 123559862add /soft/oceanbase-all-in-one/rpms/obproxy-ce-4.3.5.0-3.el7.x86_64.rpm to local mirrorname: ob-sysbenchversion: 1.0.20release:21.el7arch: x86_64md5: 34eb6ecba0ebc4c31c4cfa01162045cbbbec55f7size: 1566511add /soft/oceanbase-all-in-one/rpms/ob-sysbench-1.0.20-21.el7.x86_64.rpm to local mirrorname: obtpccversion: 5.0.0release:1.el7arch: x86_64md5: 8624590be4bfe16f28bdd9fc5e4849cda19577d6size: 1890344add /soft/oceanbase-all-in-one/rpms/obtpcc-5.0.0-1.el7.x86_64.rpm to local mirrorname: obtpchversion: 3.0.0release:1.el7arch: x86_64md5: 3e3e88f87527677998fedf25087f5c87779dee62size: 1856985add /soft/oceanbase-all-in-one/rpms/obtpch-3.0.0-1.el7.x86_64.rpm to local mirrorname: oceanbase-ceversion: 4.2.1.8release:108000022024072217.el7arch: x86_64md5: 499b676f2ede5a16e0c07b2b15991d1160d972e8size: 457041540add /soft/oceanbase-all-in-one/rpms/oceanbase-ce-4.2.1.8-108000022024072217.el7.x86_64.rpm to local mirrorname: oceanbase-ceversion: 4.5.0.0release:100000012025112711.el7arch: x86_64md5: ea2a91329c00190d20c01dd73da81b2f081abd4esize: 1001699475add /soft/oceanbase-all-in-one/rpms/oceanbase-ce-4.5.0.0-100000012025112711.el7.x86_64.rpm to local mirrorname: oceanbase-ce-libsversion: 4.2.1.8release:108000022024072217.el7arch: x86_64md5: d02f4bfd321370a02550424293beb1be31204038size: 468528add /soft/oceanbase-all-in-one/rpms/oceanbase-ce-libs-4.2.1.8-108000022024072217.el7.x86_64.rpm to local mirrorname: oceanbase-ce-libsversion: 4.5.0.0release:100000012025112711.el7arch: x86_64md5: d3819a346ae9437422d248563ee7e88cfd1dfaccsize: 7848add /soft/oceanbase-all-in-one/rpms/oceanbase-ce-libs-4.5.0.0-100000012025112711.el7.x86_64.rpm to local mirrorname: oceanbase-ce-utilsversion: 4.2.1.8release:108000022024072217.el7arch: x86_64md5: 6f87392f95b399a21382323f256cfda5969375c4size: 403350984add /soft/oceanbase-all-in-one/rpms/oceanbase-ce-utils-4.2.1.8-108000022024072217.el7.x86_64.rpm to local mirrorname: oceanbase-ce-utilsversion: 4.5.0.0release:100000012025112711.el7arch: x86_64md5: eb2f66c9fe4becee1400a6472a6e53e7bd5d8227size: 1735471904add /soft/oceanbase-all-in-one/rpms/oceanbase-ce-utils-4.5.0.0-100000012025112711.el7.x86_64.rpm to local mirrorname: oceanbase-diagnostic-toolversion: 3.7.1release:12025102215.el7arch: x86_64md5: d52e8fa03d97b755b6bc3bf6515d0b2f51c4a927size: 71887826add /soft/oceanbase-all-in-one/rpms/oceanbase-diagnostic-tool-3.7.1-12025102215.el7.x86_64.rpm to local mirrorname: ocp-agent-ceversion: 4.4.0release:20251114143405.el7arch: aarch64md5: 6c619c8406abb57771d26e29ea7b0f58d5fed3desize: 134228546add /soft/oceanbase-all-in-one/rpms/ocp-agent-ce-4.4.0-20251114143405.el7.aarch64.rpm to local mirrorname: ocp-agent-ceversion: 4.4.0release:20251114143405.el7arch: x86_64md5: f8dd0ebfaa2c2f413fb3eafb922cfabde114d32fsize: 190676800add /soft/oceanbase-all-in-one/rpms/ocp-agent-ce-4.4.0-20251114143405.el7.x86_64.rpm to local mirrorname: ocp-server-ceversion: 4.4.0release:20251114143405.el7arch: noarchmd5: f673d693677a2c640f925ad2127a604aaebf00bfsize: 491684490add /soft/oceanbase-all-in-one/rpms/ocp-server-ce-4.4.0-20251114143405.el7.noarch.rpm to local mirrorname: openjdk-jreversion: 17.0.16_8release:92025080421.el7arch: x86_64md5: ceb2cc6abb2016acb9d13681e5d8c76bab7ddd56size: 140342516add /soft/oceanbase-all-in-one/rpms/openjdk-jre-17.0.16_8-92025080421.el7.x86_64.rpm to local mirrorname: prometheusversion: 2.37.1release:10000102022110211.el7arch: x86_64md5: 58913c7606f05feb01bc1c6410346e5fc31cf263size: 211224073add /soft/oceanbase-all-in-one/rpms/prometheus-2.37.1-10000102022110211.el7.x86_64.rpm to local mirrorTrace ID: 39b96858-1355-11f1-8d27-000c297b3ac6If you want to view detailed obd logs, please run: obd display-trace 39b96858-1355-11f1-8d27-000c297b3ac6Disable remote okTrace ID: 3e32118c-1355-11f1-8f2a-000c297b3ac6If you want to view detailed obd logs, please run: obd display-trace 3e32118c-1355-11f1-8f2a-000c297b3ac6add auto set env logic to profile: /home/admin/.bash_profile#########################################################################################Install Finished=========================================================================================Setup Environment: source ~/.oceanbase-all-in-one/bin/env.shQuick Start: obd demoQuick Start (performance): obd perfInteractive install: obd cluster deploy -iUse Web Service to install: obd webUse Web Service to upgrade: obd web upgradeMore Details: obd -h [admin@ob1 bin]$ source ~/.oceanbase-all-in-one/bin/env.sh
命令行执行 obd web 命令启动图形化界面,单击输出的地址访问图形化界面。[admin@ob1 oceanbase-all-in-one]$ obd webstart OBD WEB in 0.0.0.0:8680please open http://192.168.125.137:8680
默认仅勾选 OBProxy 组件,您可通过单击 可选组件 下对应组件前的勾选框设置是否部署 对应组件。组件版本固定为最新版本,单击对应组件后的 了解更多 可跳转查看对应组件的 文档介绍 2.3节点配置您可在节点配置界面配置数据库和组件节点,部署用户以及软件安装路径,节点配置界面内容如下。obclient -h192.168.125.137 -P2881 -uroot@sys -p'root_1234' -Doceanbase -Aobclient -h192.168.125.137 -P2883 -uroot@proxysys -p'}_(|}nkTGcHIZI:tV&U)ZV(5F.KSo' -Doceanbase -Ahttp://192.168.125.137:2886
在 OceanBase 集群部署成功后,单击部署成功页面右下角的 创建业务租户 按钮,进入创建 业务租户流程,您可参照下表介绍配置租户相关信息obclient -h192.168.125.137 -P'2881' -uroot@obu1 -p'root_1234' -Doceanbase -A


# 查看集群列表[admin@ob1 ~]$ obd cluster list+----------------------------------------------------------------------+| Cluster List |+-------------+--------------------------------------+-----------------+| Name | Configuration Path | Status (Cached) |+-------------+--------------------------------------+-----------------+| myoceanbase | /home/admin/.obd/cluster/myoceanbase | running |+-------------+--------------------------------------+-----------------+Trace ID: 54b23c4c-13d3-11f1-90ba-000c29f4388eIf you want to view detailed obd logs, please run: obd display-trace 54b23c4c-13d3-11f1-90ba-000c29f4388e[admin@ob1 ~]$ # 查看集群状态,以部署名为 myoceanbase 为例[admin@ob1 .obd]$ obd cluster display myoceanbaseGet local repositories and plugins okOpen ssh connection okConnect to observer 192.168.125.137:2881 okWait for observer init ok+---------------------------------------------------+| oceanbase-ce |+-----------------+---------+------+-------+--------+| ip | version | port | zone | status |+-----------------+---------+------+-------+--------+| 192.168.125.137 | 4.5.0.0 | 2881 | zone1 | ACTIVE |+-----------------+---------+------+-------+--------+obclient -h192.168.125.137 -P2881 -uroot@sys -p'root_1234' -Doceanbase -Acluster unique id: 20e1bbde-a015-5e82-b1bd-1cbe71d52cea-19c9eecc968-00000504obshell program health check okdisplay obshell dashboard ok+-----------------------------------------------------------+| obshell Dashboard |+-----------------------------+------+-------------+--------+| url | user | password | status |+-----------------------------+------+-------------+--------+| http://192.168.125.137:2886 | root | 'root_1234' | active |+-----------------------------+------+-------------+--------+Connect to obproxy ok+---------------------------------------------------------------------+| obproxy-ce |+-----------------+------+-----------------+-----------------+--------+| ip | port | prometheus_port | rpc_listen_port | status |+-----------------+------+-----------------+-----------------+--------+| 192.168.125.137 | 2883 | 2884 | 2885 | active |+-----------------+------+-----------------+-----------------+--------+obclient -h192.168.125.137 -P2883 -uroot@proxysys -p'}_(|}nkTGcHIZI:tV&U)ZV(5F.KSo' -Doceanbase -ATrace ID: 1e3159c2-13d4-11f1-b412-000c29f4388eIf you want to view detailed obd logs, please run: obd display-trace 1e3159c2-13d4-11f1-b412-000c29f4388e[admin@ob1 .obd]$ # 停止运行中的集群,以部署名为 myoceanbase 为例[admin@ob1 .obd]$ obd cluster stop myoceanbaseGet local repositories okGet local repositories and plugins okOpen ssh connection okConnect to observer 192.168.125.137:2881 okMinor freeze okStop observer okStop obshell okStop obproxy-ce okmyoceanbase stoppedTrace ID: 5669e0d4-13d4-11f1-a7cf-000c29f4388eIf you want to view detailed obd logs, please run: obd display-trace 5669e0d4-13d4-11f1-a7cf-000c29f4388e[admin@ob1 .obd]$ # 启动运行中的集群,以部署名为 myoceanbase 为例[admin@ob1 .obd]$ obd cluster start myoceanbaseGet local repositories okLoad cluster param plugin okOpen ssh connection ok[WARN] OBD-2000: (192.168.125.137) not enough memory. (Free: 6G, Need: 6G)cluster scenario: htapStart observer okobserver program health check okConnect to observer 192.168.125.137:2881 okobshell start okobshell program health check okstart obproxy okobproxy program health check okConnect to obproxy okConnect to observer 192.168.125.137:2881 okWait for observer init ok+---------------------------------------------------+| oceanbase-ce |+-----------------+---------+------+-------+--------+| ip | version | port | zone | status |+-----------------+---------+------+-------+--------+| 192.168.125.137 | 4.5.0.0 | 2881 | zone1 | ACTIVE |+-----------------+---------+------+-------+--------+obclient -h192.168.125.137 -P2881 -uroot@sys -p'root_1234' -Doceanbase -Acluster unique id: 20e1bbde-a015-5e82-b1bd-1cbe71d52cea-19c9eecc968-00000504obshell program health check okdisplay obshell dashboard ok+-----------------------------------------------------------+| obshell Dashboard |+-----------------------------+------+-------------+--------+| url | user | password | status |+-----------------------------+------+-------------+--------+| http://192.168.125.137:2886 | root | 'root_1234' | active |+-----------------------------+------+-------------+--------+Connect to obproxy ok+---------------------------------------------------------------------+| obproxy-ce |+-----------------+------+-----------------+-----------------+--------+| ip | port | prometheus_port | rpc_listen_port | status |+-----------------+------+-----------------+-----------------+--------+| 192.168.125.137 | 2883 | 2884 | 2885 | active |+-----------------+------+-----------------+-----------------+--------+obclient -h192.168.125.137 -P2883 -uroot@proxysys -p'}_(|}nkTGcHIZI:tV&U)ZV(5F.KSo' -Doceanbase -Amyoceanbase runningTrace ID: 717fb754-13d4-11f1-91b8-000c29f4388eIf you want to view detailed obd logs, please run: obd display-trace 717fb754-13d4-11f1-91b8-000c29f4388e[admin@ob1 .obd]$
[admin@ob1 ~]$ obclient -h192.168.125.137 -P'2881' -uroot@obu1 -p'root_1234' -Doceanbase -AWelcome to the OceanBase. Commands end with ; or \g.Your OceanBase connection id is 3221575155Server version: OceanBase_CE 4.5.0.0 (r100000012025112711-0e8d5ad012baf0953b2032a35a88bdf8886e9a7a) (Built Nov 27 2025 12:06:16)Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.obclient(root@obu1)[oceanbase]>obclient(root@obu1)[oceanbase]>obclient(root@obu1)[oceanbase]> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || oceanbase || test |+--------------------+4 rows in set (0.005 sec)obclient(root@obu1)[oceanbase]>obclient(root@obu1)[oceanbase]> CREATE DATABASE db1 DEFAULT CHARACTER-> SET utf8mb4 READ WRITE;Query OK, 1 row affected (0.049 sec)obclient(root@obu1)[oceanbase]>obclient(root@obu1)[oceanbase]> show databases;+--------------------+| Database |+--------------------+| db1 || information_schema || mysql || oceanbase || test |+--------------------+5 rows in set (0.005 sec)obclient(root@obu1)[oceanbase]> use db1;Database changedobclient(root@obu1)[db1]>obclient(root@obu1)[db1]> CREATE TABLE test (c1 INT PRIMARY KEY, c2-> VARCHAR(3));Query OK, 0 rows affected (0.262 sec)obclient(root@obu1)[db1]>obclient(root@obu1)[db1]> SHOW CREATE TABLE test\G*************************** 1. row ***************************Table: testCreate Table: CREATE TABLE `test` (`c1` int(11) NOT NULL,`c2` varchar(3) DEFAULT NULL,PRIMARY KEY (`c1`)) ORGANIZATION INDEX DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = 'zstd_1.3.8' REPLICA_NUM = 1 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE ENABLE_MACRO_BLOCK_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 01 row in set (0.054 sec)obclient(root@obu1)[db1]>obclient(root@obu1)[db1]> SHOW TABLES FROM db1;+---------------+| Tables_in_db1 |+---------------+| test |+---------------+1 row in set (0.057 sec)obclient(root@obu1)[db1]>obclient(root@obu1)[db1]> insert into test values(1,'1a');Query OK, 1 row affected (0.005 sec)obclient(root@obu1)[db1]>obclient(root@obu1)[db1]> select * from test;+------+------+| c1 | c2 |+------+------+| 1 | 1a |+------+------+1 row in set (0.012 sec)obclient(root@obu1)[db1]>s
墨天轮从乐知乐享的数据库技术社区蓄势出发,全面升级,提供多类型数据库管理服务。墨天轮数据库管理服务旨在为用户构建信赖可托付的数据库环境,并为数据库厂商提供中立的生态支持。
服务官网:https://www.modb.pro/service