暂无图片
暂无图片
3
暂无图片
暂无图片
2
暂无图片

oceanbase初体验之一:产品特色和docker快速体验

原创 cqiwen 2022-02-22
2724

前言:

关于oceanbase数据库,我最近也是经常听朋友们提到,据说已经非常火了。无巧不成书,昨天在浏览墨天轮的网站时,看到其首页推出的oceanbase技术征文大赛,点击进去了解了下。我的天!原来这个国产数据库已经发展到如此程度了。这不得不勾起我的好奇心,我决定和大家一起进行观摩。

简介:

OceanBase 数据库是一个原生的分布式关系数据库,它是完全由阿里巴巴和蚂蚁集团自主研发的项目。OceanBase 数据库构建在通用服务器集群上,基于 Paxos 协议和分布式架构,提供金融级高可用和线性伸缩能力,不依赖特定硬件架构,具备高可用、线性扩展、高性能、低成本等核心技术优势。

OceanBase 数据库具有如下特点:

1)高可用
单服务器故障能够自愈,支持跨城多机房容灾,数据零丢失,可满足金融行业 6 级容灾标准(RPO=0,RTO<=30 秒)。这个参数可不得了,对于我们目前所接触的环境,应该都能满足要求了。

2)线性扩展
透明扩展,自动负载均衡,应用透明的水平扩展,集群规模可超过 1500 节点,数据量可达 PB 级,单表记录万亿行。

3)MySQL/Oracle 高度兼容
社区版兼容 MySQL 协议、语法和使用习惯,MySQL 客户端工具可以直接访问 OceanBase 数据库。
企业版兼容 MySQL、Oracle 协议。需要使用 OceanBase 自己的驱动才可以访问 OceanBase 数据库的 ORACLE 租户。

4)高性能
准内存级数据变更操作、独创的编码压缩技术,结合线性水平扩展,TPC-C 测试达到 7.07 亿 tpmC。

2019 年,OceanBase 2.2 版本参加代表 OLTP 数据库最权威的 TPC-C 评测,以 6000 万 tpmC 的成绩登顶世界第一。随后,在 2020 年,又以 7 亿 tpmC 刷新纪录,截止目前依然稳居第一。这充分证明了 OceanBase 优秀的扩展性和稳定性。OceanBase 是第一个也是截止目前唯一一个上榜 TPC-C 的中国数据库产品。

5)多租户
原生支持多租户架构,同一套数据库集群可以为多个独立业务提供服务,租户间数据隔离,降低部署和运维成本。

OceanBase 数据库支持支付宝的全部核心业务,以及银行、保险、证券、运营商等多个行业的数百个客户的核心业务系统。

6)是HTAP 混合负载的代表
2021 年,OceanBase 3.0 基于全新的向量化执行引擎,在 TPC-H 30000GB 的评测中以 1526 万 QphH 的成绩刷新了评测榜单。这标志着 OceanBase 一套引擎处理 AP 和 TP 混合负载的能力取得了基础性的突破。这是不是说,以后只需要布署一套oceanbase,就能实现OLTP和OLAP两种功能呢?继tidb之后,这又将是一个不错的选择。

7)开源开放
2021 年 6 月 1 日,OceanBase 宣布开源,开放合作,共建生态。OceanBase 在 2021 年 6 月正式推出社区版并开放源码,版本从 3.1.0 开始,源码托管地址:https://github.com/oceanbase/oceanbase。同时代码也同步发布到开源中国网站:https://gitee.com/oceanbase/oceanbase。

OceanBase 数据库社区版使用 MulanPubL - 2.0 许可证(木兰协议) 。因此大家可以免费复制及使用源代码。社区版官方网站地址是: https://open.oceanbase.com 。

二、oceanbase下载方法

官网下载:
https://open.oceanbase.com/softwareCenter/community

GitHub 下载:
https://github.com/oceanbase/oceanbase/releases/

阿里云 Yum 源:
https://mirrors.aliyun.com/oceanbase/OceanBase.repo

三、支持的操作系统

OceanBase 社区版支持的操作系统包括:

CentOS:推荐 7.2 以后版本。
Debian:推荐 9.8、10.9 版本。
openSUSE:推荐 15.2 版本。
OpenAnolis:推荐 8.2 版本。
SUSE: 推荐 15.2 版本。
Ubuntu:推荐 16.04、18.04、20.04 等版本。

四、适合社区版的业务场景

4.1 MySQL 5.6/5.7 实例规模很大的场景。

MySQL 实例规模大,需要自动化运维平台。自动化运维平台在处理 MySQL 异常宕机切换和主备不一致问题时很可能需要 DBA 介入。高可用和强一致问题是 MySQL 最大的风险。 OceanBase 的多租户、高可用和强一致能力可以彻底解决这个痛点。

4.2 MySQL 5.6/5.7 数据量非常大、存储成本高的场景。

MySQL 业务数据量增长到几 T 以上时,查询和读写性能可能会下降,大表 DDL 时间变长,风险增加。单机磁盘容量可能到达扩容瓶颈。

