OceanBase 数据库入门知识
🙈作者简介:练习时长两年半的Java up主
🙉个人主页:程序员老茶
🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎
📚系列专栏:Java全栈,计算机系列(火速更新中)
💭 格言:种一棵树最好的时间是十年前,其次是现在
🏡动动小手,点个关注不迷路,感谢宝子们一键三连
目录
- 课程名:OceanBase
- 内容/作用:知识点/设计/实验/作业/练习
- 学习:OceanBase 数据库入门知识
- 1. OceanBase 数据库简介
- 2. OceanBase 数据库的优势
- 2.1 高性能
- 2.2 高可用性
- 2.3 高扩展性
- 3. OceanBase 数据库的核心组件
- 3.1 Replication Server
- 3.2 Data Nodes
- 3.3 Coordinator Server
- 4. OceanBase 数据库的使用方式
- 4.1 SQLShell(SQL*Plus)工具
- 4.2 Java API
- 5. 下载 OceanBase 数据库
- 6. 安装 OceanBase 数据库
- 6.1 安装前准备
- 6.2 安装步骤
- 7. 使用 OceanBase 数据库
- 7.1 连接 OceanBase 数据库
- 7.2 SQL 查询示例
- 8. OceanBase 数据库的增删查改实现
- 8.1 增加数据
- 8.2 删除数据
- 8.3 查询数据
- 8.4 更新数据
- 9. 具体知识点
- 9.1 SQL 语法
- 9.2 事务管理
- 9.3 连接池
- 10、总结
课程名:OceanBase
内容/作用:知识点/设计/实验/作业/练习
学习:OceanBase 数据库入门知识
1. OceanBase 数据库简介
OceanBase 是一款阿里巴巴集团开发的高性能、高可用、高扩展性的分布式关系型数据库。它采用了分布式架构,支持大规模数据存储和高并发访问,能够满足企业级应用的需求。本文将介绍如何下载、安装和使用 OceanBase 数据库,并提供详细的解释和代码示例。
2. OceanBase 数据库的优势
2.1 高性能
OceanBase 数据库采用了多种优化技术,如读写分离、分布式事务、内存表等,能够大幅提高数据库的读写性能。同时,它还支持多种存储引擎,包括关系型引擎、非关系型引擎等,能够根据不同的业务需求选择最合适的存储引擎。
2.2 高可用性
OceanBase 数据库采用了多副本复制的方式,能够保证数据的可靠性和一致性。同时,它还支持故障转移功能,当某个节点出现故障时,系统会自动将请求转发到其他正常的节点上,从而保证系统的高可用性。
2.3 高扩展性
OceanBase 数据库采用了分布式架构,支持水平扩展和垂直扩展。当系统负载增加时,可以通过添加更多的节点来扩展系统的性能;当单个节点的负载过高时,可以通过增加单个节点的硬件配置来提高其性能。
3. OceanBase 数据库的核心组件
3.1 Replication Server
OceanBase 数据库的每个节点都运行着一个 Replication Server,用于管理数据的副本。Replication Server 会将数据的变化记录在日志文件中,并将这些日志文件发送给其他的 Replication Server,从而实现数据的同步。
3.2 Data Nodes
Data Nodes 是 OceanBase 数据库的存储节点,负责存储和管理数据。每个 Data Node 都有一个本地磁盘和一个内存缓存区,用于加速数据的读写操作。Data Nodes 还可以通过网络与其他节点进行通信,以实现数据的共享和同步。
3.3 Coordinator Server
Coordinator Server 是 OceanBase 数据库的管理节点,负责协调和管理整个分布式系统的运行。它不仅会接收来自客户端的请求,还会向 Data Nodes 发送指令,以实现对数据的管理和调度。
4. OceanBase 数据库的使用方式
4.1 SQLShell(SQL*Plus)工具
使用 OceanBase 数据库需要先安装 SQLShell(SQL*Plus)工具。SQLShell 是一个命令行工具,可以连接到 OceanBase 数据库并执行 SQL 查询和更新操作。用户可以使用 SQLShell 来创建和管理数据库对象、执行 SQL 语句以及查看数据库的状态信息等。
4.2 Java API
OceanBase 还提供了 Java API,使得开发者可以使用 Java 语言来连接和操作 OceanBase 数据库。Java API 包括多个模块和类库,涵盖了连接池、事务管理、数据操作等多个方面,可以满足不同场景下的开发需求。
下面是一个使用 Java API 连接 OceanBase 数据库的示例代码:
import com.oceanbase.jdbc.*;public class OceanBaseDemo {public static void main(String[] args) throws Exception {// 加载 OceanBase 驱动Class.forName("com.oceanbase.jdbc.Driver");// 获取连接字符串String url = "jdbc:oceanbase://localhost:8888/test?charset=utf8";// 获取连接对象Connection conn = DriverManager.getConnection(url);// 创建 SQLSession 对象SQLSession session = conn.createSQLSession();// 执行 SQL 查询ResultSet rs = session.executeQuery("SELECT * FROM user");// 遍历结果集while (rs.next()) {System.out.println(rs.getString("name") + " " + rs.getInt("age"));}// 关闭连接rs.close();conn.close();}
}
以上代码中,首先通过 Class.forName()
方法加载 OceanBase 驱动,然后使用 DriverManager.getConnection()
方法获取连接对象。接着创建一个 SQLSession
对象,并通过该对象执行 SQL 查询。最后遍历结果集并输出查询结果。
5. 下载 OceanBase 数据库
首先,访问 OceanBase 官方网站(https://www.oceanbase.com/)下载最新版本的 OceanBase 数据库。根据您的操作系统选择相应的版本。
以 Windows 为例,下载完成后,您将得到一个压缩包,解压后即可得到 OceanBase 数据库的安装文件。
6. 安装 OceanBase 数据库
6.1 安装前准备
在安装 OceanBase 数据库之前,请确保您的计算机满足以下要求:
- 操作系统:Windows、Linux 或 macOS
- CPU:支持 Intel 或 AMD 处理器
- 内存:至少 4GB RAM
- 硬盘空间:至少 50GB 可用空间
6.2 安装步骤
以 Windows 为例,双击解压后的安装文件,按照提示进行安装。以下是详细步骤:
- 打开解压后的文件夹,双击 “setup.exe” 文件启动安装程序。
- 在 “OceanBase Installer” 界面,点击 “Next” 按钮。
- 阅读并接受许可协议,然后点击 “Next”。
- 选择安装类型,建议选择 “Full”,以完全安装 OceanBase 数据库。点击 “Next”。
- 选择安装路径,建议使用默认路径。点击 “Next”。
- 配置 OceanBase 数据库的端口号,默认为 23000。点击 “Next”。
- 配置 OceanBase 数据库的管理员账户和密码,以及数据库名称。点击 “Next”。
- 等待安装进度条完成,然后点击 “Finish” 完成安装。
至此,OceanBase 数据库已经成功安装在您的计算机上。
7. 使用 OceanBase 数据库
7.1 连接 OceanBase 数据库
要连接到 OceanBase 数据库,您需要使用 SQLShell(SQL*Plus)工具。请按照以下步骤操作:
- 打开命令提示符(Windows)或终端(Linux / macOS)。
- 输入以下命令以启动 SQLShell:
sqlplus /nolog
- 输入您的 OceanBase 数据库管理员账户和密码,然后按回车键。如果连接成功,您将看到类似以下的输出:
Connected to an idle instance.
Oracle Net Services Registered with the OCI library.
Version: 19.3 (16.0.4) Release Date: XXXX-XX-XX XXXX:XX:XX:XXXX
7.2 SQL 查询示例
现在您可以开始执行 SQL 查询了。以下是一些简单的示例:
- 显示所有数据库:
SHOW ALL;
- 显示当前用户的所有表:
SELECT table_name FROM all_tables;
- 创建一个新的用户(如果需要):
CREATE USER new_user IDENTIFIED BY new_password;
- 授权新用户访问某个表:
GRANT CONNECT, RESOURCE TO new_user;
- 如果需要撤销用户的权限,可以使用以下命令:
REVOKE CONNECT, RESOURCE FROM new_user;
8. OceanBase 数据库的增删查改实现
8.1 增加数据
OceanBase 数据库支持通过 SQL 语句向表中插入数据。下面是一个示例代码:
INSERT INTO user (name, age) VALUES ('Tom', 20);
以上代码将在 user
表中插入一条记录,包含 name
和 age
两个字段的值。
8.2 删除数据
OceanBase 数据库支持通过 SQL 语句从表中删除数据。下面是一个示例代码:
DELETE FROM user WHERE name = 'Tom';
以上代码将从 user
表中删除 name
为 Tom
的记录。
8.3 查询数据
OceanBase 数据库支持通过 SQL 语句查询表中的数据。下面是一个示例代码:
SELECT * FROM user;
以上代码将查询 user
表中的所有记录,并将结果输出到控制台。
8.4 更新数据
OceanBase 数据库支持通过 SQL 语句更新表中的数据。下面是一个示例代码:
UPDATE user SET age = 21 WHERE name = 'Tom';
以上代码将更新 user
表中 name
为 Tom
的记录的 age
字段值为 21
。
9. 具体知识点
9.1 SQL 语法
在 OceanBase 数据库中,SQL 语法与标准 SQL 语法基本一致,但也有一些差异。例如,OceanBase 数据库支持使用 VALUES
关键字来插入数据,而不支持使用 INSERT INTO
命令。
9.2 事务管理
OceanBase 数据库支持事务管理,可以确保多个操作的原子性、一致性和持久性。在执行多个操作时,可以使用事务来保证这些操作要么全部成功,要么全部失败。
9.3 连接池
OceanBase 数据库提供了连接池功能,可以有效地管理数据库连接资源。连接池可以提高应用程序的性能和可伸缩性,减少连接建立和释放的开销。
10、总结
本文介绍了如何下载、安装和使用 OceanBase 数据库。首先,我们需要确保计算机满足最低系统要求。然后,按照官方提供的安装步骤进行操作即可。在安装过程中,需要注意选择正确的安装类型和路径,配置数据库的端口号、管理员账户和密码等信息。完成安装后,可以使用 SQLShell(SQL*Plus)工具连接到数据库并执行 SQL 查询。
往期专栏 |
---|
Java全栈开发 |
数据结构与算法 |
计算机组成原理 |
操作系统 |
数据库系统 |
物联网控制原理与技术 |
相关文章:

OceanBase 数据库入门知识
🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,…...

自定义无边框窗口
效果: 可拖动拉伸 ui:设计如下 样式表:在ui CustomDialog 里设置的 #widget_title{background: #E6F1EB;border-top-left-radius: 20px;border-top-right-radius: 20px;}#widget_client{background-color: rgb(255, 255, 255);border-bottom…...

【网络安全 --- kali2023安装】超详细的kali2023安装教程(提供镜像资源)
如果你还没有安装vmware 虚拟机,请参考下面博客安装 【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)-CSDN博客【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)https://blog.csdn.net/m0…...

