暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在Oceanbase桌面版体验OB自动分区表,小功能大作用!

原创 潇湘秦 2025-05-19
513

上周六参加了2025年Oceanbase 开发者大会,整整一天干货非常多,总体的概述我就不写了,有兴趣的可以看一下韩峰老师公众号,里面有较为详细的整体解读

https://mp.weixin.qq.com/s/0LiyauCvn5ajxTpa00oMUA

我个人比较感兴趣的是OB桌面版正式发布,这次不再是有限范围邀测,而是正式的发布了,任何对OB数据库感兴趣的小伙伴都可以来下载试用;从去年的一体化,到最近发布的单机版,再到现在的桌面版,OB也慢慢的成为“旧时王谢堂前燕,飞入寻常百姓家”。OB的学习和试用的门槛越来越低,安装维护也越来越便捷,这无疑是对DBA是越来越友好,考证的兄弟都知道目前国产数据库认证含金量最高的应该就属OB了,但是原来很多DBA受限于没有生产环境,实验环境安装对资源要求较高,没办法实际上手使用,单纯背个题库去考试还是“纸上得来终觉浅”,上手去用去运维去实验,才是学习一个数据库的正确道路。目前OB是真的做到了这点,大家有兴趣的赶紧来下载尝试吧。下面是我用半小时就安装成功的桌面版上手示例,供参考。

一.下载安装介质

我个人电脑配置介绍

OS:windows11专业版,配置:32G内存 
目前OB桌面版需要6G空闲内存,据了解后续对资源的占用可能会更小,更轻量化。

官网下载地址https://www.oceanbase.com/softwarecenter

目前桌面版本是完全开放下载测试的,前段时间发布的单机版是邀测阶段,安装介质需要注册申请下载。

Windows版本908MB

二.安装WSL依赖

直接点击安装 选择安装路径,占用空间1.2G

 

这是因为 Windows 操作系统中安装 OceanBase Desktop 需依赖 WSL(Windows Subsyetem for Linux,适用于 Linux 的 Windows 子系统)。 如果要安装桌面版需要确保Windows系统启用了WSL功能
如何启用WSL功能

2.1 确认操作系统版本 >= win 10

WSL 需要 Windows 10 1709 专业版 或者 Windows 10 1803 及以上的家庭版,WSL 2 需要 Windows 10 1903(内部版本 18362)或更高版本(x64)。如果版本较低,请更新 Windows 10 系统。
本次使用的环境为win11专业版

2.2确保CPU启用了虚拟化

打开 任务管理器,进入 性能 界面,查看 CPU。如下图所示,若已开启虚拟化,虚拟化 一栏显示为 已启用。如果虚拟化 一栏显示为 已禁用,则需要开启 BIOS 中虚拟化功能,不同的电脑 BIOS 的进入和打开虚拟化的操作不尽相同,可自行通过浏览器搜索自己电脑对应的型号。
确保CPU 虚拟化已经启用

2.3.启动 WSL 功能和虚拟机平台功能

有如下两种方法启动 WSL 功能和虚拟机平台功能,您可根据实际情况选择合适的启动方法。

  • 方法一:使用命令行开启

    同时按住键盘 Win+Q,搜索 powershell 或 Windows Powershell,点击 以管理员身份运行 或 Run As Administrator,在打开的命令行中输入如下命令,两条命令均执行成功后重启计算机即可。

    #启动 WSL 功能
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

    #启动虚拟机平台功能
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  • 方法二:通过图形化界面开启

    同时按住键盘 Win+Q,搜索 启用或关闭 Windows 功能,打开后下滑找到并勾选 适用于 Linux 的 Windows 子系统 和 虚拟机平台。单击 确定 后重启计算机即可。

    win10

    配置
    win11

2.4 安装 WSL 2 内核组件

有如下两种方法安装 WSL 2 内核组件,您可根据实际情况选择合适的启动方法。

    • 方法一:下载安装包安装

      根据处理器的架构选择下载 wsl_update_x64.msi 或 wsl_update_arm64.msi。下载成功后运行对应安装包,一步步单击 Next 进行安装。

    • 方法二:通过命令行安装

      同时按住键盘 Win+R 打开 cmd,或者同时按住键盘 Win+Q,搜索并打开 powershell 或 Windows Powershell(可以使用普通用户,也可以使用管理员/Administrator 身份或 Administrator 用户),在命令行中输入如下命令

    • wsl --update

        正常安装如下,

       

    将 WSL 2 设置为默认版本  
    
