OceanBase数据库实战:Windows Docker部署与DBeaver无缝对接

news2025/2/27 19:10:22

一、前言

OceanBase 是一款高性能、高可扩展的分布式数据库,适用于大规模数据处理和企业级应用。

随着大数据和云计算的普及,OceanBase 在企业数字化转型中扮演着重要角色。学习 OceanBase 可以帮助开发者掌握先进的分布式数据库技术,提升数据管理能力。使用 Docker 安装 OceanBase 简化了部署流程,让用户无需复杂的环境配置即可快速启动,适合开发者进行实验和学习。

本文将介绍如何在 Docker 上安装 OceanBase,使用 DBeaver 连接数据库,创建库表并查询数据。

image

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

image

在运行界面,执行如下命令,拉取镜像

docker pull oceanbase/oceanbase-ce

image

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

image

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

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

image

image

启动预计需要 2-3 分钟。执行以下命令,如果返回 boot success!​,则启动成功。

查看日志

docker logs oceanbase-ce

image

image

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

image

通过DeskTop进入也可以

image

2.查看集群详情

#查看集群列表
obd cluster list
#查看 obcluster 集群详情
obd cluster display obcluster
obd cluster list

image

image

3.连接数据库

使用以下命令可以使用 sys 租户连接到 OceanBase 数据库,连接数据库,默认root密码为空

obclient -h127.0.0.1 -uroot@sys -A -Doceanbase -P2881 -p

image

4.执行sql语句

show databases;

image

5.创建用户及密码

  1. 创建用户 :在源端业务租户下创建用户,用于数据迁移或数据同步。对于 OceanBase 数据库 MySQL 租户,使用以下命令:

    CREATE USER 'user_name' IDENTIFIED BY 'password';
    

    对于 OceanBase 数据库 Oracle 租户,使用以下命令:

    CREATE USER user_name IDENTIFIED BY password;
    
  2. 为用户授权 :通过 GRANT​ 语句为创建的数据库用户授权,例如:

    GRANT SELECT ON db_name.* TO user_name;
    

    具体的授权语句和权限范围根据实际需求确定。

假设您有一个用户 test_user​,希望授予其所有数据库的所有权限,可以执行以下命令:

sql复制

GRANT ALL ON *.* TO 'test_user'@'%';

image

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 新建连接

可以单击文件下方的连接符image进入到选择数据库页面

image

image

这里使用上述创建的账号,密码。当 连接测试 弹窗中显示 已连接,表示可成功连接,单击 确定 后,单击 完成 即可连接到 OceanBase 数据库。

image

image

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-删除)" 
)

image

3.3 插入数据

INSERT INTO user1(name, age, enable_flag) 
values('技海拾贝',39, 10),
	  ('张三', 51, 20),
	  ('李四',27, 10);

image

image

3.4 查询数据

SELECT *
FROM
	user1
WHERE
	enable_flag =20;

image

OceanBase 以原生分布式架构重塑数据库效能边界,开源生态与金融级稳定性使其成为企业数字化转型的利器。通过本文,您已解锁 OceanBase 的基础操作,而其真正的价值在于应对海量数据、高并发场景的无限潜力——无论是弹性扩缩容、HTAP 混合负载,还是跨地域多活,皆为业务增长提供坚实底座。

如果你对 OceanBase 以及分布式数据库有更深入的兴趣,欢迎继续关注我们的后续文章,我们将深入探讨其高级功能与实际应用场景。

3ec794dacde34583aafafe15b1490012

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2307015.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

技术速递|.NET 9 网络优化

作者:Mňa,Natalia,Anton 排版:Alan Wang 秉承我们的传统,我们很高兴与您分享这篇博客文章,以介绍新的 .NET 版本中网络领域相关的最新动态和最有趣的变化。今年,我们带来了 HTTP 领域的改变、新…

Tag标签的使用

一个非常适合运用在vue项目中的组件:Tag标签。 目录 一、准备工作 1、安装element-plus库 2、配置element-plus库 二、Tag标签入门 1、打开element官网,搜索tag标签 2、体验Tag标签的基础用法 三、Tag标签进阶训练1 1、定义一个数组,…

Linux:(3)

一:Linux和Linux互传(压缩包) scp:Linux scp 命令用于 Linux 之间复制文件和目录。 scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。 scp 是加密的,rcp 是不加密的,scp 是…

HarmonyOS 5.0应用开发——鸿蒙接入高德地图实现POI搜索

【高心星出品】 文章目录 鸿蒙接入高德地图实现POI搜索运行结果:准备地图编写ArkUI布局来加载HTML地图 鸿蒙接入高德地图实现POI搜索 在当今数字化时代,地图应用已成为移动设备中不可或缺的一部分。随着鸿蒙系统的日益普及,如何在鸿蒙应用中…

计算机视觉(opencv-python)入门之常见图像处理基本操作(待补充)

图像预处理是计算机视觉任务中的关键步骤,它通过对原始图像进行处理,以提高后续图像分析、特征提取和识别的准确性。 示例图片 目录 常见图像预处理方法 灰度化处理 法一 法二 说明 切片截取部分图像数据 cv2.cvtColor() 颜色空间转换 cv2.spli…

采用DDNS-GO与cloudflare实现双域名同时访问NAS

