I would disagree it's harder. It's trepidatious, but that's not the same.
We're in the middle of taking all our internal apps talking to a single huge Oracle database, and giving each app its own cluster of two PG boxes. Nothing has to play nice with anything else - that alone suddenly makes life ridiculously easier.
We have expensive paid Oracle support, who do PG as a sideline. But we've yet to have occasion to call them about PG.
Oracle still runs circles around postgres for high availability, backups and management tools.
However most big companies are slowly migrating all their small Oracle instances to pg.
I happen to work in one of those companies who's had enough with Oracle's outrageous pricing schemes and audit threats.
We're moving from Oracle to Postgres. From three huge Oracle instances to, pretty much, a cloud of Postgres boxes, a pair per application. Because we can.
Oracle is a superlative database, but it's the polar opposite of agile. This turns out to be important.
Of course the issue for many companies is that they hit a size and usage of Oracle that moving off becomes a herculean effort. There's no direct replacement for the way people use RAC for example, which means changing the way you approach certain HA requirements. Add to that Oracle PLSQL is not fully portable to Postgres PGSQL. They're close enough that you think it's a simple task, but it's still significant.
Since many people have many things built on top of a single DB, it also generally means a single massive switch that will take a long time and is difficult to test piecemeal.
I'm only saying this so that people go into a switch with their eyes wide open (though, I'm sure you would anyway).
Search YouTube, for "Yandex oracle to PostgreSQL". You would be shocked at how the enterprise space is just sick to death of oracle and once they actually TRY moving off it to PG how much insanely easier, cheaper, and better performance it is for most workloads that people thought they HAD to have oracle for.
If you start out minimizing proprietary features, its a lot easier to do. Oracle is filled with proprietary features so I'm not surprised it was a lot of work. My application is pretty simple and I converted from mysql to postgres in an afternoon.
There are a lot of large third party enterprise applications that only support Oracle. I know several places that I deal with that are still on Oracle, not because replacing Oracle with Postgres is particularly hard per se. but because replacing everything that talks to the Oracle database is too hard.
Longtime Oracle dev/dba. I have been using PG now for over 6 years, and it is my #1 choice for new projects if possible. Oracle beats it in instrumentation and tooling and to me the Oracle RDBMS documentation is more thorough. The implementation of MVCC is radically different and I'm not too keen on vacuuming but it is a necessary evil tradeoff for the benefits in PG's implementation. And above all I can put PG on a box with 40 cores and have dozens of hot standby's for $0 in licensing fees.
Now, completely without benchmarks, I can tell you that my workplace has migrated from Oracle to Postgresql and performance is essentially the same: a few things were a little faster on Oracle, a few a little faster on PG. All revenue is directly or indirectly dependent on the database systems, which have been continuous for 20+ years: this is not a side-project.
PG administration is much, much faster. Starting an Oracle database always involves a wait similar to booting an elderly operating system. Starting a PG database is fast. Things that Oracle will want to up-charge you to an Enterprise Edition license for, PG has for free. Want to spin up a new machine? No need to negotiate a new license with PG. The cost of the Oracle license would routinely be so large that you need to buy awesome hardware to justify it. You can install PG on anything, and justify it.
You never have to even think about licensing ever again.
So instead of a giant SPOF database server, you can give every app its own clustered pair or triple of PG servers.
(PG clustering is sorta painful to get really robust, needs some work here.)
And if someone says "but it's unsupported" ... every third-party Oracle support shop is desperate to grab some PG support business. They can tell which way the wind is blowing.
There are probably hypothetical use cases where Oracle is a better fit (it really is a very effective and powerful database), but these are fewer and fewer.
Didn't say it would be easy - and indeed I'm well aware that Oracle is very different than MySQL. It's a painful transition process that more organizations will find necessary as the costs and hassle of oracle increase. If the end state goal is to have zero oracle in production use, people will have to figure out some kind of transition process to migrate away incrementally.
Considering how painful it is to even configure Oracle client software, I cannot disagree more. I'd much rather deal with PostgreSQL any given day of the week, and should you need much more than what's in the box, that's the point that the six figure consultants and DBAs earn their income. Oracle (and DB2) are just a massive mess to actually work with.
PostgreSQL is really nice in terms of dev features. MS-SQL is nice in terms of Ops features. And even Firebird is easier to use in practice than Oracle/DB2. Don't add friction to your life when you don't need to. The only place I've ever worked that chose Oracle over MS-SQL or PostgreSQL was a larger company where the Oracle DBA team was generally easier to work with.
My company nearly had #2 pushed on us. We've been using Postgres and there is no solid reason for us to switch but a consultant came in an suggested Oracle just because all the big boys use it. That argument has a measurable amount of sway for some reason.
Agree. I have been using Postgres and Oracle in production since ~2000 (oracle 8i). Postgres is an amazing project but the oracle core database has billions of R&D dollars. Don't confuse the oracle core database with the awful applications they hang off of it. Oracle will still destroy pg for most OLAP workloads, now you have to decide if the insane licencing cost is worth it.
Also just want to add an oracle developers post that I find hilarious...
This is true. Also, vendorware that's written to Oracle.
However, I am thankful my own bosses can count, and went "WHAT" at the last Oracle bill.
So we're actively seeking to move our own stuff from 'Orrible to PG, and to get rid of the vendorware depending on Oracle.
We just got AppDynamics in (ridiculously versatile and useful monitoring). Speaking to the AD sales engineer, he said a lot of their Oracle-using customers are eyeing up PG similarly.
I would disagree it's harder. It's trepidatious, but that's not the same.
We're in the middle of taking all our internal apps talking to a single huge Oracle database, and giving each app its own cluster of two PG boxes. Nothing has to play nice with anything else - that alone suddenly makes life ridiculously easier.
We have expensive paid Oracle support, who do PG as a sideline. But we've yet to have occasion to call them about PG.
reply