机器学习笔记(二)
过拟合 如下图左边,模型出现了过拟合现象 为了解决过拟合现象, 其中一个做法是多收集数据,如右图。 第二种做法是减少模型的特征数量,即x 第三种做法是正则化 正则化就是减少x前面的参数 w的数值, 不用消除x 正则化的梯度下降如下, 因为只是缩小了w的值,而 b的值保持不变 …...

Java @Override 注解
在代码中,你可能会看到大量的 Override 注解。 这个注解简单来说就是让编译器去读的,能够避免你在写代码的时候犯一些低级的拼写错误。 Java Override 注解用来指定方法重写(Override),只能修饰方法并且只能用于方法…...

用rabbitMq 怎么处理“延迟消息队列”?
延迟消息队列是一种允许消息在发送后等待一段时间,然后再被消费的机制。这种机制通常用于需要延迟处理的应用场景,如定时任务、消息重试、消息调度等。在 RabbitMQ 中,实现延迟消息队列需要使用一些额外的组件和技术,因为 RabbitM…...

不常见的JS加密分析
前言 今天发现一个很少见的JS加密代码,他由一段十分少见的环境检测逻辑,修改一个字符都会被检测到,十分神奇,今天献上。 源代码 let hiJsJiami;!function(){const Zg3GArray.prototype.slice.call(arguments);return eval(&…...

TCP原理特性详解
文章目录 可靠传输机制1.确认应答2.超时重传2.连接管理1.三次握手2.四次挥手 传输效率1.滑动窗口2.流量控制3.拥塞控制4.延时应答5.捎带应答 面向字节流粘包问题 TCP异常情况 可靠传输机制 可靠性:即发送方知道数据是发送成功了,还是失败了。 1.确认应答…...

什么是懒加载,JS如何实现懒加载,在php中如何去实现懒加载
懒加载(Lazy Loading)是一种前端优化技术,用于推迟加载页面中的某些资源(如图片、脚本、样式等),直到用户需要访问或者接近该资源时才进行加载。这可以减少初始页面加载时间,并提高页面性能和用…...

Cesium 展示——读取文件——加载 geojson 文件数据
文章目录 需求分析方法一:加载 geojson 文件方法二:加载 后台解析后的 geojson 文件结果需求 在做项目时,对加载 geojson 格式的数据有了一定的了解,因此试着尝试接手后台解析的 geojson 数据进行绘制,因此做了总结如下 分析 方法一:加载 geojson 文件 this.od6 = wi…...

(二)Apache log4net™ 手册 - 配置
0、引言 在上一篇文章中我们简单介绍了 Log4Net 及其核心的三大组件。本文将在上一篇文章的基础上继续探讨与 Log4Net 配置相关的内容。 1、配置 将日志请求插入到应用程序代码中需要进行大量的计划和工作。观察表明,大约4%的代码专门用于日志记录。因此…...

Elasticsearch:时间点 API
Elasticsearch:时间点 API-CSDN博客 在今天的文章中,我将着重介绍 Point in time API。在接下来的文章中,我将介绍如何运用 PIT 来对搜索结果进行分页。这也是被推荐使用的方法。 Point in time API 默认情况下,搜索请求针对目标…...

hive数据表定义
分隔符 CREATE TABLE emp( userid bigint, emp_name array<string>, emp_date map<string,date>, other_info struct<deptname:string, gender:string>) ROW FORMAT DELIMITED FIELDS TERMINATED BY \t COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMINAT…...

OpenMesh 网格简化之顶点聚类
文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 顶点聚类方法将落在给定大小体素中的所有顶点集中到单个顶点之上,其过程有点类似于点云体素下采样,之后再基于聚类之后的顶点重新连接面片,以达到网格简化的目的。 二、实现代码 #define _USE_MATH_DEFINES #in…...

C++ 类和对象篇(八) const成员函数和取地址运算符重载
目录 一、const成员函数 1. const成员函数是什么? 2. 为什么有const成员函数? 3. 什么时候需要使用const修饰成员函数? 二、取地址运算符重载 1. 为什么需要重载取地址运算符? 2. 默认取地址运算符重载函数 3. 默认const取地址运…...

k8s 集群安装(vagrant + virtualbox + CentOS8)
主机环境:windows 11 k8s版本:v1.25 dashboard版本:v2.7.0 calico版本: v3.26.1 CentOS8版本:4.18.0-348.7.1.el8_5.x86_64 用到的脚本: https://gitcode.net/sundongsdu/k8s_cluster 1. Vagrant创建…...

8、Docker数据卷与数据卷容器
一、数据卷(Data Volumes) 为了很好的实现数据保存和数据共享,Docker提出了Volume这个概念,简单的说就是绕过默认的联合文件系统,而以正常的文件或者目录的形式存在于宿主机上。又被称作数据卷。 数据卷 是一个可供一个或多个容器使用的特殊目…...

大数据与Hadoop入门理论
一、大数据的3种数据类型 1、结构化数据 可定义,有类型、格式、结构的强制约束 如:RDBMS(关系型数据库管理系统) 2、非结构化数据 没有规律没有数据约束可言,很复杂难以解析 如:文本文件,视…...

持续集成部署-k8s-深入了解 Pod:探针
持续集成部署-k8s-深入了解 Pod:探针 1. 探针分类2. 探针探测方式3. 探针参数配置4. 启动探针的应用5. Liveness 探针的应用6. Readiness 探针的应用1. 探针分类 Kubernetes 中的探针是指容器内的进程用于告知 Kubernetes 组件其自身状态的机制; Readiness Probe:就绪探针用…...

来单提醒/客户催单 ----苍穹外卖day9
来单提醒 需求分析 代码开发 注意:前端请求的并不是8080端口;而是先请求Nginx,Nginx进行反向代理以后转发到8080端口 这段代码首先创建了一个orders类用于更新订单状态 并且在更新状态后使用websocket发送给后端提醒 将信息放在map后,使用json的string化方式传给一个接收对象,…...

【单片机】18-红外线遥控
一、红外遥控背景知识 1.人机界面 (1)当面操作:按键,旋转/触摸按键,触摸屏 (2)遥控操作:红外遥控,433M/2.4G无线通信【穿墙能力强】,蓝牙-WIFI-Zigbee-LoRa等…...

【Node.js】module 模块化
认识 node.js Node.js 是一个独立的 JavaScript 运行环境,能独立执行 JS 代码,可以用来编写服务器后端的应用程序。基于Chrome V8 引擎封装,但是没有 DOM 和 BOM。Node.js 没有图形化界面。node -v 检查是否安装成功。node index.js 执行该文…...

Vue中如何进行分布式日志收集与日志分析(如ELK Stack)
在Vue中实现分布式日志收集与日志分析(使用ELK Stack) 日志收集和分析在现代应用程序中是至关重要的,它们可以帮助开发人员监视和诊断应用程序的行为,从而提高应用程序的稳定性和性能。ELK Stack(Elasticsearch、Logs…...

java学习--day23(线程池)
1.线程池Pool 线程池一个容纳了多个线程的容器,其中的线程可以反复的使用。省去了频繁创建线程的对象的操作,无需反复创建线程而消耗更多的资源 在 Java 语言中,并发编程都是通过创建线程池来实现的,而线程池的创建方式也有很多种…...

Unity Golang教程-Shader编写一个流动的云效果
创建目录 一个友好的项目,项目目录结构是很重要的。我们先导入一个登录界面模型资源。 我们先创建Art表示是美术类的资源,资源是模型创建Model文件夹,由于是在登录界面所以创建Login文件夹,下面依次是模型对应的资源,…...

Python数据攻略-Pandas与地理空间数据分析
地理空间数据分析已经成为数据分析不可或缺的一部分。无论是在城市规划、交通分析,还是在环境科学中,地理空间数据都发挥着关键作用。 本文将为初学者和新手提供一个详细的指南,通过使用Python的Pandas库和Geopandas库,来进行地理空间数据分析。 文章目录 用Pandas处理地理…...

sourceTree无法启动
前几天win10系统自动更新后,sourceTree就无法打开了,双击只是图标闪一下,电脑重启后还是无法打开。找到了网上几种方法进行尝试: 方法一:修改配置信息 在自己的电脑路径下: C:\Users\你的用户名\AppData…...

【ARM Coresight 系列文章19 -- Performance Monitoring Unit(性能监测单元)
文章目录 1.1 PMU 介绍1.2 PMU 寄存器1.2.1 PMU 管理寄存器1.2.2 PMU 外设识别寄存器1.2.3 PMU 组件识别寄存器1.3 性能监控事件1.3.1 Cortex-A9 特定事件1.1 PMU 介绍 许多体系结构都包含 PMU(Performance Monitoring Unit)硬件,用于跟踪、计数系统内部的一些底层硬件事件…...

前端学习| 第二章
CSS学习|第一章 前言一、概述1. 语法规定2. 代码风格 二、选择器1. 基础选择器标签选择器类选择器id选择器通配符选择器 2. 复合选择器后代选择器子元素选择器并集选择器伪类选择器链接伪类选择器focus 伪类选择器 三、引入方式四、显示模式1. 块元素2. 行内元素3. 行内块元素4…...

Unity中Shader光强与环境色
文章目录 前言一、实现下图中的小球接受环境光照实现思路:1、在Pass中使用前向渲染模式2、使用系统变量 _LightColor0 获取场景中的主平行灯 二、返回环境中主环境光的rgb固定a(亮度),小球亮度还随之改变的原因三、获取Unity中的环境光的颜色1、Color模式…...