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

一、前言

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 *
FROMuser1
WHEREenable_flag =20;

image

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

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

3ec794dacde34583aafafe15b1490012

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

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

相关文章

在 HuggingFace 中使用 SSH 进行下载数据集和模型

SSH 是一种 安全通讯的协议,我们通过配置 SSH 的密钥 来在 Git 上实现 Huggingface 模型的命令行下载。 参考网址:https://huggingface.co/docs/hub/security-git-ssh 点击自己的头像,点击 Add SSH key 在 Windows 上,我们实现已…

.NET Core MVC IHttpActionResult 设置Headers

最近碰到调用我的方法要求返回一个代码值,但是要求是不放在返回实体里,而是放在返回的Headers上 本来返回我是直接用 return Json(res) 这种封装的方法特别简单,但是没有发现设置headers的地方 查询过之后不得已换了个返回 //原来方式 //…

Linux-----进程间通信

一、按通信范围分类 同一主机进程通信 传统IPC方式: 管道(无名管道、有名管道)信号(Signal) System V IPC: 共享内存(效率最高)消息队列信号量 POSIX IPC(较新标准&#…

Ant Design按钮样式深度适配:实现<Button>与<a>标签颜色完美同步

Ant Design按钮样式深度适配&#xff1a;实现与标签颜色完美同步 问题现象诊断 组件结构原型 <Button type"link" disabled{disabled}><a href"...">下载</a> </Button>样式冲突表现 状态按钮颜色链接颜色视觉问题启用态Ant蓝…

使用Python爬虫获取淘宝商品详情:API返回值说明与案例指南

在电商数据分析和运营中&#xff0c;获取淘宝商品详情是常见的需求。淘宝开放平台提供了丰富的API接口&#xff0c;允许开发者通过合法的方式获取商品信息。本文将详细介绍如何使用Python编写爬虫&#xff0c;通过淘宝API获取商品详情&#xff0c;并解析API返回值的含义和结构。…

并发 -- 无锁算法与结构

文章目录 什么是无锁算法什么是原子变量什么是CAS操作Compare-And-Swap Weak在哪些情况下会失败举例说明无锁结构无锁结构的问题 什么是无锁算法 无锁算法&#xff08;Lock-Free Algorithm&#xff09;是一种并发编程技术&#xff0c;旨在实现多线程环境下的高效数据共享&…

考研/保研复试英语问答题库(华工建院)

华南理工大学建筑学院保研/考研 英语复试题库&#xff0c;由华工保研er和学硕笔试第一同学一起整理&#xff0c;覆盖面广&#xff0c;助力考研/保研上岸&#xff01;需要&#x1f447;载可到文章末尾见小&#x1f360;。 以下是主要内容&#xff1a; Part0 复试英语的方法论 Pa…

岳阳市美术馆预约平台(小程序论文源码调试讲解)

第4章 系统设计 一个成功设计的系统在内容上必定是丰富的&#xff0c;在系统外观或系统功能上必定是对用户友好的。所以为了提升系统的价值&#xff0c;吸引更多的访问者访问系统&#xff0c;以及让来访用户可以花费更多时间停留在系统上&#xff0c;则表明该系统设计得比较专…

Python游戏编程之赛车游戏6-3

1 “敌人”汽车类的创建 在创建玩家汽车类之后&#xff0c;接下来创建“敌人”汽车类。“敌人”汽车类与玩家类一样&#xff0c;也是包含两个方法&#xff0c;一个是__init__()&#xff0c;另一个是move()。 1.1 __init__()方法 “敌人”汽车类的__init__()方法代码如图1所示…

TCP/UDP调试工具推荐:Socket通信图解教程

TCP/UDP调试工具推荐&#xff1a;Socket通信图解教程 一、引言二、串口调试流程三、下载链接 SocketTool 调试助手是一款旨在协助程序员和网络管理员进行TCP和UDP协议调试的网络通信工具。TCP作为一种面向连接、可靠的协议&#xff0c;具有诸如连接管理、数据分片与重组、流量和…

神经网络 - 神经元

人工神经元(Artificial Neuron)&#xff0c;简称神经元(Neuron)&#xff0c;是构成神经网络的基本单元&#xff0c;其主要是模拟生物神经元的结构和特性&#xff0c;接收一组输入信号并产生输出。 生物学家在 20 世纪初就发现了生物神经元的结构。一个生物神经元通常具有多个树…

蓝桥杯备考:贪心算法之矩阵消除游戏

这道题是牛客上的一道题&#xff0c;它呢和我们之前的排座位游戏非常之相似&#xff0c;但是&#xff0c;排座位问题选择行和列是不会改变元素的值的&#xff0c;这道题呢每每选一行都会把这行或者这列清零&#xff0c;所以我们的策略就是先用二进制把选择所有行的情况全部枚举…

DeepSeek系统架构的逐层分类拆解分析,从底层基础设施到用户端分发全链路

一、底层基础设施层 1. 硬件服务器集群 算力单元&#xff1a; GPU集群&#xff1a;基于NVIDIA H800/H100 GPU构建&#xff0c;单集群规模超10,000卡&#xff0c;采用NVLink全互联架构实现低延迟通信。国产化支持&#xff1a;适配海光DCU、寒武纪MLU等国产芯片&#xff0c;通过…

ktransformers 上的 DeepSeek-R1 671B open-webui

ktransformers 上的 DeepSeek-R1 671B open-webui 一、下载GGUF模型1. 创建目录2. 魔塔下载 DeepSeek-R1-Q4_K_M3. 安装显卡驱动和cuda4. 显卡 NVIDIA GeForce RTX 4090 二、安装ktransformers1. 安装依赖2. 安装uv工具链3. 下载源码4. 创建python虚拟环境 三、编译ktransforme…

smolagents学习笔记系列(五)Tools-in-depth-guide

这篇文章锁定官网教程中的 Tools-in-depth-guide 章节&#xff0c;主要介绍了如何详细构造自己的Tools&#xff0c;在之前的博文 smolagents学习笔记系列&#xff08;二&#xff09;Agents - Guided tour 中我初步介绍了下如何将一个函数或一个类声明成 smolagents 的工具&…

形式化数学编程在AI医疗中的探索路径分析

一、引言 1.1 研究背景与意义 在数字化时代,形式化数学编程和 AI 形式化医疗作为前沿领域,正逐渐改变着我们的生活和医疗模式。形式化数学编程是一种运用数学逻辑和严格的形式化语言来描述和验证程序的技术,它通过数学的精确性和逻辑性,确保程序的正确性和可靠性。在软件…

C#初级教程(3)——变量与表达式:从基础到实践

一、为什么使用变量 计算机程序本质上是对数据的操作&#xff0c;数字、文字、图片等在计算机中都属于数据。而变量&#xff0c;就是数据在计算机内存中的 “栖息地”。我们可以把变量想象成一个个小盒子&#xff0c;这些盒子能存放各种数据&#xff0c;需要时还能随时取出。 二…

【深度学习神经网络学习笔记(三)】向量化编程

向量化编程 向量化编程前言1、向量化编程2、向量化优势3、正向传播和反向传播 向量化编程 前言 向量化编程是一种利用专门的指令集或并行算法来提高数据处理效率的技术&#xff0c;尤其在科学计算、数据分析和机器学习领域中非常常见。它允许通过一次操作处理整个数组或矩阵的…

海康威视摄像头RTSP使用nginx推流到服务器直播教程

思路&#xff1a; 之前2020年在本科的时候&#xff0c;由于项目的需求需要将海康威视的摄像头使用推流服务器到网页进行直播。这里将自己半个月琢磨出来的步骤给大家发一些。切勿转载&#xff01;&#xff01;&#xff01;&#xff01; 使用网络摄像头中的rtsp协议---------通…

鸿蒙开发深入浅出03(封装通用LazyForEach实现懒加载)

鸿蒙开发深入浅出03&#xff08;封装通用LazyForEach实现懒加载&#xff09; 1、效果展示2、ets/models/BasicDataSource.ets3、ets/models/HomeData.ets4、ets/api/home.ets5、ets/pages/Home.ets6、ets/views/Home/SwiperLayout.ets7、后端代码 1、效果展示 2、ets/models/Ba…