这个标题其实解释的还不够清楚,本人是小白,但是买了群晖的NAS后自己瞎折腾了一下,遇到了如下的问题: 1、家里是移动宽带,没有公网IP,因此Ipv4无法使用,IPV6可以正常使用。 2、办公室场地采用的…

w803|联盛德|WM IoT SDK2.X测试|pinout|(2):w803开发板简介

概述 W803-Pico是一款基于联盛德W803芯片为主控的开发板,支持IEEE802.11 b/g/n Wi-Fi,以及BT/BLE4.2协议蓝牙。芯片内置高性能32位处理器,主频高达240MHz。内置2MB Flash以及288KB RAM。硬件采用DIP封装,PCB板载天线,…

【UCB CS 61B SP24】Lecture 16 - Data Structures 2: ADTs, BSTs学习笔记

本文首先介绍了抽象数据类型与树的概念,接着重点讲解二叉搜索树的定义与操作方式,并用 Java 实现一个标准的二叉搜索树结构。 1. 抽象数据类型 首先引入一个概念叫做抽象数据类型(Abstract Data Type,ADT)&#xff0…

Java 大视界 -- Java 大数据在智能物流路径规划与车辆调度中的创新应用(102)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

HarmonyOS Design 介绍

HarmonyOS Design 介绍 文章目录 HarmonyOS Design 介绍一、HarmonyOS Design 是什么?1. 设计系统(Design System)2. UI 框架的支持3. 设计工具和资源4. 开发指南5. 与其他设计系统的对比总结 二、HarmonyOS Design 特点 | 应用场景1. Harmon…

【算法系列】快速排序详解

文章目录 快速排序的多种实现方式1. 基本快速排序(Lomuto 分区方案)1.1 基本原理1.2 步骤1.3 Java 实现示例 2. Hoare 分区方案2.1 基本原理2.2 步骤2.3 Java 实现示例 3. 三数取中法3.1 基本原理3.2 步骤3.3 Java 实现示例 4. 尾递归优化4.1 基本原理4.…

电脑键盘知识

1、键盘四大功能区 1. 功能区 2. 主要信息输入区 3. 编辑区 4. 数字键盘区 笔记本电脑键盘的功能区,使用前需先按Fn键 1.1、功能区 ESC:退出 F1:显示帮助信息 F2:重命名 F4:重复上一步操作 F5:刷新网页 …

Grok 3 vs. DeepSeek vs. ChatGPT:2025终极AI对决

2025 年,AI 领域的竞争愈发激烈,三个重量级选手争夺霸主地位:Grok 3(由 xAI 开发)、DeepSeek(国内 AI 初创公司)和 ChatGPT(OpenAI 产品)。每个模型都有自己独特的优势,无论是在深度思考、速度、编程辅助、创意输出,还是在成本控制方面,都展现出强大的实力。但究竟…

【MySQL篇】数据库基础

目录 1,什么是数据库? 2,主流数据库 3,MySQL介绍 1,MySQL架构 2,SQL分类 3,MySQL存储引擎 1,什么是数据库? 数据库(Database,简称DB&#xf…

基于SpringBoot+mybatisplus+vueJS的Cosplay文化展示与交流社区设计与实现

博主介绍:硕士研究生,专注于信息化技术领域开发与管理,会使用java、标准c/c等开发语言,以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年,拥有近12年的管理工作经验,拥有较丰富的技术架…

组件传递props校验

注意&#xff1a;prop是只读的&#xff01;不可以修改父组件的数据。 可以检验传过来的内容是否类型没问题。 App.vue <template><div><!-- <parentDemo/> --><componentA/></div></template> <script> import ComponentA …

数据结构与算法-图论-最短路-拓展运用

选择最佳路线 分析&#xff1a; 这是一道图论中的最短路径问题&#xff0c;目标是在给定的公交网络中&#xff0c;找到从琪琪家附近的车站出发&#xff0c;到她朋友家附近车站&#xff08;编号为 s &#xff09;的最短时间。以下是对该问题的详细分析&#xff1a; 问题关键信息…

0—QT ui界面一览

2025.2.26&#xff0c;感谢gpt4 1.控件盒子 1. Layouts&#xff08;布局&#xff09; 布局控件用于组织界面上的控件&#xff0c;确保它们的位置和排列方式合理。 Vertical Layout&#xff08;垂直布局&#xff09; &#xff1a;将控件按垂直方向排列。 建议&#xff1a;适…

纷析云:赋能企业财务数字化转型的开源解决方案

在企业数字化转型的浪潮中&#xff0c;财务管理的高效与安全成为关键。纷析云凭借其开源、安全、灵活的财务软件解决方案&#xff0c;为企业提供了一条理想的转型路径。 一、开源的力量&#xff1a;自主、安全、高效 纷析云的核心优势在于其100%开源的财务软件源码。这意味着…

P8716 [蓝桥杯 2020 省 AB2] 回文日期

1 题目说明 2 题目分析 暴力不会超时&#xff0c;O(n)的时间复杂度&#xff0c; < 1 0 8 <10^8 <108。分析见代码&#xff1a; #include<iostream> #include<string> using namespace std;int m[13]{0,31,28,31,30,31,30,31,31,30,31,30,31};// 判断日期…