OceanBase数据库实战:Windows Docker部署与DBeaver无缝对接
随着大数据和云计算的普及,OceanBase 在企业数字化转型中扮演着重要角色。学习 OceanBase 可以帮助开发者掌握先进的分布式数据库技术,提升数据管理能力
一、前言
OceanBase 是一款高性能、高可扩展的分布式数据库,适用于大规模数据处理和企业级应用。
随着大数据和云计算的普及,OceanBase 在企业数字化转型中扮演着重要角色。学习 OceanBase 可以帮助开发者掌握先进的分布式数据库技术,提升数据管理能力。使用 Docker 安装 OceanBase 简化了部署流程,让用户无需复杂的环境配置即可快速启动,适合开发者进行实验和学习。
本文将介绍如何在 Docker 上安装 OceanBase,使用 DBeaver 连接数据库,创建库表并查询数据。
2019 年,OceanBase 数据库 V2.2 版本参加代表 OLTP 数据库最权威的 TPC-C 评测,以 6000 万 tpmC 的成绩登顶世界第一。随后,在 2020 年,又以 7 亿 tpmC 刷新纪录。OceanBase 数据库是第一个上榜 TPC-C 的分布式数据库,也是第一个上榜的中国数据库。
这份闪耀全球的成绩单背后,隐藏着一场历时十年的“极限长征”:从阿里工程师在机房彻夜鏖战的草稿纸推演,到支付宝核心系统迁移前夕的惊险48小时;从被质疑“分布式架构无法承载金融级事务”的至暗时刻,到以开源代码重新定义行业标准的破局之路……
后续我们会专门开辟篇章,深入讲述 OceanBase 的发展历程,带大家领略这款分布式数据库从无到有、从弱到强的传奇故事。
二、下载安装
2.1 环境准备
操作系统:Windows 11
Docker工具:Docker Desktop
(Docker Desktop安装配置可参考之前文章:Windows安装Docker Desktop,详细步骤 https://blog.csdn.net/qq_17153885/article/details/141337873?spm=1001.2014.3001.5501)
2.2 拉取镜像
Docker 环境准备好之后,就可以在主机上启动容器了,恰好 OceanBase 提供了单机版的镜像,完美适用于快速体验的场景。
OceanBase 的单机版镜像 oceanbase/oceanbase-ce, 按照版本以不同的 tag 划分,latest 默认对应的是最新发布的版本,体验最新版本,可以直接使用 latest 作为 tag,或者不写 tag。
按win+r,启动运行界面,输入cmd
在运行界面,执行如下命令,拉取镜像
docker pull oceanbase/oceanbase-ce
拉取后,在Docker Desktop可查看oceanbase镜像
备注:如果拉取失败,可能镜像源失效。可私信(公众号:技海拾贝),获取最新可用镜像源
2.3 启动单节点OceanBase数据库实例
运行以下命令(这里本次操作选择mini 独立实例),启动 OceanBase 数据库的实例:
docker run -p 2881:2881 --name oceanbase-ce -e MINI_MODE=1 -d oceanbase/oceanbase-ce
根据当前容器部署最大规格的实例
docker run -p 2881:2881 --name oceanbase-ce -e MINI_MODE=0 -d oceanbase/oceanbase-ce
部署 mini 的独立实例
docker run -p 2881:2881 --name oceanbase-ce -e MINI_MODE=1 -d oceanbase/oceanbase-ce
启动预计需要 2-3 分钟。执行以下命令,如果返回 boot success!
,则启动成功。
查看日志
docker logs oceanbase-ce
2.4 连接数据库实例
oceanbase-ce 镜像安装了 OBD(OceanBase Deployer,OceanBase 安装部署工具)和 OBClient(OceanBase 命令行客户端)。您可选择进入容器,使用 OBD 命令管理和 OBClient 客户端连接实例,也可使用宿主机本地 OBClient 或 MySQL 客户端连接到 OceanBase 数据库实例。
在 OceanBase 的 Docker 容器中还自带了常用的一些工具,在部署完之后可以直接用来做一些验证。
#切换终端到docker容器
[root@rac04 ~]# docker exec -it oceanbase-ce bash
#检查集群状态
[root@61d0ccd3ea95 /]# obd cluster list
+------------------------------------------------------------+
| Cluster List |
+-----------+------------------------------+-----------------+
| Name | Configuration Path | Status (Cached) |
+-----------+------------------------------+-----------------+
| obcluster | /root/.obd/cluster/obcluster | running |
1.进入 Docker 容器
docker exec -it oceanbase-ce bash
通过DeskTop进入也可以
2.查看集群详情
#查看集群列表
obd cluster list
#查看 obcluster 集群详情
obd cluster display obcluster
obd cluster list
3.连接数据库
使用以下命令可以使用 sys 租户连接到 OceanBase 数据库,连接数据库,默认root密码为空
obclient -h127.0.0.1 -uroot@sys -A -Doceanbase -P2881 -p
4.执行sql语句
show databases;
5.创建用户及密码
-
创建用户 :在源端业务租户下创建用户,用于数据迁移或数据同步。对于 OceanBase 数据库 MySQL 租户,使用以下命令:
CREATE USER 'user_name' IDENTIFIED BY 'password';
对于 OceanBase 数据库 Oracle 租户,使用以下命令:
CREATE USER user_name IDENTIFIED BY password;
-
为用户授权 :通过
GRANT
语句为创建的数据库用户授权,例如:GRANT SELECT ON db_name.* TO user_name;
具体的授权语句和权限范围根据实际需求确定。
假设您有一个用户 test_user
,希望授予其所有数据库的所有权限,可以执行以下命令:
sql复制
GRANT ALL ON *.* TO 'test_user'@'%';
CREATE USER 'zhangsan' IDENTIFIED BY 'td98761n'
GRANT ALL ON *.* TO 'zhangsan'@'%';
三、通过 DBeaver 连接 OceanBase 数据库
DBeaver 是一款通用的数据库客户端工具,其原理是使用各个数据库提供的 JDBC 驱动连接数据库,支持常见的关系型数据库、非关系型数据库、分布式数据库等等。
使用 DBeaver 自带的 OceanBase 驱动或 MySQL 驱动均可连接 OceanBase 数据库的 MySQL 租户,本文将以 OceanBase 驱动为例介绍如何使用 DBeaver 连接 OceanBase 数据库的 MySQL 租户。
注意:建议升级DBeaver版本到最新版(例如目前最新版24.3.5),较低版本没有OceanBase选项,需要下载驱动连接
3.1 新建连接
可以单击文件下方的连接符进入到选择数据库页面
这里使用上述创建的账号,密码。当 连接测试 弹窗中显示 已连接,表示可成功连接,单击 确定 后,单击 完成 即可连接到 OceanBase 数据库。
3.2 创建表
CREATE TABLE user1(
id bigint NOT NULL AUTO_INCREMENT COMMENT "主键id",
name varchar(64) NOT NULL COMMENT "姓名",
age int NOT NULL COMMENT "年龄",
enable_flag TINYINT COMMENT "是否可用(10-可用,20-删除)"
)
3.3 插入数据
INSERT INTO user1(name, age, enable_flag)
values('技海拾贝',39, 10),
('张三', 51, 20),
('李四',27, 10);
3.4 查询数据
SELECT *
FROM
user1
WHERE
enable_flag =20;
OceanBase 以原生分布式架构重塑数据库效能边界,开源生态与金融级稳定性使其成为企业数字化转型的利器。通过本文,您已解锁 OceanBase 的基础操作,而其真正的价值在于应对海量数据、高并发场景的无限潜力——无论是弹性扩缩容、HTAP 混合负载,还是跨地域多活,皆为业务增长提供坚实底座。
如果你对 OceanBase 以及分布式数据库有更深入的兴趣,欢迎继续关注我们的后续文章,我们将深入探讨其高级功能与实际应用场景。
更多推荐
所有评论(0)