OceanBase MySQL 租户的在线 DDL,数据存储高压缩比可以解决这些痛点。

4.3 业务访问压力大或者变化大的场景。

业务访问压力大,基于 MySQL 改造的分布式数据库中间件产品能分担一定程度的业务压力和存储空间压力,但是缺乏跨节点的强一致性查询,以及需要分布式事务中间件协调事务,扩容的时候可能需要数据逻辑拆分(俗称拆库拆表),运维成本高,风险高。

OceanBase MySQL 租户提供分区表的水平拆分方案,提供原生的 SQL 和事务能力,对业务透明。并且支持在线扩容和缩容,内部数据迁移异步进行,具备高可用能力,不怕扩容和缩容过程中出现故障,可以解决上面这些痛点。

4.4 交易数据库上的复杂查询场景。

交易数据库上有少量复杂的查询场景,涉及到的数据量很大,传统解决方案是通过数据同步到数据仓库进行查询。

OceanBase 数据库的 SQL 引擎同时满足 OLTP 和 OLAP 场景,采用经过 Oracle 复杂业务场景检验的先进的 SQL 优化器技术,能支持复杂的 SQL 优化和高效执行。因此可以在交易数据库上直接做复杂查询,减少不必要的数据同步。此外,OceanBase 还提供不同程度的读写分离技术来控制复杂查询对交易场景的影响

五、快速布署体验

在docker宿主机上执行一条命令即可下载并启动oceanbase:

docker run -itd --rm --name obce -p 2881:2881 -e OB_HOME_PATH="/root/obce/" -e OB_TENANT_NAME="obmysql" oceanbase/obce-mini
复制

ob1.png

[root@rhel701 ~]# docker ps -a |grep obce
00c73bc35c12 oceanbase/obce-mini “/bin/sh -c _boot” About a minute ago Up About a minute 0.0.0.0:2881->2881/tcp obce

查看集群布署日志:

docker logs obce
复制

此处省略一部分输出

Wait for observer init ok
±--------------------------------------------+
| observer |
±----------±--------±-----±------±-------+
| ip | version | port | zone | status |
±----------±--------±-----±------±-------+
| 127.0.0.1 | 3.1.0 | 2881 | zone1 | active |
±----------±--------±-----±------±-------+

mini-ce running
generate init_tenant.sql …
init tenant and sysbench database …
boot success!
Failed to mount tmpfs at /run: Operation not permitted
[!!!] Failed to mount API filesystems, freezing.

日志最后有报错,但看前面的部分是启动成功了的,尝试连接试试:
(此处我的宿主机上已经安装有mysql的客户端)

[root@rhel701 ~]# mysql -h127.0.0.1 -uroot@sys -P2881 -prootPWD123 -c -A oceanbase
复制

mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3221487705
Server version: 5.7.25 OceanBase 3.1.0 (r-00672c3c730c3df6eef3b359eae548d8c2db5ea2) (Built Jun 22 2021 12:46:28)

Copyright © 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql> show databases; +--------------------+ | Database | +--------------------+ | oceanbase | | information_schema | | mysql | | SYS | | LBACSYS | | ORAAUDITOR | | test | +--------------------+ 7 rows in set (0.03 sec) mysql> show parameters like 'cluster'; +-------+----------+-----------+----------+---------+-----------+-----------+---------------------+----------+---------+---------+-------------------+ | zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level | +-------+----------+-----------+----------+---------+-----------+-----------+---------------------+----------+---------+---------+-------------------+ | zone1 | observer | 127.0.0.1 | 2882 | cluster | NULL | obcluster | Name of the cluster | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | +-------+----------+-----------+----------+---------+-----------+-----------+---------------------+----------+---------+---------+-------------------+ 1 row in set (0.01 sec) mysql> 能够正常连接,说明oceanbase能正常提供对外服务了! 再到test库中创建一张表,测试插入和查询数据: mysql> use test Database changed mysql> show tables; Empty set (0.02 sec) mysql> create table t1(id int,name varchar(20)); Query OK, 0 rows affected (0.29 sec) mysql> insert into t1 values(1,'cqiwen'); Query OK, 1 row affected (0.06 sec) mysql> commit; Query OK, 0 rows affected (0.00 sec) mysql> select * from t1; +------+--------+ | id | name | +------+--------+ | 1 | cqiwen | +------+--------+ 1 row in set (0.01 sec) mysql>
复制

一切正常,语法和mysql兼容,非常好用!

更多关于oceanbase的功能体验,我将会在下一篇文章中陆续发布,敬请期待!

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

文章被以下合辑收录

评论

墨天轮福利君
暂无图片
3年前
评论
暂无图片 0
您好,您的文章已入选合格奖,10墨值奖励已经到账请查收! ❤️我们还会实时派发您的流量收益。
3年前
暂无图片 点赞
评论
墨天轮编辑部
暂无图片
3年前
评论
暂无图片 0
谢谢您投稿第二期 OceanBase 技术征文大赛🌹本次活动将于3月11日截止征稿,欢迎您多多投稿!
3年前
暂无图片 点赞
评论