首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >零基础OceanBase数据库入门:搭建你的第一个OceanBase数据库

零基础OceanBase数据库入门:搭建你的第一个OceanBase数据库

作者头像
俊才
发布2026-03-31 12:42:11
发布2026-03-31 12:42:11
7380
举报
文章被收录于专栏:数据库干货铺数据库干货铺

我们近期开始从0开始学习OceanBase了。

很多开发者、运维同学甚至技术管理者,都会有这样的困惑:为什么要学OceanBase?它和我们常用的MySQL、PostgreSQL到底有啥不一样?什么时候该选它,什么时候继续用MySQL/PostgreSQL?

一、先搞懂:OceanBase到底是什么?

简单说,OceanBase是一款完全自研的国产原生分布式关系型数据库——划重点:原生分布式、自研、关系型,这三个词是它的核心标签。

它由蚂蚁集团自主研发,不是基于MySQL、PostgreSQL等开源数据库二次开发,拥有完整自主知识产权,代码级可控,从根源上避免了开源技术的依赖风险和限制问题。

可能有人会问:“分布式数据库不就是把多个数据库凑一起吗?”真不是。OceanBase的“原生分布式”,是从底层架构就设计成“能横向扩展、能扛住海量数据和高并发”的形态,不用像MySQL那样,靠分库分表的中间件来勉强支撑大规模场景,而是天生就适合海量数据、高并发的核心业务。

它的核心亮点的很突出,总结3个最关键的:

  • 抗造能打:连续多年稳定支撑双11,峰值处理能力能达到6100万次/秒,单表行数能突破万亿级,还创新推出“三地五中心”城市级容灾方案,能实现数据零丢失(RPO=0)、故障快速恢复(RTO<8秒),满足金融级的高可用要求
  • 省钱省心:采用自研的高压缩引擎,存储成本能降低70%~90%;支持多租户架构,一套集群能给多个业务提供服务,租户间数据隔离,大幅降低部署和运维成本,比如百词斩用它后存储空间直接节省80%
  • 兼容性强:高度兼容MySQL和Oracle语法,还提供自动迁移工具,很多用MySQL的业务,几乎不用改代码就能迁移到OceanBase上,降低了迁移成本和学习成本

目前,OceanBase已经助力4000+行业客户实现核心系统升级,覆盖金融、互联网、政务、零售等多个领域,比如工商银行、太平洋保险、高德地图、快手等,都在用它支撑核心业务。

二、数据库选型建议:到底该怎么选?

1. OceanBase vs MySQL vs PostgreSQL

很多人会把三者放在一起比,但其实它们的定位、擅长场景完全不同——就像同样是交通工具,自行车适合短途代步,汽车适合家庭出行,高铁适合长途高效出行,没有好坏,只有适配与否。

对比维度

OceanBase

MySQL系

PostgreSQL系

核心定位

国产原生分布式关系型数据库,主打金融级高可用、海量数据处理,兼顾TP和AP混合负载(HTAP)

开源关系型数据库,主打易用性、高性能,面向中小规模到大规模的全场景通用需求

开源对象-关系型数据库,主打功能强大、扩展性强,面向复杂查询和高级特性需求

架构类型

原生分布式架构,支持水平扩展,集群节点可超数千个,单集群最大数据量超3PB

以单机架构为主,分布式需依赖分库分表中间件,扩展性较差

单机架构为主,分布式需依赖第三方扩展(如Citus),不够成熟

兼容性

高度兼容MySQL、Oracle语法,支持过程语言、触发器等高级特性,迁移成本低

兼容标准SQL,语法简单,生态内工具、框架适配完善

高度兼容SQL标准(2023版核心特性兼容率超96%),支持自定义数据类型、函数

高可用能力

采用Paxos协议实现多副本强一致性,支持“三地五中心”容灾,满足金融级6级容灾标准

依赖主从复制、读写分离实现高可用,可能存在数据丢失风险

支持主从复制、流复制,高可用配置较复杂,需手动优化

核心优势

高可用、高扩展、高压缩、HTAP混合负载、国产自研可控

开源免费、易用性强、生态完善、学习成本低、部署简单

功能强大、数据类型丰富、支持复杂查询、扩展性极强、开源免费

核心劣势

