OceanBase数据库实战:Windows Docker摆设与DBeaver无缝对接

打印 上一主题 下一主题

主题 1030|帖子 1030|积分 3090

一、媒介

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


在运行界面,执行如下下令,拉取镜像
  1. docker pull oceanbase/oceanbase-ce
复制代码


拉取后,在Docker Desktop可查看oceanbase镜像

备注:假如拉取失败,大概镜像源失效。可私信(公众号:技海拾贝),获取最新可用镜像源

2.3 启动单节点OceanBase数据库实例

运行以下下令(这里本次操作选择mini 独立实例),启动 OceanBase 数据库的实例:
  1. docker run -p 2881:2881 --name oceanbase-ce -e MINI_MODE=1 -d oceanbase/oceanbase-ce
复制代码
  1. 根据当前容器部署最大规格的实例
  2. docker run -p 2881:2881 --name oceanbase-ce -e MINI_MODE=0 -d oceanbase/oceanbase-ce
  3. 部署 mini 的独立实例
  4. docker run -p 2881:2881 --name oceanbase-ce -e MINI_MODE=1 -d oceanbase/oceanbase-ce
复制代码




启动预计需要 2-3 分钟。执行以下下令,假如返回 boot success!​,则启动成功。
查看日志
  1. docker logs oceanbase-ce
复制代码




2.4 连接数据库实例

oceanbase-ce 镜像安装了 OBD(OceanBase Deployer,OceanBase 安装摆设工具)和 OBClient(OceanBase 下令行客户端)。您可选择进入容器,利用 OBD 下令管理和 OBClient 客户端连接实例,也可利用宿主机本地 OBClient 或 MySQL 客户端连接到 OceanBase 数据库实例。

在 OceanBase 的 Docker 容器中还自带了常用的一些工具,在摆设完之后可以直接用来做一些验证。
  1. #切换终端到docker容器
  2. [root@rac04 ~]# docker exec -it oceanbase-ce bash
  3. #检查集群状态
  4. [root@61d0ccd3ea95 /]# obd cluster list
  5. +------------------------------------------------------------+
  6. |                        Cluster List                        |
  7. +-----------+------------------------------+-----------------+
  8. | Name      | Configuration Path           | Status (Cached) |
  9. +-----------+------------------------------+-----------------+
  10. | obcluster | /root/.obd/cluster/obcluster | running         |
复制代码

1.进入 Docker 容器
  1. docker exec -it oceanbase-ce bash
复制代码


通过DeskTop进入也可以


2.查看集群详情
  1. #查看集群列表
  2. obd cluster list
  3. #查看 obcluster 集群详情
  4. obd cluster display obcluster
复制代码
  1. obd cluster list
复制代码





3.连接数据库

利用以下下令可以利用 sys 租户连接到 OceanBase 数据库,连接数据库,默认root密码为空
  1. obclient -h127.0.0.1 -uroot@sys -A -Doceanbase -P2881 -p
复制代码



4.执行sql语句
  1. show databases;
复制代码


5.创建用户及密码


  • 创建用户 :在源端业务租户下创建用户,用于数据迁移或数据同步。对于 OceanBase 数据库 MySQL 租户,利用以下下令:
    1. CREATE USER 'user_name' IDENTIFIED BY 'password';
    复制代码
    对于 OceanBase 数据库 Oracle 租户,利用以下下令:
    1. CREATE USER user_name IDENTIFIED BY password;
    复制代码
  • 为用户授权 :通过 GRANT​ 语句为创建的数据库用户授权,例如:
    1. GRANT SELECT ON db_name.* TO user_name;
    复制代码
    详细的授权语句和权限范围根据实际需求确定。

假设您有一个用户 test_user​,希望授予其所有数据库的所有权限,可以执行以下下令:
sql复制
  1. GRANT ALL ON *.* TO 'test_user'@'%';
复制代码


  1. CREATE USER 'zhangsan' IDENTIFIED BY 'td98761n'
复制代码
  1. 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 创建表
  1. CREATE TABLE user1(
  2.         id bigint NOT NULL AUTO_INCREMENT COMMENT "主键id",
  3.         name varchar(64) NOT NULL COMMENT "姓名",
  4.         age int NOT NULL COMMENT "年龄",
  5.         enable_flag TINYINT COMMENT "是否可用(10-可用,20-删除)"
  6. )
复制代码



3.3 插入数据
  1. INSERT INTO user1(name, age, enable_flag)
  2. values('技海拾贝',39, 10),
  3.           ('张三', 51, 20),
  4.           ('李四',27, 10);
复制代码




3.4 查询数据
  1. SELECT *
  2. FROM
  3.         user1
  4. WHERE
  5.         enable_flag =20;
复制代码



OceanBase 以原生分布式架构重塑数据库效能边界,开源生态与金融级稳固性使其成为企业数字化转型的利器。通过本文,您已解锁 OceanBase 的底子操作,而其真正的代价在于应对海量数据、高并发场景的无穷潜力——无论是弹性扩缩容、HTAP 混合负载,还是跨地区多活,皆为业务增长提供坚固底座。
假如你对 OceanBase 以及分布式数据库有更深入的兴趣,欢迎继续关注我们的后续文章,我们将深入探究其高级功能与实际应用场景。

本文由博客一文多发平台 OpenWrite 发布!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户云卷云舒

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表