Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

Oracle and PostgreSQL Debate

Posted by Zonk on Thu Apr 06, 2006 03:27 PM
from the warring-dbas dept.
Mark Brunelli writes DBAs are talking about the merits of the open source PostgreSQL database management system (DBMS) as compared to Oracle - and their opinions truly run the gamut. DBAs responding to the interview said they liked the low cost and ease of use of the open source database, while others said that Oracle's rich feature cannot be ignored. Still others talked about how well the two systems play together. According to one DBA, a gateway product from Oracle would be a welcome offering."
+ -
story
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • by Anonymous Coward on Thursday April 06 2006, @03:31PM (#15078948)
    90% of the people who use it don't need it. 100% of that 90% are/have been convinced they need it.
    • 100% of that 90% are/have been convinced they need it.

      Well, what's their alternative? SQL Server? You can only get by on that for so long.

      The usual transition goes like this; Access->SQL Server->(Something Better)

      List out the current list of products that qualify as "Something Better" than SQL Server.
    • There's plenty of misinformation going around. For instance

      PostgreSQL doesn't behave as nicely as Oracle when the system fills up, Goulet said. In those instances, the system tends to crash quickly.

      I'm, among other things, an Oracle administrator. When the filesystem that holds the databse files fills up on Oracle 9i 9.2.0.4 on both Solaris and Linux, I can tell you for sure that the Oracle instance will crash suddenly, with nothing more than a notation in the log that the disk was full trying to write to file such-and-such.

      That's not any different from what they describe with PostgreSQL.
      • by RicRoc (41406) on Thursday April 06 2006, @05:28PM (#15080072) Homepage
        I'm very happy that our company is using Oracle - it's expensive, that's why! That high expense reflects back on me, in a good way. "The software is valueable, so the people who work with it are valueable". I'm better paid because they chose Oracle over MySQL.

        Another thing is the large selection of Oracle training available. The more expensive a thing is, the more training is "worth it" -- even if it is insanely expensive. When I get this training, it is because "I am worth it" -- making me worth more in the process.

        And yet another thig is the high level of professionalism surrounding Oracle. Our Oracle DBA is fantastic, he really preaches the right practice, and management listens to him. Because he is an professional Oracle DBA, not some MySQL tweaker.

        Personally I would use PostgreSQL, but I'm happy we are using Oracle. Who needs all the features above and beyond ACID compliance? Perversly, it's Oracles high price tag that makes it better for me - personally - at work. I'm not footing the bill, and a bigger budget translates to higher saleries in the field.

        I's perverse, but that's how it is.
        • by el_womble (779715) on Friday April 07 2006, @05:56AM (#15082947) Homepage
          I hate this doublethink. I both 100% agree with you and 100% hate the fact that your right.

          Why do people associate the cost of the tool with the cost of the engineer? Surely a man who can create a masterpiece with a brush and an oil solute is worth more than some monkey with a digital camera and photoshop. I guess its just an easier metric for managers to deal with.

          What annoys me the most is that this is why big companies, that make lousy solutions, are making a killing. The project I'm working on put out a tender for its platform technologies. Unsuprisingly, the technologies that won were BEA Weblogic (Container), Sun (Servers), Cisco (Networks) and Oracle (Database).

          I know that the same product could be built using Tomcat (Container), Debian (Servers), OpenBSD (Networks) and PostgreSQL (Database) and work as well or better (the budget doesn't reflect the complexity in this case), and I know that they weren't even concidered because, as OSS solutions, they don't have a consultancy team running around making promises Dev can't keep. I used to believe that it was important that enterprise solutions came with enterprise support, however, I have yet to experience enterprise grade support from anyone, at least not in any form that was better than an OSS product.

          But who am I trying to kid. If PHBs had a clue about technology they wouldn't be PHBs. The big corporations that can afford big iron software soultions exist because of pervasive ignorance and metric crunching abilities of middle management, and the zeal of their marketing dept, not becuase they know what their doing.
  • by jarich (733129) on Thursday April 06 2006, @03:35PM (#15078980) Homepage Journal
    I've been working with Ingres recently. It's GPL and has a great enterprise-proven track record. Best of both worlds.

    http://ingres.com/ [ingres.com]

  • Who Ya Gonna Call? (Score:4, Insightful)

    by Doc Ruby (173196) on Thursday April 06 2006, @03:37PM (#15079010) Homepage Journal
    I like how I can call Oracle and get the best developers/DBAs/integrators/troubleshooters to solve my problem, and it requires only money. I like how I can look at the Postgres source code, so I don't have to call anyone to solve my problem - or I can choose who I call.
    • by einhverfr (238914) <chris.travers@gmail.com> on Thursday April 06 2006, @04:56PM (#15079731) Homepage Journal
      Companies that employ core PostgreSQL programmers and offer tech support include:

      1) Command Prompt, Inc.
      2) PostgreSQL, Inc.
      3) Software Research Associates

      If you want to pay for software licenses, I would suggest doing buisness with EnterpriseDB.

      Other potential vendors include Fujitsu (in Australia at least) and Green Plum in CA.

      Sun is also looking at offering support for PostgreSQL when it is bundled with Solaris.

      Want more? My firm offers DBA-level support. If you want highly technical support, use the email lists, or call Command Prompt.
  • by zfalcon (69659) on Thursday April 06 2006, @03:37PM (#15079014)
    Goulet said that setting up a TCP/IP connection capability with PostgreSQL is hardly an intuitive process. To do it, he says, one needs to modify the postgres.conf and pg_hba.conf files manually.

    Uhh...is editing a config file really that difficult a process? It's like two lines.

        • by Dan Ost (415913) on Thursday April 06 2006, @04:25PM (#15079408)
          For a non-trivial application, it is very often impossible to create a configuration GUI that is as clear, capable, and useable as the text config file it is meant to replace/hide.

          So what do you do? You end up making assumptions about how the app is "likely" to be used. This makes the GUI usable for people who's needs and desires match your assumptions, but you've essentially reduced the functionality of your application to match those assumptions. People whose needs don't match those assumptions now find your application to be difficult or impossible to use.

          On a side note, it has been my experience that people who rely on GUIs to configure non-trivial apps never seem to have a good idea what's actually going on. They simply try something and if that doesn't work, they try something else. People who've actually invested the effort to learn how to modify the config file generally know exactly what change is required to get the desired change in behavior. Those are the people I hire. I don't want someone who is inclined to make changes without understanding their effects first.

          Oh, and in the future, if you're going to call someone an elitist (or whatever), at least have the courage to use your own account.
  • A little of both? (Score:5, Insightful)

    by PCM2 (4486) on Thursday April 06 2006, @03:41PM (#15079047) Homepage
    Why does everything have to be all or nothing? There's nothing stopping an Oracle shop from using PostgreSQL here and there. Plus you've got EnterpriseDB, [enterprisedb.com] which bolts Oracle compatibility onto PostgreSQL for a little bit of the best of both worlds. Go ahead and pay Oracle for the top end of what their feature set lets you do and use PostgreSQL for the rest.
  • by ksp (203038) on Thursday April 06 2006, @03:44PM (#15079072) Homepage
    To me, the important advantage of Open Source on the server side is that my data is in an Open Format - because I have the source. I can clean up corruptions or load old backups because I know exactly how the server reads the data.

    Also, I can use the same database version forever. I have to get someone to patch the code to run on Vista or Windows Server 2025 or whatever in the future, but the core of the database server remains the same. Database servers just keep running on some server and are forgotten until suddenly someone makes the decision to upgrade those old NT 3.51 servers ASAP. If you run an ancient version of Oracle, you are stuffed. No support for the old version, your proprietary front end application doesn't support the Oracle versions that run on Win2003 - so what do you do? Run your business critical RDBMS at an unsupported version on NT on VMWare on Win2003? With Open Source, you can patch the layer that needs fixing, without changing the rest of the product or include the feature bloat the Oracle Sales keep getting added into their products.

  • by Anonymous Coward on Thursday April 06 2006, @03:44PM (#15079076)
    If they want something that plays nice with Oracle, they should take a look at http://www.enterprisedb.com/ [enterprisedb.com] .

    One of the goals of the company is aimed specifically at making life easier for Oracle people on PostgreSQL.

    Company I work for runs both PostgreSQL and Oracle. Years ago we were a PostgreSQL only shop. Along comes a Sr. Developer who touts Oracle to management, and they listened to him.

    Now we have 2 Sr. Oracle DBAs, 1 Jr., and 2 PL/SQL programmers.

    Oh yeah, we don't have any PostgreSQL DBAs. But we have just as many PostgreSQL servers.

    Now we are moving some of our applications back to PostgreSQL, which of course scares the Oracle DBAs.

    Our servers are heavy-hit. Thousands of queries per-second on both systems. PostgreSQL can keep up with Oracle, and Oracle can keep up with PostgreSQL.

    One thing I've noticed about the market that is both good and bad for PostgreSQL - You can put out an Ad for an Oracle DBA and get hundreds of responces. Put one up for PostgreSQL and you get almost none. Almost a year we've had an Ad out for a PostgreSQL, there just arn't any.

    And I don't think its because there arn't any full-time DBAs. The reality is PostgreSQL just doesn't need the same amount of staff that an equal amount of Oracle databases need. The good side, it just works and requires so little maintenence. The bad side? Its hard to sell to companies when they can't have someone full-time on it.

    I'm curious with other companies experiences. How many full-time DBAs do you have for Oracle? How many for PostgreSQL?
  • by ashpool7 (18172) on Thursday April 06 2006, @03:54PM (#15079162) Homepage Journal
    Slony I requires a primary key on all tables in order to be able to do anything. I have tables that don't have primary keys and I don't want to ever have them. I've normalized my DB and it's the best way to keep track of multiple items for a single person. OIDs are a waste of time in this situation and a cop-out. I don't want to rely on some level of replication that runs on top of the database server, I want it to be part of the database server so everything that works with the DB is aware of replication needs.

    Postgres really needs some replication or mirroring mechanism built-in in order to even begin to attract people away from Oracle. The Slony II project will certainly require this level of integration, and I hope it succeeds, even it it takes until PostgeSQL 10.0.
    • by bloodnok (35021) on Thursday April 06 2006, @04:44PM (#15079610)
      I have used slony-I, Mammoth Replicator, Oracle Advanced Replication, an early version of Oracle Streams in 10g (don't know if it's still called that), and an Oracle third-party replication scheme that I can not currently remember the name of.

      Of them all, I would choose slony almost every time. Yes, you have to have a data design with PKs. As a fan or the relational model I think that's generally a good thing. But for those cases where you don't have a PK, slony lets you add one. Painlessly.

      I have found building a slony replicated cluster to be way easier than with any other system. I have used slony's switchover in a live environment to upgrade the database, the server and the hardware, with only a 6 minute outage. I administer a 24*7 web-based site and hardly ever have to touch the database or slony.

      It's way better than you make out. And if your database design really requires you not to have PKs, then you don't understand relational modelling.

      Slony-I does not support multi-master, or synchronous replication. It is not designed to do so. It would be great to have this capability for Postgres but its lack should not be cause to criticise slony-I.

  • by Cranky Weasel (946893) on Thursday April 06 2006, @04:15PM (#15079320) Homepage
    "I like how I can look at the Postgres source code, so I don't have to call anyone to solve my problem - or I can choose who I call."

    In discussions like this, availability of source code always comes up.

    I want to know who has a job where they have so much extra time on their hands that they can debug the source code of their database product.

    No, seriously. I REALLY want to know. I can't imagine things operating at a pace where this kind of thing is even an option.

    The only conclusion is that people who actually do this are either (a) the top .001% of the elite programmers who can do this on the fly, (b) ex-developers from the PostgreSQL team, or (c) nerds in their basement with no time constraints because all they're doing is running their Star Trek fansites with it.
    • by WebCowboy (196209) on Thursday April 06 2006, @07:11PM (#15080802)
      I want to know who has a job where they have so much extra time on their hands that they can debug the source code of their database product.

      Nobody except the active contributers to the RDBMS I'm guessing. Certainly not be. But I'll tell you my personal experience with PostgreSQL and how it being open source directly benefited me:

      I was doing a project involving PgSQL many years ago (v6.2 I think) to manage a small inventory database. There was a problem that looked like a bug in PgSQL rather than a configuration issue (I think it was causing VACUUM to fail among other things but my memory fails me). What I clearly remember was how I resolved the issue, and it is the first time that the benefits of open source directly affected me and when I becane clearly sold on open source.

      I had given up and since there wasn't a company to turn to I looked for contact emails in what passed for the docs at the time (they are MUCH better now) and on the website. I emailed one of the core developers and described my problem. He emailed me back the next day and thanked me for my feedback and said he had a few other reports of problems somewhat similar to mine. He also ATTACHED THE SOURCE CODE OF THE PATCH he had been working on that was not yet in the release on the website! I applied the patch and recompiled and bingo...it was back to normal!

      Now I was (still am) far from a guru C programmer but as with a lot of people I can stumble my way around makefiles and GCC and patches and so forth, and I did have time to recompile PgSQL. I can also (at the instruction of one of the developers) to traces and such and send in the results and THEY can do the debugging with my help. If I was using Microsoft SQL Server and had a similar problem I'd be screwed: I'd have to call clueless tech support, or wander around the KB articles and hope to find the solution, and in this case I'd probably find a useledd KB article along the lines of "Microsoft has acknowledged this to be an issue and will provide a solution in the next available hotfix" telling me to do some kludgy, unacceptable workaround in the meantime, which could be days, or weeks...or maybe even never. I certainly would NEVER have the ear of a Microsoft programmer who wrote or reviewed the code as a lowly intern-type doing a small experimental project.

      So there you go...I'm (a) not an "elite programmer", (b) never been part of the PostgreSQL team beyond exchanging emails with a team member, and (c) though some may say I am a nerd I moved out of my parents' home when I was 17 and never lived in their basement. Despite that I have indeed directly benefited from source code availability for software that I did not write.
    • by cr0sh (43134) on Thursday April 06 2006, @08:29PM (#15081243) Homepage
      It isn't that you can do it, or that you can hire someone else to do it (mangle/compile the code) - but the fact that you can do it at all.

      Say, for example, Microsoft or Oracle go "belly up". It can happen, quicker than you think, for a variety of reasons. There have been many examples throughout history of this happenning, either due to external or internal reasons. So in theory, if your company relies on MSSQL or Oracle's DB product, and the vendor goes belly up, what then?

      Well, your company can probably continue with the software, as is (as long as there isn't any "call home" licensing checks). Hopefully, if your company is smart, they immediately begin a crash course to migrate to a new database product and/or vendor. However, let's say they don't, because they can't convince their clients to buy an all new DB backend or whatever, or the DB software being used has a feature not available anywhere else, or something like that. Time passes, then one day, a very nasty bug in the software is found, something that could possibly take down the business, leaving all the clients in the lurch - what then?

      Since your company doesn't have the source to the DB software, you can't fix it. You better pray you can find a workaround. If not, it may be curtains for the business (and maybe some of your clients, who may have went with thier own version of "proprietary software" when they went with your company, unless your code is open source). Had you instead gone with an open-source DB solution (and/or rolled your own code to bring those "needed-features" the other proprietary guy had and gave them back to the community as a note of "thanks"), and had that open-source solution gone "belly-up", and had events transpired the same way (bugs found, etc)...

      In theory, at that "darkest moment", you could "save yourself", either by hunting down the offending code and fixing it (and distributing the patch to clients), or hiring someone else to do the same. THAT is the power of open source, and why it is a good thing, even if you never touch it yourself. Frankly, having been in a variety of vertical-market software development jobs over the past 15 years, the above situation happens more often than you think (although in most cases it is with other software than databases), causing companies to almost grind to a halt as they look for yet another proprietary vertical market solution in their domain (most vertical market solutions are proprietary due to the nature and size of the business domains they serve - think insurance, medical, warehousing, distribution, etc) - paying huge amounts of money in their contracts to have the lucky winner "convert them over" to the new system...

  • by adolfojp (730818) on Thursday April 06 2006, @04:15PM (#15079321) Homepage
    Next week on Slashdot:

    Movers: 18 Wheelers and Pickup Trucks Debate
    Grave Diggers: 360 Degree Excavators and Shovels Debate
    Firefighters: C-130s and Hoses Debate
    • Oracle has features that are absolutely essential to some projects. And MySQL and Postgres are slowly (or more quickly in the case of MySQL) adding features, turning Oracle into a niche product.

      You make it sound like MySQL is ahead of PostgreSQL in the features department. While it is true that MySQL is currently adding features faster than PostgreSQL, it's because most of those features that MySQL has been adding have been present in PostgreSQL for years.

      MySQL is largely playing catchup.
    • by Anonymous Crowhead (577505) on Thursday April 06 2006, @04:18PM (#15079340)
      How about a site that shows me objective views Oracle, PostgreSQL, MySQL, etc. have to offer?

      Just go to that site that has the unbiased comparison of emacs vs vi (can't rembember the url), then click on the "Perl vs Ruby vs Python: An Ojective Analysis" link. On that page, there is a link to exactly what you are looking for (It's just under all the "Linux vs Microsoft: TCO" whitepapers.)
    • by einhverfr (238914) <chris.travers@gmail.com> on Thursday April 06 2006, @04:45PM (#15079625) Homepage Journal
      I too have been using PostgreSQL since 6.5. I have experience with every version from 6.5 to the current 8.1....

      The article made a number of mistakes or maybe the interviewees were not that knowledgable:

      Jim Allen, a longtime Oracle professional and an independent technology consultant, says he has had considerable experience with PostgreSQL 7.4 and 7.5, but not the newest version, 8.0.

      7.5 never existed. It was renamed to 8.0 shortly before entering beta. Goes to show how little he knows-- like those people who used to call and ask for tech support for "Windows 97" except a DBA should know better....

      On the other hand, Allen was unimpressed by the fact that in PostgreSQL, stored procedure parameters are not typed.

      "Everything is passed as strings, even integer arrays," he said.


      Huh??? This is plainly incorrect and has been since I have been working on stored procs in it (at least 7.0, maybe 6.5 or earlier). All parameters are typed. They may, however, be presented as text depending on the function and how it is called.

      PostgreSQL doesn't behave as nicely as Oracle when the system fills up, Goulet said. In those instances, the system tends to crash quickly.

      I assume he is talking about oid/xid wraparound issues. Oid wraparounds fail pretty gracefully. In 8.1, you will get plenty of warnings before the xid wraparound forces a crash. However the crash is there as a safety measure to protect your data-- if the xid was allowed to wraparound, previously committed transactions would become invisible.

      The solution to the xid wraparound is simply to do regular mainetnance. With 8.1 the autovacuum capability is integrated into the database backend and so this should never be a problem.

      Goulet said that setting up a TCP/IP connection capability with PostgreSQL is hardly an intuitive process. To do it, he says, one needs to modify the postgres.conf and pg_hba.conf files manually.

      Prior to 7.4 I think this was the case. With 8.0 and 8.1, only the pg_hba.conf needs to be enabled though you *might* also want to allow the system to listen on addresses other than localhost. In this case, you might need to alter both files.

      But then there are webmin plugins etc. that allow you to modify the pg_hba entries from a web interface :-)

    • I just wish mysql could use /etc/passwd for authentication of users/passwords, I hate that it has to use its own internal user/pass database.


      PostgreSQL can do this. Read up on the pam authentication method.


      obviously they've never tried to dump and restore a database when upgrading to a new major release. Never goes according to the documentation. thats why I love mysql, just install the new rpms and keep on truckin'.


      I just wish MySQL had transactional full text indexing, Java stored procedures, and nestable database roles (which makes administering a database with many users easy). MySQL has both technical limits and ease of use limits once you start doing anything moderately complex with it.

      Of course, compared to Oracle, anything is easy to use.