PostgreSQL , EDB EPAS PPAS(兼容Oracle) , Oracle 对比(兼容性、特性优劣势) - 企业去O,去IOE

简介: 标签 PostgreSQL , PPAS , EPAS , edb , enterprisedb , Oracle , 兼容性 , 优缺点 背景 EPAS为EDB的PostgreSQL Oracle兼容企业版,基于PostgreSQL社区版本开发,2004年发布了第一个Oracle兼容版,已经在ORACLE兼容性上耕耘了15年。 2018年推出EPAS 11 版本,完成了 Oracle

标签

PostgreSQL , PPAS , EPAS , edb , enterprisedb , Oracle , 兼容性 , 优缺点


背景

EPAS为EDB的PostgreSQL Oracle兼容企业版,基于PostgreSQL社区版本开发,2004年发布了第一个Oracle兼容版,已经在ORACLE兼容性上耕耘了15年。

2018年推出EPAS 11 版本,完成了 Oracle 11g, 12c 认证。

2016年阿里云与EDB合作,推出阿里云RDS PPAS,兼容Oracle。

2018年阿里云与EDB代码级深度合作,即将推出POLARDB O,计算存储分离,云原生Oracle兼容数据库。

PG 、 PPAS 兼容性对比

功能 PPAS PG社区版
Oracle pl/sql 支持 不支持
Oracle pl/sql 自治事务 11以上版本支持 PG 11支持
Oracle 内置 package 26种,440个package func (df dbms) 13种,通过orafce支持兼容。(实际使用体验较弱,因package会结合plsql使用)
自定义 Oracle package 支持 不支持
自定义 Oracle 对象 支持 不支持
Oracle 系统视图 支持 不支持
Oracle 内置函数 大量支持 少量兼容通过orafce插件
Oracle 兼容类型 支持 少量兼容通过orafce插件
Oracle pl/sql 嵌套表 支持 不支持
Oracle pl/sql bulk collect bind 支持 不支持
Oracle sql语法 大部分支持 少部分兼容,其他需修改
Oracle 分区表语法 支持 不支持
Oracle VPD(RLS) 支持 不支持,需修改语法
sql 防火墙 支持 不支持
索引推荐 支持 不支持
资源隔离(Resource manage) 支持 不支持
客户端驱动 oci,proc,spl,jdbc,.net,odbc兼容 不兼容oci,proc
Oracle SQL*Load 支持 不支持,可以使用pgbulkload或copy代替
Oracle 存储过程加密 支持 不支持
Oracle rowid 支持 不支持Oracle rowid 语法(使用ctid或oid代替)
Oracle 迁移评估 支持 支持较弱(ora2pg)
Oracle 转化ddl,全量同步到ppas,pg ADAM ADAM
Oracle 增量同步到ppas,pg ADAM ADAM
Oracle 不兼容SQL,DDL的自动转换 ADAM ADAM
Oracle 兼容性评估,改造工作量评估,自动拆库,风险揭示,ppas优势特性揭示,不兼容DDL/SQL转换,结构,数据迁移,一致性校验,优化,仿真回放,一键迁移 ADAM ADAM

详细兼容性请参考内容PDF

Oracle vs EDB EPAS 技术对比白皮书

EDB EPAS vs Oracle 商业对比白皮书

EDB EPAS 兼容性手册-内置包

EDB EPAS 兼容性手册-sql referencce

EDB EPAS 兼容性手册-开发者手册

PPAS 兼容性需补齐

以下取自 Oracle vs EDB EPAS 技术对比白皮书

1、全局临时表

《PostgreSQL Oracle 兼容性之 - 全局临时表 global temp table》

2、分区表支持:INTERVAL PARTITIONING

3、分区表支持:PARTITIONED INDEXES

4、bitmap索引, 当前使用gin索引代替

5、flashback query

6、flashback table, database and transaction query

7、RAC

8、in-memory database

9、data masking

10、database vault

11、xml_db

12、高级压缩

13、TRANSPORTABLE CROSS-PLATFORM TABLE SPACES

