在 Mac 和 Windows 系统中快速部署 OceanBase

OceanBase 是一款分布式数据库,具备出色的性能和高扩展性,可以为企业用户构建稳定可靠、灵活扩展性能的数据库服务。本文以开发者们普遍熟悉的Windows 或 Mac 环境为例,介绍如何快速上手并体验OceanBase。

一、环境准备

1. 硬件准备

OceanBase 从 4.0 版本开始进行了架构的升级,进一步降低了对资源的占用,按照最新的文档要求,最少只需要2核10GB以上的资源,因为磁盘会进行预分配,剩余的可用磁盘空间要保证在内存的6倍以上,以目前一般的开发机来说,比较容易达到最低的资源要求。

2. 系统要求

OceanBase 目前只提供了 Linux 安装包,可以运行在大部分的服务器环境,但是作为开发者,常用的开发机一般是 Windows 系统或者 Mac 系统,这种情况可以有两种选择,安装虚拟机,虚拟出一个 Linux 系统,或者通过 Docker 拉起一个 Linux 系统的容器,因为 Docker 对于系统的资源占用上相对较少,本文就介绍 Docker 的方式。

不同操作系统安装 Docker 的方法,可以参考以下链接:

    • Mac:https://docs.docker.com/desktop/install/mac-install/
    • Windows:https://docs.docker.com/desktop/install/windows-install/
    • Linux:https://docs.docker.com/desktop/install/linux-install/

以 Mac 系统为例,安装的 Docker 程序带有图形化的管理页面,Windows 的程序也是类似的。

首先要确保给 Docker 分配了大于前面提到的最小要求的资源,可以参考下方的视频:

安装 Docker 的方法

Docker 程序启动之后,在命令行中通过以下命令验证 Docker 环境可用:

docker ps -a

1678846592

命令可以正常执行,说明 Docker 环境准备成功,可以顺利的进行下一步。

二、使用 Docker 快速部署 OceanBase

Docker 环境准备好之后,就可以在主机上启动容器了,恰好 OceanBase 提供了单机版的镜像,完美适用于快速体验的场景。

1. 拉取镜像

OceanBase 的单机版镜像 oceanbase/oceanbase-ce, 按照版本以不同的 tag 划分, 最新的是 4.0.0.0 版本,latest 默认对应的是最新发布的版本,体验最新版本,可以直接使用 latest 作为 tag,或者不写 tag。

docker pull oceanbase/oceanbase-ce

1678846671

通过 Docker 命令可以查看到镜像的信息,说明镜像拉取成功。

2. 启动单节点 OceanBase 容器

OceanBase 镜像提供了两个可以设置的环境变量:

1678846688

作为快速体验的环境,可以设置 MINI_MODE 为 true 以减少资源的占用,使用以下命令拉起 oceanbase 容器。

docker run -p 2881:2881 --name oceanbase-ce -e MINI_MODE='true' -d oceanbase/oceanbase-ce

1678846731

OceanBase 启动大约需要 2 分钟左右时间,当容器日志出现 boot success! 时,说明 OceanBase 已经启动成功。

3. 动手体验 OceanBase

在 OceanBase 的 Docker 容器中还自带了常用的一些工具,在部署完之后可以直接用来做一些验证。

使用以下命令可以使用 sys 租户连接到 OceanBase 数据库:

docker exec -it oceanbase-ce ob-mysql sys

连接之后通过一些简单的查询,可以看到部署了一个单节点的集群,使用的是 127.0.0.1 作为 ip 地址,并且创建了一个名为 test 的租户。

1678846802

使用以下命令可以使用 test 租户连接到 OceanBase 数据库:

docker exec -it oceanbase-ce ob-mysql root # 使用 root 账号docker exec -it oceanbase-ce ob-mysql test # 使用 test 账号

可以看到test 租户下又创建了一个 test 用户。

1678846837

OceanBase 的镜像中还提供了sysbench工具,可以使用以下命令对 OceanBase 作 sysbench 测试:

docker exec -it oceanbase-ce obd test sysbench obcluster

1678846872

可以看到测试的一些统计结果,由于是在个人的开发电脑上,具体的性能数据仅能作为参考。

三、使用 OBD 快速部署 OceanBase

使用 Docker 方式部署 OceanBase 简单快速,但是仅提供了两个可以配置的选项,甚至连集群名都无法配置,爱折腾的各位开发者们肯定不满足于此。

这部分我们会用 OBD来部署 OceanBase, 并且做一些自定义的修改,更能增加一些互动的感觉,OBD 是 OceanBase 开源软件的安装部署工具,可以用来管理 OceanBase 所有的开源软件。

1. 系统准备

利用开发机上的 Docker 启动一个 Linux 系统的容器,通过这种方式来模拟 Linux 环境,这里我们使用 centos7 的镜像。
拉取镜像

