Oracle与PostgreSQL-评论

2020-05-30 23:17:56

我知道,这份清单不是为了这个,但我就是忍不住。请原谅我。

作为一名Oracle DBA已经有20年了(当时从Oracle 8.0.5开始),并且从10.3版开始才开始使用PostgreSQL,我觉得有必要与他们分享我的一些经验。

除Oracle Data Guard和Patroni with etcd之外,所有安装都在同一台主机上执行,这两种安装都需要至少三个节点(或分别为奇数个>;2)才能建立民主,以确定主/主数据库和副本/备用数据库。但是,所有计算机都具有相同的硬件和操作系统:

操作系统:openSUSE Leap 15.1(服务器设置,非台式机)CPU:英特尔i7-7700T CPU RAM:32 GB磁盘硬件:固态硬盘。

此外,Oracle还需要安装161个额外的软件包,其中许多是32位软件包,用于假定仅限64位的软件!这会导致需要150MB的额外磁盘空间,并让32位软件包使系统不堪重负!

PostgreSQL只需要安装几个软件包,具体取决于您选择用来编译源代码的选项。无论如何,这些软件包都不需要32位版本!

软件:$du-sh/data/postgres/12.3/data/oracle/product/19.6 62M/data/postgres/12.3 8.5G/data/oracle/product/19.6数据库:$du-sh/data/oradb/*3.3G/data/oradb/cdb01#Oracle Container w/1 PDB 1.8G/data/oradb/sdb01#Oracle独立数据库$du-sh/data/pgdb/sdb01 6。

所有数据库都是干净的设置,没有模式、用户、表、数据等,只是一个空库。

安装:ORACLE 19c:~2h解压缩到ORACLE_HOME运行时安装程序解压缩最新的OPatch p6880880_200000_linux-x86-64应用p307938_190000_linux-x86-64(19.6.1)PostgreSQL12.3从源编译:~3m30s bunzip postgresql-12.3.tar.bz2 to PGHOME make install-world。

CREATE DATABASE:ORACLE:创建独立数据库:~30M CREATE CONTAINER DATABASE(CDB$ROOT):~47M CREATE PARGABLE DATABASE(PDB):~26S内存以相当好地运行数据库:独立数据库至少1 GB SGA对于容器数据库PostgreSQL:initdb:<;1s CREATE DATABASE:<;200ms内存:128 MB db_Buffers。

启动/停止数据库:Oracle:启动(标准,1 GB SGA):约15s立即关闭(标准,1 GB SGA):~21s启动(容器,4 GB SGA):~16s立即关闭(容器,4 GB SGA):~23s PostgreSQL:pg_ctl start:0.1s pg_ctl stop:0.2s其他发现/体验:Oracle:设置Data Guard(2个节点)与观察者(3.节点):~4h应用PSU。迁移主要版本通常需要60M-90M的停机时间。迁移新的主要版本需要提前做大量工作。交换Data Guard需要大约1M的时间。PostgreSQL:使用etcd(3个节点)设置Patroni(2个节点):~30M应用新的次要版本需要停机<;2s。迁移新的主要版本需要停机<;20秒。迁移新的主要版本需要提前几分钟的工作。转换守护神需要~1秒。

甲骨文有一些很好的概念。我喜欢单独的撤销和临时表空间的概念,而不必关心清理。此外,我喜欢全局容器/集群范围视图(如CDB_TABLES等)的想法,这是我对PostgreSQL绝对且严重怀念的一件事。

我特别讨厌Oracle(当然,尽管有许可证费用),因为它有如此多的错误,甚至更多的错误,其中一个整天都在搜索补丁,产生了大量的停机时间。应用PSU或RU通常是不够的。

所以归根结底,在我看来,PostgreSQL远远超过了Oracle,至少在安装和大小方面是这样。

那么,猜猜在与甲骨文合作了20年之后,我认为甲骨文出了什么问题……