OceanBase基础架构
简介
OceanBase是由蚂蚁集团、阿里巴巴完全自主研发的分布式关系型数据库。它始创于2010年,是完全自主研发的原生分布式数据库。
OceanBase采用了一种被称为"单机分布式一体化架构"的设计。这种架构兼顾了分布式架构的扩展性与集中式架构的性能优势。它使用一套引擎同时支持OLTP(联机事务处理)和OLAP(联机分析处理)的混合负载。此外,OceanBase还创新推出了"三地五中心"城市级容灾新标准。
OceanBase已经当前在金融、政务、运营商、零售、互联网等多个行业的400+客户中得到应用,实现了关键业务系统的升级。
基础架构
具体来说,OceanBase的架构包括以下几个主要部分:
①存储引擎:OceanBase使用基于LSM-Tree的高压缩引擎,平衡了"性能"和"压缩"的瓶颈,有效降低存储成本70% - 90%。
②计算引擎:OceanBase的计算引擎支持SQL和NoSQL查询,以及复杂的事务处理。
③分布式事务:OceanBase支持全局事务,保证数据的一致性和完整性。
④高可用和故障恢复:OceanBase通过数据复制和故障转移机制,提高了系统的可用性。它还支持快速故障恢复,确保服务的连续性。
OceanBase特点
OceanBase具有以下特点:
①数据强一致:确保所有数据副本始终保持一致。
②高可用:通过复制和故障转移机制,提高系统的可用性。
③高性能:通过分布式架构,实现高性能的数据处理和查询。
④在线扩展:可以在不中断服务的情况下,动态地添加或删除存储和计算资源。
⑤高度兼容SQL标准和主流关系型数据库:支持大部分SQL语法,以及Oracle和MySQL的语法。
⑥低成本:通过高效的资源利用,降低了存储和计算的成本。
OceanBase与Oracle的差异
OceanBase数据库与Oracle数据库在函数支持上存在一些差异。如下:
①内建函数:Oracle中支持117个内建函数,而OceanBase目前支持103个。
②SQL语法:OceanBase支持Oracle中的基本SQL语法。然而,OceanBase不支持Oracle的部分较复杂的OLAP语法,如模式匹配、PIVOT/UNPIVOT函数、多态表函数和频繁项目集计算。
③DDL语法:OceanBase不支持add constraint这种写法,需要写在括号内部。此外,OceanBase不支持novalidate和enable这两种DDL语法。
④其他功能:OceanBase不支持Oracle的存储过程、触发器、视图、多表关联、大表关联等常用数据库核心功能。
OceanBase数据库在某些方面提供了Oracle数据库不支持的功能:
①单机分布式一体化架构:OceanBase采用了一种被称为"单机分布式一体化架构"的设计。这种架构兼顾了分布式架构的扩展性与集中式架构的性能优势。它使用一套引擎同时支持OLTP(联机事务处理)和OLAP(联机分析处理)的混合负载。
②"三地五中心"城市级容灾新标准:OceanBase创新推出了"三地五中心"城市级容灾新标准。
③基于LSM-Tree的高压缩引擎:OceanBase使用基于LSM-Tree的高压缩引擎,平衡了"性能"和"压缩"的瓶颈,有效降低存储成本70% - 90%。
④原生多租户:OceanBase支持原生多租户,资源隔离按需使用。
以上为OceanBase相对于Oracle具有的一些独特功能。具体的差异可能会根据OceanBase和Oracle的版本有所不同。
其他:Oracle数据迁移至OceanBase
Oracle数据库的数据可以通过以下步骤迁移到OceanBase:
创建迁移项目:在OceanBase迁移服务(OceanBase Migration Service,OMS)控制台创建从Oracle数据库迁移数据至OceanBase数据库Oracle租户的数据迁移任务。
设置迁移类型:根据业务需求,选择当前迁移任务的迁移类型。迁移类型包括结构迁移、全量迁移、增量迁移、全量校检和反向增量。
选择迁移对象:选择一个或多个库的表、视图作为迁移对象。
配置迁移选项:配置全量迁移是否允许目标表非空、增量记录保存时间、全量迁移并发参数、全量校验并发参数和字符编码与长度定义选项等参数。
预检查并启动数据迁移项目:在预检查环节,OMS会检查数据库用户的读写权限、数据库的网络连接等是否符合要求。全部检查项目均通过后才能启动数据迁移任务。
除此之外,还可以使用DataX或DBCAT工具进行数据和表结构的迁移24。这些工具可以实现包括MySQL、Oracle、SQLserver、Postgre、HDFS、Hive、ADS、HBase、TableStore (OTS)、MaxCompute (ODPS)、Hologres、DRDS 、OceanBase等各种异构数据源之间高效的数据同步功能。
常用迁移工具
OceanBase云平台(OB Cloud):这是一个基于多云统一管理的云数据库OceanBase的服务,支持阿里云、腾讯云和AWS,开箱即用,可混合云部署。
OceanBase开发者中心(ODC):这是一个为OceanBase数据库量身打造的企业级数据库开发平台。
OceanBase迁移服务(OMS):这是一个OceanBase数据库一站式数据传输和同步的产品。
OceanBase迁移评估(OMA):这是一个OceanBase提供的数据库迁移评估的产品。
OceanBase导数工具:这是一个基于OceanBase分布式系统的特性的客户端导入导出工具。
OMS迁移应用举例
通过OceanBase迁移服务(OMS)将Oracle数据库迁移到OceanBase步骤:
创建迁移项目:首先,你需要登录到OMS控制台,然后在控制台上选择"创建迁移项目"。在这个步骤中,你需要输入项目的名称,以及源数据库(Oracle)和目标数据库(OceanBase)的详细信息,包括数据库的IP地址、端口、用户名和密码。
设置迁移类型:在创建迁移项目后,你需要选择迁移类型。例如,如果你想要将Oracle数据库的所有数据迁移到OceanBase,那么你应该选择"全量迁移"。如果你只想要迁移最近更改的数据,那么你应该选择"增量迁移"。
选择迁移对象:在设置了迁移类型后,你需要选择要迁移的对象。这些对象可以是数据库中的表、视图等。你可以通过在OMS控制台上选择"添加迁移对象"来完成这个步骤。
配置迁移选项:在选择了迁移对象后,你需要配置一些迁移选项。这些选项包括全量迁移是否允许目标表非空、增量记录保存时间、全量迁移并发参数、全量校验并发参数和字符编码与长度定义选项等。
预检查并启动数据迁移项目:最后,你需要进行预检查并启动数据迁移项目。在预检查环节,OMS会检查数据库用户的读写权限、数据库的网络连接等是否符合要求。全部检查项目均通过后才能启动数据迁移任务。
OB Cloud 连接OceanBase举例
OceanBase云平台(OB Cloud)连接OceanBase数据库的示例步骤:
登录OB Cloud:首先,你需要登录到OB Cloud控制台。如果你还没有OB Cloud账户,你需要先注册一个。
创建OceanBase实例:在OB Cloud控制台上,选择"创建实例"选项。在这个步骤中,你需要输入实例的名称、规格、存储空间等信息。
配置网络和安全组:在创建实例后,你需要配置实例的网络和安全组。这些设置将决定哪些IP地址可以访问你的OceanBase实例。
获取连接信息:在实例创建成功后,你可以在OB Cloud控制台上获取实例的连接信息,包括IP地址和端口号。
使用客户端工具连接OceanBase:最后,你可以使用任何兼容MySQL协议的客户端工具(如MySQL Workbench、DBeaver等)来连接OceanBase数据库。在客户端工具中,输入前面获取的连接信息,以及OceanBase的用户名和密码,就可以开始操作OceanBase数据库了。