在 cmd 或 powershell 命令行中输入如下命令:

 wsl --set-default-version 2

    

   安装完成后建议要重启一下。

  三. 安装Oceanbase 桌面版

 确认WSL安装ok后 再去安装,选择安装路径,下一步 几秒钟就安装成功,非常便捷。

安装完成后,会有一个图形化的管理界面,还是比较方便的

点击启动 来启动数据库

等待几秒钟后 桌面版的OB 就启动好了;

目前桌面版的仅支持mysql兼容模式,想体验oracle兼容模式可以去申请oceanbase单机版,具体可以参考我的另外一篇文章 Oceanbase单机版上手示例

https://www.modb.pro/db/1912688451867127808

点连接,复制连接串

 

进入powershell  输入连接串即可进入OB数据库


四.被刷屏的自动分区特性

周六OB开发大会期间,就有朋友在一些群里发“朋友圈全部在刷OB手自一体分区上线”,当时看到这个时候也是蛮惊讶,毕竟作为一个DBA 维护分区表的分区,真的是一个比较头大的问题,因为分区的事情真的非常常见,而且大表改分区表也是比较麻烦的。如果能够自动分区,自动维护真的会大大降低维护难度和DBA的工作量。而且恰巧最近就遇到两个分区相关的事情,所以看到这个特性,甚是眼前一亮。

日常处理分区报错问题

日常处理大表变更为分区表

4.1 什么是自动分区分裂

直接官网搜“自动分区”,就能很方便的找到官方文档对自动分区分裂的介绍,而且非常详细。

其实这个并不算是ob的一个新功能,在V4.3.4就已经引入了自动分区分裂,只是这次Oceanbase开发者大会上提到了,所以才在被大家热议。

简单来说,OB 可以在表级别或者租户级别实现表的自动区分,分区依赖大小,这个大小可以在建表时设置,如果不设置则使用默认参数auto_split_tablet_size ,也就是达到这个大小就自动分区;

  • enable_auto_split:租户级别配置项,控制租户是否开启自动分区功能,默认关闭。
  • auto_split_tablet_size:租户级别配置项,控制租户开启自动分区功能之后触发分裂的阈值,默认值 128MB。
  • obclient(root@test)[oceanbase]> SHOW PARAMETERS LIKE 'enable_auto_split';
    +-------+----------+-----------+----------+-------------------+-----------+-------+----------------------------------------------------------------------------------------------------------------+---------+--------+---------+-------------------+---------------+-----------+
    | zone  | svr_type | svr_ip    | svr_port | name              | data_type | value | info                                                                                                           | section | scope  | source  | edit_level        | default_value | isdefault |
    +-------+----------+-----------+----------+-------------------+-----------+-------+----------------------------------------------------------------------------------------------------------------+---------+--------+---------+-------------------+---------------+-----------+
    | zone1 | observer | 127.0.0.1 |     2882 | enable_auto_split | BOOL      | False | if the auto-partition clause is not usedthis config judge whether to enable auto-partition for creating table. | TENANT  | TENANT | DEFAULT | DYNAMIC_EFFECTIVE | False         |         1 |
    +-------+----------+-----------+----------+-------------------+-----------+-------+----------------------------------------------------------------------------------------------------------------+---------+--------+---------+-------------------+---------------+-----------+
    1 row in set (0.015 sec)
    
    obclient(root@test)[oceanbase]>
    obclient(root@test)[oceanbase]> SHOW PARAMETERS LIKE 'auto_split_tablet_size';
    +-------+----------+-----------+----------+------------------------+-----------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+--------+---------+-------------------+---------------+-----------+
    | zone  | svr_type | svr_ip    | svr_port | name                   | data_type | value | info                                                                                                                                                                                                                                                                                                                                                                    | section | scope  | source  | edit_level        | default_value | isdefault |
    +-------+----------+-----------+----------+------------------------+-----------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+--------+---------+-------------------+---------------+-----------+
    | zone1 | observer | 127.0.0.1 |     2882 | auto_split_tablet_size | CAPACITY  | 128M  | when create an auto-partitioned table in "create table" syntax or modify a table as an auto-partitioned table in "alter table" syntax,if the splitting threshold of tablet size is not setted,this config will be setted as the threshold of the table.Note that the modification of this config will not affect the created auto-partitioned table.Range: [128M, +∞)   | TENANT  | TENANT | DEFAULT | DYNAMIC_EFFECTIVE | 128M          |         1 |
    +-------+----------+-----------+----------+------------------------+-----------+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+--------+---------+-------------------+---------------+-----------+
    1 row in set (0.005 sec)
    


 4.2 桌面版实验自动分区表

  参考官方文档做了个简单的实验,通过这几条命令就可以非常直接了解自动分区的特性