docker pull centos:7

1678846975

启动并登录到容器环境

docker run -it --name=centos-7 --entrypoint=/bin/bash centos:7

1678847014

通过以上的步骤,现在我们已经成功的进入到了一个容器化的 Linux 环境中。

2. 准备 OBD 环境

OBD 可以直接以 rpm 包的方式安装,然后根据部署的配置,在线下载对应的 rpm 包,也可以通过 oceanbase-all-in-one 包的方式来安装,这种方式适用于网络不好的环境,会一起下载所有部署 OceanBase 需要的 rpm 包,本文以这种方式来进行安装。

安装命令很简单,只需要一条命令,就可以下载并且安装好 oceanbase-all-in-one。

bash -c "$(curl -s https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/oceanbase-all-in-one/installer.sh)"

1678847055

安装完成之后,会在屏幕上输出接下来可以使用的一些命令,第一步需要设置好环境变量,然后可以验证 OBD 命令可用。

1678847080

3. 使用 OBD 部署 OceanBase 单节点集群

OBD 提供了各种场景的配置文件样例,可以以此作为基础按照真实的环境来进行配置 。

oceanbase-all-in-one 安装完成之后,在安装路径的 conf 目录,或者 OBD 的安装目录的 example 目录下有配置文件的样例,本地单节点集群的配置样例为 mini-local-example.yaml,首先复制一份配置文件,然后将配置文件中的 mysql_port, rpc_port 分别修改为3881, 3882。

1678847118

修改后的配置危机如上图,其他配置项保持默认。

使用如下命令进行部署:

obd cluster deploy test -c test.yamlobd cluster start test

1678847152

启动成功,以我们自定义的mysql_port来连接,可以正常连接上集群。

4. 体验 OceanBase

使用 OBD 命令创建好集群之后,并没有默认的业务租户,需要再次调用obd创建租户的命令来创建。

obd cluster tenant create test -n obmysql --max-cpu=2 --memory-size=2G --log-disk-size=3G --max-iops=10000 --iops-weight=2 --unit-num=1 --charset=utf8

1678847197

验证使用新建的租户可以登录集群,至此,我们已经按照自定义的端口部署了一个 OceanBase 集群,创建出了可用的租户,更多的功能就可以等待大家继续去探索了。

四、总结

我们为开发者提供了多种方式来体验 OceanBase 数据库,尽量减少了对硬件资源的要求,在一般的开发机上就可以运行,无论使用的是 Windows、 Mac 或者 Linux 系统,通过容器化的方式,都可以将 OceanBase 部署起来,让 OceanBase 成为一个人人摸得到的数据库,我们目前正在开发交互式的安装方式,将进一步的优化安装体验,后面会有更多的介绍,请保持期待。

此外,也可以免费开通 OceanBase 云数据库 来进行体验,免去部署过程。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【jenkins】jenkins使用pipeline配置django项目

目录 一、部署jenkins 二、配置 2.1 获取gitee账户凭证 2.2 安装pipeline插件 三、创建一个流水线项目 四、选择创建的项目 4.1 源码设置 4.2 配置 前言:个人使用,比较简单,做个笔记,这里我使用的是gitee作为仓库 一、部署…

qt QSyntaxHighlighter详解

1、概述 QSyntaxHighlighter是Qt文本处理框架中的一个强大工具,它专门用于实现文本编辑器中的语法高亮功能。通过自定义高亮规则,QSyntaxHighlighter可以实现对代码编辑器、富文本编辑器中的关键字、注释等内容的高亮显示。这一功能对于提升代码的可读性…

macOS 设置固定IP

