Re: Oracle vs. PostgreSQL - a comment

From: Stefan Knecht <knecht(dot)stefan(at)gmail(dot)com>
To: Paul Förster <paul(dot)foerster(at)gmail(dot)com>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: Oracle vs. PostgreSQL - a comment
Date: 2020-06-01 05:36:14
Message-ID: CAP50yQ9E-avUKizyzZda=9QOPU=rQhaa9OuhG3R4x=AA-Y+6nw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Okay I'll bite.

Comparing Postgres with Oracle is a bit like comparing a rubber duck you
might buy your three year old, with a 300000 ton super tanker.

Do they both float? Yeah, but that's about the only similarity.

The rubber duck barely tells you how and why it floats, but the super
tanker is packed with instrumentation, statistics, events and trace
functionality down to every last bit of activity.

Of course, that comes at a cost.

Oracle is also the single most feature-rich database out there - the
feature set of Postgres isn't even 1% of what Oracle has.

It's not a fair comparison.

Postgres has its place, it's free, it works well.

But you can't compare it to an RDBMS like Oracle. Not in terms of size, nor
the time it takes to install (and your 2 hours are definitely on the high
end - it shouldn't take much more than half an hour).

In fact, you likely want to limit the feature set you are installing with
Oracle - both to keep it as lean as possible, to reduce bugs (yes it
contains many millions of lines of code more than Postgres, and it's
written by humans, it will obviously have more bugs), and also to reduce
the time it takes to install, upgrade and patch it. There are ways to do
that.

That's my THB 0.02

On Sat, May 30, 2020 at 7:21 PM Paul Förster <paul(dot)foerster(at)gmail(dot)com>
wrote:

> Hi,
>
> I know, this list is not for this, but I just couldn't resist. Please
> forgive me.
>
> Being an Oracle DBA for two decades now (back then starting with Oracle
> 8.0.5) and only doing PostgreSQL since version 10.3, I feel compelled to
> share some of my experiences with both.
>
> Quick facts:
>
> All installations were performed on the same host except for Oracle Data
> Guard and Patroni with etcd, which both require at least three nodes, or an
> odd number >2 respectively) to establish a democracy to determine the
> master/primary and replica/standby databases. However, all machines have
> the same hardware and operating system:
>
> OS: openSUSE Leap 15.1 (server setup, not desktop)
> CPU: Intel i7-7700T CPU
> RAM: 32 GB
> Disk Hardware: SSD
>
> Also, Oracle requires 161 additional packages to be installed, many of
> which are 32-bit packages, for a supposedly 64-bit only software! This
> results in 150 MB additional disk space needed and swamps the system with
> 32-bit packages!
>
> PostgreSQL only requires a few packages to be installed depending on the
> options one chooses to compile the source with. Anyway, none of these
> packages require a 32-bit version!
>
> Size of installation:
>
> Software:
> $ du -sh /data/postgres/12.3 /data/oracle/product/19.6
> 62M /data/postgres/12.3
> 8.5G /data/oracle/product/19.6
> Databases:
> $ du -sh /data/oradb/*
> 3.3G /data/oradb/cdb01 # Oracle Container w/ 1 PDB
> 1.8G /data/oradb/sdb01 # Oracle stand alone database
> $ du -sh /data/pgdb/sdb01
> 659M /data/pgdb/sdb01 # PostgreSQL 12.3 database cluster
>
> All databases are a clean setup, no schemas, users, tables, data, etc.
> Just an empty base.
>
> Installation:
> Oracle 19c: ~2h
> unzip to ORACLE_HOME
> runInstaller
> unzip newest OPatch p6880880_200000_Linux-x86-64
> apply p30797938_190000_Linux-x86-64 (19.6.1)
> PostgreSQL 12.3 compiled from source: ~3m30s
> bunzip postgresql-12.3.tar.bz2 to PGHOME
> make install-world
>
> Create database:
> Oracle:
> create stand alone database: ~30m
> create container database (cdb$root): ~47m
> create pluggable database (pdb): ~26s
> Memory to run a database reasonably well:
> at least 1 GB SGA for a stand alone database
> at least 4 GB SGA for a container database
> PostgreSQL:
> initdb: <1s
> create database: <200ms
> Memory: 128 MB db_buffers
>
> Start/stop database:
> Oracle:
> startup (standard, 1 GB SGA): ~15s
> shutdown immediate (standard, 1 GB SGA): ~21s
> startup (container, 4 GB SGA): ~16s
> shutdown immediate (container, 4 GB SGA): ~23s
> PostgreSQL:
> pg_ctl start: 0.1s
> pg_ctl stop: 0.2s
>
> Other discoveries/experiences:
> Oracle:
> Set up Data Guard (2 nodes) with observer (3. node): ~4h
> Applying a PSU or RU often requires downtime of 60m-90m.
> Migrating a major version often requires downtime of 60m-90m.
> Migrating a new major version requires a lot of work in advance.
> Switching Data Guard takes ~1m.
> PostgreSQL:
> Set up Patroni (2 nodes) with etcd (3 nodes): ~30m
> Applying a new minor version requires downtime of <2s.
> Migrating a new major version requires downtime of <20s.
> Migrating a new major version requires a few minutes work in
> advance.
> Switching Patroni takes ~1s.
>
> Oracle has some good concepts. I like the conecpt of separate UNDO and
> TEMP tablespaces and not having to care about vacuuming. Also, I like the
> idea of global container/cluster-wide views such as CDB_TABLES, etc., a
> thing which I definitely and seriously miss about PostgreSQL.
>
> What I especially hate about Oracle (despite the license costs, of course)
> is that it has so many bugs, bugs and even more bugs and one keeps on
> searching for patches all day, generating lot of downtime. Applying a PSU
> or RU is mostly not enough.
>
> So bottom line, PostgreSQL beats Oracle by far in my opinion, at least as
> far as installing it and sizes are concerned.
>
> So, guess what I think is wrong with Oracle after 20 years of working with
> it...
>
> Sorry for the rant. ;-)
>
> Cheers,
> Paul
>
>

--
//
zztat - The Next-Gen Oracle Performance Monitoring and Reaction Framework!
Visit us at zztat.net | @zztat_oracle | fb.me/zztat | zztat.net/blog/

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Andrus 2020-06-01 05:50:38 Re: How to start slave after pg_basebackup. Why min_wal_size and wal_keep_segments are duplicated
Previous Message Adrian Klaver 2020-06-01 00:29:05 Re: How to start slave after pg_basebackup. Why min_wal_size and wal_keep_segments are duplicated