生态不如MySQL/PostgreSQL成熟,部署运维复杂度高,硬件资源需求较高

分布式能力弱,大规模场景需手动分库分表,存储成本较高

高并发场景性能不如MySQL,学习曲线陡峭,运维优化复杂

适用场景

金融核心系统、互联网海量业务(如电商、支付)、政务核心系统、大规模分布式场景

中小规模应用、Web网站、电商后台、中小企业管理系统、读多写少场景

复杂数据分析、科研场景、需要自定义功能的业务、对数据完整性要求高的场景

2. 到底该怎么选

2.1 优先选MySQL:中小规模、追求低成本和易用性

如果你的业务是中小规模(比如用户量几十万、数据量百万级),不需要分布式部署,团队技术栈偏简单,追求低成本、易上手,那MySQL绝对是首选

比如个人博客、中小企业的CRM系统、小型电商后台,用MySQL足够支撑,而且社区活跃,遇到问题能快速找到解决方案,运维成本也低——毕竟它是Web开发的“标配数据库”,生态完善到几乎能适配所有主流开发语言和框架。

2.2 优先选PostgreSQL:需要复杂查询、自定义功能

如果你的业务涉及复杂数据分析、多维度查询,或者需要自定义数据类型、函数(比如科研数据处理、企业级报表系统),那PostgreSQL更合适

它支持数组、JSON、几何类型等丰富的数据类型,还有多种高级索引,能轻松应对复杂的查询场景,而且开源免费,适合对功能扩展性要求高、能接受一定学习成本的团队。

2.3 优先选OceanBase:大规模分布式、核心业务、高可用需求

如果你的业务是核心系统(比如金融交易、支付、政务核心),需要支撑海量数据(亿级以上)、高并发(每秒数万次请求),而且对数据一致性、高可用性要求极高,或者有国产替代需求,那OceanBase是最优解

比如银行的核心交易系统、电商的双11峰值场景、互联网大厂的海量用户数据存储,用OceanBase能避免MySQL分库分表的繁琐,还能节省大量存储成本,同时满足金融级的容灾要求(如官方给的例子:常熟农商银行用它后,跑批时间从6小时缩短到9分钟)。

三、 从0开始学习:从部署学习环境开始

进入官网环境https://www.oceanbase.com/demo,先从单机版快速上手。

选择部署【OceanBase单机版】,即可初始化实验环境

初始化完成后如下(1h的时间):

1. 部署前配置

  • 创建用户
代码语言:javascript
复制
[root@iZbp130a38f5akwzn8n97bZ ~]# useradd -U admin -d /home/admin -s /bin/bash
[root@iZbp130a38f5akwzn8n97bZ ~]# chown -R admin:admin /home/admin
[root@iZbp130a38f5akwzn8n97bZ ~]# 

并将创建的admin用户配置sudo权限(免密等)

创建目录并授权

代码语言:javascript
复制
[root@iZbp130a38f5akwzn8n97bZ ~]# mkdir -p /data/{1,log1}
[root@iZbp130a38f5akwzn8n97bZ ~]# chown -R admin:admin /data
  • 上传all-in-one安装包

因体验环境中已内置安装包,故不需要再上传安装包。

2. 部署过程

2.1 安装包处理

将安装包移动到/home/admin下,并切换到admin用户进行部署(不推荐root用户部署及管理)

代码语言:javascript
复制
[admin@iZbp130a38f5akwzn8n97bZ ~]$ ll -h 
total 729M
-rw-r--r-- 1 root root 729M Aug  8  2025 oceanbase-standalone-all-in-one-4.2.5_bp4_hf4_20250716.el7.x86_64.tar.gz
[admin@iZbp130a38f5akwzn8n97bZ ~]$ 

解压安装包

代码语言:javascript
复制
$ tar -zxvf oceanbase-standalone-all-in-one-4.2.5_bp4_hf4_20250716.el7.x86_64.tar.gz 

2.2 安装obd

执行安装命令,安装 obd

代码语言:javascript
复制
[admin@iZbp130a38f5akwzn8n97bZ ~]$ cd oceanbase-standalone-all-in-one
[admin@iZbp130a38f5akwzn8n97bZ oceanbase-standalone-all-in-one]$ sh bin/install_obd.sh 

