我成为Oracle DBA已有二十年了(那时从Oracle 8.0.5开始),并且从10.3版开始仅使用PostgreSQL,我感到不得不与两者分享我的一些经验。
Oracle有一些好的概念。我喜欢单独的UNDO和TEMP表空间的概念,而不必关心清理。另外,我喜欢全局容器/集群范围的视图(例如CDB_TABLES等)的想法,我肯定会非常认真地想念PostgreSQL。
我特别讨厌Oracle(当然,尽管需要花费许可费用)是它有如此多的bug,bug甚至更多的bug,而且一整天都在不断寻找补丁程序,从而导致大量的停机时间。仅使用PSU或RU远远不够。
因此,最重要的是,我认为PostgreSQL至少在安装和大小方面击败了Oracle。
因此,猜想我在使用Oracle 20年后的错是什么...
下面是安装比较:
所有安装都在同一主机上执行,除了Oracle Data Guard和Patroni带有etcd,它们都至少需要三个节点,或者分别需要一个奇数(大于2)才能确定主数据库/主数据库和副本数据库/备用数据库。但是,所有机器都具有相同的硬件和操作系统:
操作系统:openSUSE Leap 15.1(服务器设置,而不是台式机) |
而且,对于所谓的仅64位软件,Oracle需要安装161个附加软件包,其中许多是32位软件包!这将导致需要150 MB的额外磁盘空间,并用32位软件包淹没系统!
PostgreSQL只需要安装几个软件包,这取决于一个选择用来编译源代码的选项。无论如何,这些软件包都不需要32位版本!
PostgreSQL安装大小:
软件: |
所有数据库都是干净的设置,没有模式,用户,表,数据等。只是一个空壳。
Oracle安装:
Oracle 19c: 〜2h |
创建数据库:
Oracle: |
启动/停止数据库:
Oracle: |
其他发现/经验:
Oracle: |
回复:我也曾与Oracle合作20年,主要是作为一名开发人员,但也有一些DBA工作。除非我不知道它们的“附加组件”,否则我不会遇到您似乎遇到的错误。坚持使用基本的RDBMS,我发现它非常可靠。但是,我更喜欢Postgres。主要的原因是,使用Oracle,你真的需要选择一条道路或其他-无论是开发商或者是DBA。在引入DAtaGuard,GoldenGAte等功能后,尤其如此。Oracle 比Postgres 承担了更多的管理工作,并且掌握了很多知识。
oracle的安装过程非常糟糕。除了所有的废话外,您通常还会在脚本中遇到错误。更糟糕的是,其中一些错误已经存在了20年,并且只是DBA处理的“已知”问题。他们的文档站点也很糟糕。
作为开发人员,只要您具备基本的数据库功能(即SQL和PL / SQL),并避免使用它们的扩展/附加组件,例如它们的各种pub / sub,规则引擎,PSP或他们通过购买公司并整合获得的任何东西,'它,非常好。我认为它们是目前最好的锁定模型之一。它们处理索引和更新的方式也比postgres快得多,并且您不必为性能而担心查询的结构。
不过,我更喜欢Postgres。主要原因是,尽管我可能需要考虑如何进一步构造查询,更新和索引,但总的来说,它会妨碍我的工作并满足我的要求-提供可靠的数据存储,供我使用和无需花费大量时间从事DBA任务即可完成工作。更新很容易,基本架构也很容易。
从oracle迁移到postgres时,最大的挑战是认识到它们是完全不同的,尽管它们都可以提供兼容的SQL实现,但相似之处到此为止。如果我在其他人负责所有DBA事务的环境中,那么Oracle很高兴与您合作。但是,只有当您在大型的,通常是官僚的环境中工作时,您才倾向于处于这种情况下,这往往会以其他方式损害整个体验。如果您很不幸还使用了Oracle的任何“增值”扩展,开发框架,应用程序层等,那真是太恐怖了,让人麻木了。
除此之外,Oracle许可绝对是一场噩梦。除了费用外,其复杂性令人难以置信,几乎不可能确切地知道您将在12、24个月或更长时间内支付的费用。- 蒂姆·克罗斯