文章目录 以太网Wifi![请添加图片描述](https://i-blog.csdnimg.cn/direct/65546e966cae4b2fa93ec9f0f87009d8.png) 基于 macOS 15.1 以太网 Wifi

从0开始深度学习(28)——序列模型

序列模型是指一类特别设计来处理序列数据的神经网络模型。序列数据指的是数据中的每个元素都有先后顺序,比如时间序列数据(股票价格、天气变化等)、自然语言文本(句子中的单词顺序)、语音信号等。 1 统计工具 前面介绍…

SpringBoot(八)使用AES库对字符串进行加密解密

博客的文章详情页面传递参数是使用AES加密过得,如下图所示: 这个AES加密是通用的加密方式,使用同一套算法,前端和后端都可以对加密之后的字符串进行加密解密操作。 目前线上正在使用的是前端javascript进行加密操作,将加密之后的字符串再传递到后端,PHP再进行解密操作。…

JVM双亲委派与自定义类加载器

一. 类加载过程 Java Application运行前需要将编译生成的字节码文件加载到JVM中,JVM类加载过程如下: 1. 加载 加载阶段是类加载的第一步,在加载阶段JVM会查找并加载类的字节码文件,这个过程通常从类路径(Classpath…

多媒体信息检索

文章目录 一、绪论二、文本检索 (Text Retrieval)(一) 索引1.倒排索引2.TF-IDF (二) 信息检索模型 (IR模型,Information Retrieval)1.布尔模型 (Boolean模型)(1)扩展的布尔模型 (两个词)(2)P-Norm模型 (多个词) 2.向量空间模型 (Vector Space Model,VSM)…

Python | Leetcode Python题解之第559题N叉树的最大深度

题目: 题解: class Solution:def maxDepth(self, root: Node) -> int:if root is None:return 0ans 0queue [root]while queue:queue [child for node in queue for child in node.children]ans 1return ans

【Pikachu】SQL-Inject实战

困难、痛苦、挫折总是接踵而至,这正是世间的常理。要是输了,就只能说明我不过是如此程度的男人。 1.Sql Inject(SQL注入)概述 Sql Inject(SQL注入)概述 在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入…

VSCode中python插件安装后无法调试

问题 VSCode中python插件安装后无法调试,如下,点击调试,VScode中不报错,也没有调试 解决方法 1、查看配置 打开所在路径 2、拷贝 将整个文件夹拷贝到vscode默认路径下 3、问题解决 再次调试,可以正常使用了…

官方压测工具memtier-benchmark压测redis

1 概述 memtier_benchmark是一种高吞吐量的性能基准测试工具,主要用于Redis和Memcached。它是 Redis官方开发团队开发的,旨在生成各种流量模式,以便测试和优化以上两个数据库的性能。 memtier_benchmark的一些关键特点如下: 多…

海外云手机在出海业务中的优势有哪些?

随着互联网技术的快速发展,海外云手机已在出海电商、海外媒体推广和游戏行业都拥有广泛的应用。对于国内的出海电商企业来说,短视频引流和社交平台推广是带来有效流量的重要手段。借助云手机,企业能够更高效地在新兴社交平台上推广产品和品牌…

kafka 的一些问题,夺命15连问后续

16、kafka是如何做到高效读写 因为kafka本身就是分布式集群,可以采用分区技术,并行度高 读取数据可以采用稀疏索引,可以快速定位要消费的数据(mysql中索引多了以后,写入速度就慢了) 可以顺序写磁盘&#…

Vue Cli 脚手架目录文件介绍

小试牛刀 //vetur高亮; vuetab 快速生成 <template><div class"box">我是个盒子<button click"fn">按钮</button></div> </template><script> export default {methods:{fn(){alert("Hello Vue")}} …

基于springboot的家装平台设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

Docker平台搭建方法

Docker平台搭建方法 1.1在VMware中创建两个虚拟机&#xff0c;只需要1个网卡&#xff0c;连接192.168.200.0网络。 虚拟机分配2个CPU,2G内存&#xff0c;60G硬盘&#xff0c;主机名分别为server和client,IP地址分别为192.168.200.137和192.168.200.138。server节点还兼做regis…

cache(二)直接缓存映射

在知乎发现一份不错得学习资料 请教CPU的cache中关于line,block,index等的理解&#xff1f; PPT 地址 https%3A//cs.slu.edu/%7Efritts/CSCI224_S15/schedule/chap6-cache-memory.pptx 课程主页 https://cs.slu.edu/~fritts/CSCI224_S15/schedule/ 0. 缓存定义 这张图展示了缓…

Zookeeper的安装与使用

一、简介 1.1、概念 ZooKeeper 是一个开源的分布式协调服务&#xff0c;主要用于解决分布式系统中的数据一致性问题。它提供了一种可靠的机制来管理和协调分布式系统的各个节点。ZooKeeper 的设计目标是简化分布式应用的开发&#xff0c;提供简单易用的接口和高性能、高稳定性…

SQLI LABS | Less-41 GET-BLIND Based-Intiger-Stacked

关注这个靶场的其它相关笔记&#xff1a;SQLI LABS —— 靶场笔记合集-CSDN博客 0x01&#xff1a;过关流程 输入下面的链接进入靶场&#xff08;如果你的地址和我不一样&#xff0c;按照你本地的环境来&#xff09;&#xff1a; http://localhost/sqli-labs/Less-41/ 本关是堆…

SpringCloud 微服务消息队列灰度方案 (RocketMQ 4.x)

目录 背景遇到的问题 RocketMQ 基础基础消息模型扩展后的消息模型部署模型相关概念点 方案对比影子Topic的方案Tag的方案UserProperty的方案影子Group的方案灰度分区的方案方案对比 灰度分区方案设计适配只有部分灰度的情况所做的功能扩展消费者&#xff08;无灰度&#xff09;…