执行安装后如下:

代码语言:javascript
复制
Trace ID: 992e69b8-2b66-11f1-9af9-00163e61e744
If you want to view detailed obd logs, please run: obd display-trace 992e69b8-2b66-11f1-9af9-00163e61e744
Disable remote ok
Trace ID: 9a5d2306-2b66-11f1-8e45-00163e61e744
If you want to view detailed obd logs, please run: obd display-trace 9a5d2306-2b66-11f1-8e45-00163e61e744

add auto set env logic to profile: /home/admin/.bash_profile

Execute this command to apply the environment config:`source ~/.oceanbase-all-in-one/bin/env.sh`

按照提示,执行环境变量

代码语言:javascript
复制
[admin@iZbp130a38f5akwzn8n97bZ oceanbase-standalone-all-in-one]$ source ~/.oceanbase-all-in-one/bin/env.sh

2.3 启动交互式安装

  • 检查内存

为了确保能够顺利完成OceanBase数据库的安装,安装完obd之后安装OceanBase数据库之前,建议查询下机器的可用内存,确保可用内存满足数据库的资源要求。

查看本机IP

因为安装时需要用的IP信息,因此先查看一下

填写部署相关信息

代码语言:javascript
复制
 bin/install_ob.sh
Enter the IP (Default: 192.168.2.251): 
Enter the current user password: 
get system config ok
+-----------------------------------------------------------------+
|                   System Parameter Change List                  |
+---------------+------------------+---------------+--------------+
| ip            | need_change_var  | current_value | target_value |
+---------------+------------------+---------------+--------------+
| 192.168.2.251 | fs.aio-max-nr    | 65536         | 1048576      |
| 192.168.2.251 | vm.max_map_count | 65530         | 655360       |
| 192.168.2.251 | fs.file-max      | 777882        | 6573688      |
| 192.168.2.251 | nofile           | 65535         | 655350       |
+---------------+------------------+---------------+--------------+
Do you want to modify the parameters above? [y/n] [Default: y]: 

配置集群信息

后面的集群信息均可选择默认,注意自己的密码设置

对于监控配置,建议自己的本地环境创建时比较配置上

  • 开始部署

配置完毕后会自动开始部署

  • 部署成功

部署成功后如下:

  • 验证

根据上一步结果中的提示信息,登录集群

代码语言:javascript
复制
[admin@iZbp130a38f5akwzn8n97bZ oceanbase-standalone-all-in-one]$ obclient -h192.168.2.251 -P'2881' -p'123456' -uroot@test -Doceanbase -A
Welcome to the OceanBase.  Commands end with ; or \g.
Your OceanBase connection id is 3221502964
Server version: OceanBase 4.2.5.4 (r104040052025071121-969b0573b5acaa8702a55910412894a7a33b7382) (Built Jul 11 2025 21:46:10)

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@test)[oceanbase]> show  databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| oceanbase          |
| test               |
+--------------------+
4 rows in set (0.003 sec)

obclient(root@test)[oceanbase]> 
  • 查看进程observer进程

结果显示如下

代码语言:javascript
复制
$ ps -ef|grep observer
admin     8133     1 47 20:13 ?        00:02:23 /home/admin/myoceanbase/oceanbase_name/bin/observer -r 192.168.2.251:2882:2881 -p 2881 -P 2882 -z zone1 -n myoceanbase -c 1774786407 -d /data/1/myoceanbase -I 192.168.2.251 -o __min_full_resource_pool_memory=2147483648,cluster_name=myoceanbase,cpu_count=8,memory_limit=7G,datafile_size=2G,datafile_maxsize=139G,datafile_next=14G,log_disk_size=19G,system_memory=0M,large_query_threshold=600s,enable_record_trace_log=False,enable_syslog_recycle=1,max_syslog_file_count=300
admin     9601  1409  0 20:18 pts/0    00:00:00 grep --color=auto observer

至此,OceanBase的单机环境便部署完毕。

四、 结语

本文为OceanBase数据库学习的第一篇,即初识以及官方实验环境单机部署,后续我们继续在实验环境上学习。如果感兴趣的也可以一起来学习、有问题的也在留言区一起交流,共同进步。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据库干货铺 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档