--创建自动分区表 test1_tbl1,不指定预分区键,指定分裂阈值为 10GB。obclient(root@test)[test]> CREATE TABLE test1_tbl1 (col1 INT, col2 INT, col3 VARCHAR(30), PRIMARY KEY(col1, col2))
    ->     PARTITION BY RANGE() SIZE('10GB');
Query OK, 0 rows affected (0.240 sec)
--创建自动分区表 test1_tbl2,指定预分区键为 col1,指定分裂阈值为 10GB。
obclient(root@test)[test]> CREATE TABLE test1_tbl2 (col1 INT, col2 INT, col3 VARCHAR(30), PRIMARY KEY(col1, col2))
    ->     PARTITION BY RANGE(col1) SIZE('10GB');
Query OK, 0 rows affected (0.115 sec)
--创建自动分区表 test1_tbl3,不指定预分区键和分裂阈值(分裂阈值会默认使用 auto_split_tablet_size 的值)。
obclient(root@test)[test]> CREATE TABLE test1_tbl3 (col1 INT, col2 INT, col3 VARCHAR(30), PRIMARY KEY(col1, col2))
    ->     PARTITION BY RANGE();
Query OK, 0 rows affected (0.099 sec)
--创建自动分区表 test1_tbl4 时,指定预分区键为 col1, col2,分裂阈值为 10GB,并预先创建分区位点 P0、P1、P2 和 P3。
obclient(root@test)[test]> CREATE TABLE test1_tbl4 (col1 INT, col2 INT, col3 VARCHAR(30), PRIMARY KEY(col1, col2))
    ->     PARTITION BY RANGE COLUMNS(col1, col2) SIZE('10GB')
    ->         (PARTITION P0 VALUES LESS THAN (100, MAXVALUE),
    ->          PARTITION P1 VALUES LESS THAN (500, MAXVALUE),
    ->          PARTITION P2 VALUES LESS THAN (800, MAXVALUE),
    ->          PARTITION P3 VALUES LESS THAN (MAXVALUE, MAXVALUE));
Query OK, 0 rows affected (0.145 sec)
--查看表的自动分区属性。
obclient(root@test)[test]> SELECT TABLE_SCHEMA, TABLE_NAME, AUTO_SPLIT, AUTO_SPLIT_TABLET_SIZE
    -> FROM information_schema.TABLES
    -> WHERE TABLE_NAME LIKE "test1%"
    -> ORDER BY TABLE_NAME;
+--------------+------------+------------+------------------------+
| TABLE_SCHEMA | TABLE_NAME | AUTO_SPLIT | AUTO_SPLIT_TABLET_SIZE |
+--------------+------------+------------+------------------------+
| test         | test1_tbl1 | TRUE       |            10737418240 |
| test         | test1_tbl2 | TRUE       |            10737418240 |
| test         | test1_tbl3 | TRUE       |              134217728 |
| test         | test1_tbl4 | TRUE       |            10737418240 |
+--------------+------------+------------+------------------------+
4 rows in set (0.080 sec)

obclient(root@test)[test]>


总结

这次Oceanbase的主题是“当SQL遇见AI”,OB发布很多AI相关的特性和产品,如 PowerRAG 开箱即用的RAGOceanBase AI 一体机等。最近公司在探索本地化部署大模型,但是看了很多厂商,如果要实现本地化部署满血版deepseek 671B基本都要200W+,这还仅仅是硬件投入,而OceanBase AI 一体机仅需1/N的价格就可以本地化部署满血版deepseek,而且还是整体化的解决方案,这无疑是非常有吸引力了。
 从chatgpt问世的惊艳,到Deepseek的全面爆发,现在各行各业都无法绕开AI的影响,这个影响必然是持久而深远的,当汽车时代来临,就是要去学会如何开汽车,而不是想着如何骑马追上汽车;当AI时代来临,那必然就是学习AI使用AI,让AI成为帮助我们的工具,而不是让AI取代我们。 

 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论