近期又接触到局部兼容性上班,特搜集整顿了局部国产数据库的兼容状况,全体觉得国际产品这局部做的差异还是蛮大的。本文将从一张对比表入手,谈谈国际产品的兼容性疑问,并繁难引见下各家的兼容性状况。
1. 经常出现国产数据库兼容性一览
让咱们先从一张《数据库库兼容性一览表》开局,谈谈各家兼容性。
在兼容对象上,大局部产品都将Oracle、MySQL、PostgreSQL作为兼容对象,局部产品还将如DB2、SQL Server等作为兼容对象。在成功上有些产品是允许多种形式,可以在初始化时启动选用,这里用[MultiDB]启动区分。
兼容档次,是指产品在那个档次提供的兼容才干,这里分为多种状况。
数据库兼容性蕴含的维度很多,为了繁难用户了解数据库的兼容才干,很多产品提供了兼容评价。在成功上有些提供了工具,有些则经过文档启动说明。
除了对象、语法等兼容外,能否能从源端将数据很繁难地迁徙、同步到目的端也很关键。这里列出产品能否提供的异构数据库的迁徙才干。
协定的兼容,可以提供一种很友好的治理、经常使用体验,不用扭转原有衔接方式的状况下就可以经常使用新的一种数据库。特地是针对高低游生态工具而言,协定兼容有助于极速上手经常使用新数据库;例如经常出现的如 Navicat、DBeaver 等工具可以极速衔接访问数据库或许如 MySQL、PostgreSQL 的命令行工具也如此。
数据库系统存储和处置数据时,不同数据库治理系统或许对数据类型的允许存在差异,这就须要思考数据类型兼容性。数据类型兼容性关键触及以下几个方面:
所以数据类型兼容性在数据库兼容性评价中具有关键的意义,须要综合思考数据完整性、查问效率和运行开发难度等起因,以确保数据在不同数据库治理系统之间的兼容性和分歧性。
字符集是一种用来示意不同言语和字符的编码规范。在数据库中,字符集选择了数据如何存储和显示。不同的数据库治理系统允许不同的字符集,例如MySQL允许utf8、utf8mb4等字符集,而Oracle允许AL32UTF8、AL16UTF16等字符集。在数据库交流环节中启动数据库迁徙或数据交流的时刻,字符集兼容性就显得十分关键。当要将数据从一个数据库迁徙到另一个数据库时,须要确保数据的字符集不会失落或损坏,务必留意字符集的兼容性,以确保数据能够正确地存储和显示。数据库厂商应明白自己兼容的数据库类型,以及如何设置字符集,以繁难用户选用和经常使用。
虽然 SQL 是一种规范化的查问言语,但实践上不同的数据库成功了自己的 SQL 语法裁减和特性,造成其之间的 SQL 语法存在必定的差异。在启动数据库交流环节中,跨数据库的开发、迁徙和数据交互等环节,由于不同数据库之间 SQL 语法的差异,会间接影响客户的决策和名目周期。各数据库厂商应在兼容性局部尽或许的细化 SQL 语法的兼容性水平,以便研发和运维治理人员做综合的评价
数据库对象的兼容性在数据库交流或迁徙中起着至关关键的作用。当须要将一个数据库系统交流成另一个数据库系统时,数据库对象的兼容性可以影响到交流环节的顺利启动以及数据的完整性和准确性。以下是数据库对象兼容性在数据库交流中的作用:
数据库环节化言语是一种用于编写存储环节和触发器等数据库对象的编程言语。它是针对特定数据库治理系统而设计的,以允许在数据库中口头复杂逻辑和业务规定的编程需求。经过数据库环节化言语,用户可以在数据库中定义和口头一系列的操作和逻辑,成功对数据的处置和治理。在数据库交流环节中,环节化言语的关键性关键体如今数据转换、业务逻辑成功、数据分歧性和完整性、性能优化以及数据迁徙逻辑控制等方面。经过正当地经常使用环节化言语,数据库交流上班可以更有效地启动,同时保证数据的完整性和业务规定的成功。
数据库内置函数是数据库提供的一组用于处置数据和口头特定操作的函数。这些内置函数可以用于查问、操作和处置数据库中的数据,简化开发和提高查问效率。不同的数据库系统允许不同的内置函数,通常包括字符串函数、数值函数、日期函数、聚合函数等。同时数据库内置函数的经常使用可以简化数据处置环节,缩小手动编写复杂的逻辑代码的上班量,提高开发效率和代码的可读性。在编写SQL查问语句或存储环节时,正当地经常使用数据库内置函数能够更高效地成功各种数据处置和操作。假设数据库交流后,原本经常使用的内置函数在新的数据库中不被允许或许配置有所扭转,就会造成原有的数据库操作无法反常启动,甚至或许会造成数据失落或失误。因此,在启动数据库交流时,须要细心评价新数据库对内置函数的允许状况,确保原有的数据库操作能够在新数据库中反常运转。假设存在兼容性疑问,或许须要从新设计数据库操作,或许寻觅代替的内置函数来成功相反的配置。保证数据库内置函数的兼容性关于保证数据库操作的反常运转和数据的完整性至关关键。
数据库系统视图是数据库系统中的一种虚构表,它是经过查问一张或多张基本表生成的视图。这些视图可以协助用户简化复杂的查问操作,暗藏数据的复杂性,提供不同档次的数据访问权限,以及提供数据安保性。兼容数据库的系统视图可以有效地降低数据库交流或更新环节中的危险,保证原有数据和运行的反常运转。
经过优化器的配置,数据库可以依据查问的复杂度和特点生成最优化的口头方案,从而提高查问性能,降低系统资源的消耗,优化数据库系统全体的性能体现。经过确保数据库优化器配置的兼容性,可以有效降低数据库交流或更新带来的危险,并保证系统的性能和效率获取常年维持和优化。
数据库安保特性是数据库系统中用于包全数据安保的一系列配置和措施。这些特性旨在防止未经授权的访问、数据暴露、数据损坏和其余安保要挟,确保数据库系统的完整性、可用性和隐秘性。经常出现的数据库安保特性:访问控制、数据加密、审计和监控、数据完整性、数据备份和复原、数据脱敏、意外检测和防范。兼容原数据库的安保特性可以协助组织顺利迁徙或更新数据库系统,同时坚持数据的安保性和完整性。在启动数据库系统交流或更新之前,倡导对数据库安保特性启动细心评价和布局,确保数据库系统在安保方面的兼容性获取充沛思考。
数据库生态工具是指与数据库系统相关的一系列软件和工具,用于治理、监控、优化和裁减数据库系统的配置和性能。这些工具涵盖了数据库开发、运维、安保、备份复原、性能调优等不同畛域,旨在协助数据库治理员和开发人员更好地治理和应用数据库系统。兼容原有数据库的生态工具,可以大大降低用户的学习老本,复用原有生态工具,可以缩小用户在数据库生态方面的投入,降低用户老本。
2. 各家数据库兼容性才干说明
OceanBase 是在租户级别提供对数据库的兼容才干,即在一个系统中可同时允许 MySQL 形式和 Oracle 形式两种形式的租户。用户在创立租户时,可选用创立 MySQL 兼容形式的租户或 Oracle 兼容形式的租户,租户的兼容形式一经确定就无法更改,一切数据类型、SQL 配置、视图等相应地与 MySQL 数据库或 Oracle 数据库坚持分歧。
OceanBase 数据库从 V2.x.x 版本开局允许 Oracle 兼容形式。Oracle 形式目前能够允许绝大局部的 Oracle 语法和环节性言语配置,可以做到大局部的 Oracle 业务启动大批修正后的智能迁徙。OceanBase 数据库在数据类型、SQL 配置和数据库对象等基本配置上与 Oracle 数据库兼容。在环节化程序文语(Procedural Language,PL)方面,曾经基天性够兼容所有的研发配置。在数据库安保、备份复原、高可用和优化器等初级特性上 OceanBase 数据库的兼容性也十分好,而且有些特性还要优于 Oracle 数据库。这象征着在从 Oracle 数据库迁徙到 OceanBase 数据库的环节中,用户不须要消耗少量的期间去学习新常识,即可流利地成功从 Oracle 数据库到 OceanBase 数据库的迁徙。
MySQL 形式是为降低 MySQL 数据库迁徙至 OceanBase 数据库所引发的业务系统改形老本,同时使业务数据库设计人员、开发人员、数据库治理员等可复用积攒的 MySQL 数据库技术常识阅历,并能极速上手 OceanBase 数据库而允许的一种租户类型配置。OceanBase 数据库的 MySQL 形式兼容 MySQL 5.7 的绝大局部配置和语法,兼容 MySQL 5.7 版本的全量以及 8.0 版本的局部 JSON 函数,基于 MySQL 的运行能够平滑迁徙。
OceanBase 迁徙评价工具(OceanBase Migration Assessment,OMA)是 OceanBase 提供的数据库迁徙评价的产品,为数据迁徙提供精准的兼容性评价、高效的性能评价以及运行逻辑改造倡导。OMA 允许评价 Oracle、DB2 LUW、PostgreSQL 等多种数据库与 OceanBase 的兼容状况,提供画像剖析和智能转换方案;允许运行负载回放配置,协助客户预知迁徙后或许的性能危险并提供优化方案;OMA 还允许评价 C、Java 业务代码以及驱动的兼容性以助力用户高效率、低老本迁徙至OceanBase。
OceanBase 数据迁徙工具(OceanBase Migration Service,OMS)是 OceanBase 数据库一站式数据传输和同步的产品。它允许多种相关型数据库、信息队列与 OceanBase 数据库之间的数据复制,是集数据迁徙、实时数据同步和增量数据订阅于一体的数据传输服务,OMS 协助您低危险、低老本、高效率的成功 OceanBase 的数据流通,助力构建安保、稳固、高效的数据复制架构。
GoldenDB 数据库提供了对 Oracle、MySQL 的兼容才干。
GoldenDB 散布式数据库兼容 SQL92、99、2003SQL规范,同时兼容罕用 Oracle 语法,其允许的语法类别片面笼罩数据库语法类别,包括DDL、DML、DQL等等。同时,GoldenDB对跨节点的复杂 SQL 操作允许片面,使得业务人员的开发上班量大幅降低,无需思考少量的SQL改造。
GoldenDB 散布式数据库齐全兼容 MySQL 语法,兼容SQL92、99、2003SQL规范,其允许的语法类别片面笼罩数据库语法类别,包括DDL、DML、DQL等等。
GoldenDB数据迁徙工具SLOTH,成功 GoldenDB 数据库与GoldenDB(包括不同的分片数量场景)、异构数据库(Oracle、MySQL等)之间的全量数据、增量数据的迁徙和同步,同时提供迁徙环节中的数据比对配置。
GaussDB 是华为自主翻新研发的散布式相关型数据库。GaussDB 可以在创立数据库时,经过参数 DBCOMPATIBILITY 指定兼容数据库的类型,允许 A、B、C和PG四种兼容形式,区分示意兼容 Oracle、MySQL、Teradata(TD)和PostgreSQL。然而C目前曾经丢弃允许,因此罕用的取值是A、B、PG。不同兼容形式下的语法行为存在必定差异,默以为A兼容形式。此外,为了适配 MySQL 语句及pymysql、JDBC等多种衔接方式,GaussDB新增了 M-Compatibility 协定,简称为M-Compatibility兼容形式。
UGO,全称为数据库和运行迁徙 UGO,是专一于异构数据库结构迁徙的专业服务。可将源数据库中的DDL、DML和DCL一键智能转换为华为云GaussDB/RDS的SQL语法,经过数据库评价、对象迁徙两大**配置和智能化语法转换,提早识别或许存在的改造上班、提高转化率、最大化降低用户数据库迁徙老本。在异构数据库迁徙场景中,UGO成功结构迁徙和语法转化,数据复制服务 DRS成功异构数据库数据在线搬迁,可以构成完整的平滑异构数据库端到端搬迁方案。
TDSQL,是腾讯云提供的一个数据库品牌,蕴含多个产品。依照其生态兼容,关键是两款 TDSQL-MySQL、TDSQL-PG。
TDSQL MySQL版(TDSQL for MySQL)是部署在腾讯云上的一种允许智能水平拆分、Shared Nothing 架构的散布式数据库。TDSQL-MySQL 高度兼容 MySQL 的协定和语法,但由于架构的差异,关于 SQL 有必定的限制。
TDSQL PostgreSQL版(TDSQL for PostgreSQL)是腾讯自主研发的散布式数据库系统。TDSQL PostgreSQL版 集高裁减性、SQL 高兼容度、完整的散布式事务允许、多级容灾及多维度资源隔离等配置于一身,驳回无共享的集群架构,提供容灾、备份、复原、监控、安保、审计等全套处置方案,实用于GB级 - PB级的海量 HTAP 场景。TDSQL PostgreSQL版 齐全兼容 PostgreSQL。
TDSQL PostgreSQL版 正式孵化出 Oracle 兼容版,即 TDSQL PostgreSQL版(Oracle 兼容版),该版本高度兼容 Oracle 语法,蕴含数据类型与运算符、分区表、系统内置包、系统视图、函数、存储环节、PL/SQL 等语法的兼容。
PolarDB,是阿里云提供的一个数据库品牌,蕴含多个产品。依照其生态兼容,关键是两款 PolarDB-MySQL、PolarDB-PG。这里吐槽一下,PolarDB 产品在文档方面还需增强,关于兼容性很多内容都查不到。
PolarDB MySQL 版是阿里巴巴自研的云原生HTAP数据库。PolarDB MySQL版100%兼容原生MySQL的多个版本,包括MySQL 5.6、MySQL 5.7和MySQL 8.0。PolarDB MySQL版的企业版基于云原生架构、计算存储分别、软配件一体化设计,为用户提供具有超高弹性和性能、高可用和高牢靠保证、高性价比的数据库服务。
PolarDB-PG 是阿里巴巴自研的新一代云原生数据库,在存储计算分别架构下,应用了软配件结合的长处,为用户提供具有极致弹性、高性能、海量存储、安保牢靠的数据库服务。PolarDB 100%兼容PostgreSQL 11,PostgreSQL 14,高度兼容Oracle。
PolarDB是阿里巴巴自研的新一代云原生数据库,在存储计算分别架构下,应用了软配件结合的长处,为用户提供具有极致弹性、高性能、海量存储、安保牢靠的数据库服务。高度兼容Oracle。
异构数据库迁徙ADAM(Advanced> 起源: 韩锋频道