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

OB Server 的 SQL 引擎

笨鸟之路 2021-04-19
902
前一章节主要讲了 Oceanbase 做为一个集群,是如何管理调度这么多台服务器,让所有的服务器协同工作,保证高可用,保证分布式事务的 AICD 等等。接下来,这一章节,我们深入到一台 OB Server 内部,看看这台 OB Server 的 SQL 引擎和存储引擎机制。
目前市场上的主流应用级别都是运行在 Oracle 或者 MySQL 数据库上,为了方便应用迁移,降低迁移的技术难度和成本,OceanBase 的 SQL 引擎可以兼容 MySQL 和 Oracle、前面章节我们也讲了,在创建租户的时候,我们就需要指定租户的模式是 MySQL 或者 Oracle。

OceanBase可以在一个数据库中,实现两种租户,对DBA来说,之前他要维护两个数据库,一个 Oracle,一个 MySQL。现在他只要维护一套数据库,应用开发者习惯了 MySQL,就给他创建 MySQL 租户,应用开发者习惯了 Oracle,就给他创建 Oracle 租户。

        MySQL 方面,由于蚂蚁内部的很多应用之前都使用 MySQL 数据库,为了更好的迁移应用 OceanBase 上,OceanBase 兼容了 MySQL 5.6 语法、数据结构、通信协议等等,继承开发者的开发习惯。还有一个原因是 MySQL 是开源的数据库,通信协议层也是完全公开的,OceanBase 可以知道协议包的内容,就可以解析协议。所以,OceanBase 是支持 MySQL 客户端的,应用开发者可以像使用 MySQL 一样使用 OceanBase,但 OceanBase 内部是100%自主研发的分布式数据库,技术架构和原理与 MySQL 完全不一样。

Oracle 的兼容性就比较困难,OceanBase 没有源码和通信协议层可以参考,只能独立研发,尽量去兼容 Oralce,当前 OceanBase 兼容 Oracle 11g 语法,支持 90%的 Oracle 数据类型和内置函数,支持分布式执行的存储过程(PL/SQL),OceanBase 也将持续投入,未来会更好的兼容 Oracle。

 

文章转载自笨鸟之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论