14、ONLINE REORGANIZATION, 改语法实现(readme)

15、merge 语法, upsert代替

Oracle 、 PPAS 对比

PPAS 优势特性(已列举43项优势特性)

功能 Oracle PPAS
多模-时空 支持 支持 (ganos, postgis, pgrouting, pgpointcloud)
多模-图像处理 不支持 支持 imgsmlr
多模-JSON 支持 支持 (带索引加速)
多模-全文检索 不支持 支持(分词、索引、自定义分词、rank等 带索引加速)实时BUILD
多模-文本相似 不支持 支持(带索引加速)
多模-向量相似计算 不支持 支持 (cube插件)
多模-图谱数据处理 支持 支持
多模-多维 不支持 支持 (cube插件)
多模-路由 不支持 支持 (pgrouting插件)
多模-流计算 不支持 支持 (pipelinedb插件)
性能-JIT 不支持 支持
性能-向量计算 不支持 支持
性能-GPU加速 不支持 支持 (ganos, pg_strom插件)
索引-分区索引 支持 间接支持 (partial index)
索引-分区表全局索引 支持 不支持
索引-btree 支持 支持
索引-hash 支持 支持
索引-gin 不支持 支持(倒排索引)
索引-gist 支持 支持
索引-spgist 不支持 支持
索引-brin 支持(仅Oracle一体机) 支持
索引-bloom 不支持 支持
索引-rum 不支持 支持
索引-zombodb 不支持 支持
索引-表达式索引 不支持 支持
索引-bitmap 支持 不支持 (使用gin代替)
索引-部分索引 不支持 支持
高级功能-机器学习 不支持 支持 (madlib)
高级功能-sharding 支持 支持 (citus)
高级功能-ddl事务 不支持 支持
高级功能-异构外部表 支持不完全 几乎支持任意外部数据源(FDW方式)
内置编程语言-plpgsql 不支持 支持
内置编程语言-plpython 不支持 支持
内置编程语言-plperl 不支持 支持
内置编程语言-pllua 不支持 支持
内置编程语言-pljava 不支持 支持
内置编程语言-pltcl 不支持 支持
高级类型-数组 不支持 支持
高级类型-range 不支持 支持
高级类型-xml 不支持 支持
高级类型-网络 不支持 支持
高级类型-大对象 支持 支持
高级类型-字节流 支持 支持
高级类型-比特流 不支持 支持
高级类型-图像 不支持 支持
高级类型-向量 不支持 支持
复制-物理流 支持 支持
复制-逻辑流 支持 支持
复制-任意多副本 不支持 支持(quorum based replication)
复制-内部订阅 不支持 支持
优化器-动态优化 支持 支持 (通过pg_aqo插件)
优化器-join遗传算法 不支持 支持
优化器-hash join 支持 支持
优化器-merge join 支持 支持
优化器-nestloop join 支持 支持
优化器-游标 支持 支持
并行-scan 支持 支持
并行-index scan 支持 支持
并行-index only scan 支持 支持
并行-bitmap scan ? 支持
并行-filter 支持 支持
并行-sort 支持 支持
并行-agg 支持 支持
并行-write (create table, select into, create index) ? 支持
并行-join 支持 支持
安全-存储过程加密 支持 支持
安全-SQL防火墙 支持 支持
安全-VPD 支持 支持
安全-审计 支持 支持
安全-数据库ACL 支持 支持
安全-认证方法 少量 大量(md5,peer,ident,trust,reject,password,ldap,ad,gssapi,radius,pam,bsd,sspi)
扩展-过程语言扩展 不支持 支持
扩展-FDW 不支持 支持
扩展-采样 不支持 支持
扩展-自定义扫描 不支持 支持
扩展-自定义REDO 不支持 支持
扩展-自定义索引方法 不支持 支持
扩展-自定义类型、OP、UDF 支持 支持
衍生产品-derived db 无 数不胜数(https://wiki.postgresql.org/wiki/PostgreSQL_derived_databases)

详细兼容性请参考内容PDF

1、Oracle vs EDB EPAS 技术对比白皮书

2、EDB EPAS vs Oracle 商业对比白皮书

3、EDB EPAS 兼容性手册-内置包

4、EDB EPAS 兼容性手册-sql referencce

5、EDB EPAS 兼容性手册-开发者手册

6、Oracle 兼容性评估,改造工作量评估,自动拆库,风险揭示,ppas优势特性揭示,不兼容DDL/SQL转换,结构,数据迁移,一致性校验,优化,仿真回放,一键迁移

小结

1、覆盖SQL语法(深度兼容,例如connect by,分区表。)、数据类型、函数、包(支持多达26个package,440种方法)、索引类型、操作符、样式、自定义pl/sql 存储过程、函数、包、客户端驱动(OCI)、客户端编程(Pro*C)。

2、兼容4320个ORACLE独有对象(覆盖类型、包、函数、存储过程、视图、同义词、系统表、序列、动态视图等)。

3、兼容数十项ORACLE高级功能(包括VPD,分区表、物化视图、同义词、DBLINK、高级队列、JOB、PROFILE、AWR、PDB、策略、SQL防火墙、OCI驱动、Pro*C等)。

阿里云PPAS(EDB EPAS)在Oracle兼容性,高级功能方面有非常强的优势,是企业平滑去O的首选。

 

免费领取阿里云RDS PostgreSQL实例、ECS虚拟机

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
Oracle 关系型数据库 数据库
【赵渝强老师】在PostgreSQL中访问Oracle
本文介绍了如何在PostgreSQL中使用oracle_fdw扩展访问Oracle数据库数据。首先需从Oracle官网下载三个Instance Client安装包并解压,设置Oracle环境变量。接着从GitHub下载oracle_fdw扩展,配置pg_config环境变量后编译安装。之后启动PostgreSQL服务器,在数据库中创建oracle_fdw扩展及外部数据库服务,建立用户映射。最后通过创建外部表实现对Oracle数据的访问。文末附有具体操作步骤与示例代码。
1518 6
【赵渝强老师】在PostgreSQL中访问Oracle
|
SQL 存储 Oracle
【YashanDB观点】论Oracle兼容性,我们需要做什么
我们经常发现,部分国产数据库声称与 Oracle兼容性高达90%,但在实际迁移过程中,仍需要频繁地修改业务应用的代码。为何实现与Oracle高兼容度的数据库产品如此困难?其中一个重要原因是Oracle兼容性不仅是模仿,而是一个非常复杂和工程量庞大的逆向工程。其技术实现的复杂性以及多如牛毛的细节,足以让多数“年轻”的数据库团队望洋兴叹。YashanDB作为一款从核心理论到关键系统均为原创的数据库产品,从构建初期就具备了技术优势,在Oracle兼容性实现上,敢于亮剑并充分发挥工匠精神,不断打磨,努力构筑一个真正形神兼备的数据库产品。以下将从YashanDB SQL引擎技术、Oracle兼容性的开发
|
SQL 存储 Oracle
【YashanDB观点】论Oracle兼容性,我们需要做什么
Oracle兼容性是目前国产数据库的关键任务之一,其直接影响到商业迁移的成本和竞争力。
408 8
|
SQL Oracle 关系型数据库
|
Oracle NoSQL 关系型数据库
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
3585 3
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
1004 93
|
12月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】使用NetManager创建Oracle数据库的监听器
Oracle NetManager是数据库网络配置工具,用于创建监听器、配置服务命名与网络连接,支持多数据库共享监听,确保客户端与服务器通信顺畅。
532 0
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
757 8
|
SQL Oracle 关系型数据库
比较MySQL和Oracle数据库系统,特别是在进行分页查询的方法上的不同
两者的性能差异将取决于数据量大小、索引优化、查询设计以及具体版本的数据库服务器。考虑硬件资源、数据库设计和具体需求对于实现优化的分页查询至关重要。开发者和数据库管理员需要根据自身使用的具体数据库系统版本和环境,选择最合适的分页机制,并进行必要的性能调优来满足应用需求。
672 11

热门文章

最新文章

推荐镜像

更多