Slashdot Mirror


Oracle and PostgreSQL Debate

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."

63 of 330 comments (clear)

  1. If you need Oracle, you need it. by Anonymous Coward · · Score: 5, Insightful

    90% of the people who use it don't need it. 100% of that 90% are/have been convinced they need it.

    1. Re:If you need Oracle, you need it. by ObsessiveMathsFreak · · Score: 2, Insightful

      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.

      --
      May the Maths Be with you!
    2. Re:If you need Oracle, you need it. by pbaehr · · Score: 2, Funny

      50% of this message was convoluted by unnecessary use of percentages. 100% of that 50% was difficult to read as a result.

    3. Re:If you need Oracle, you need it. by ajs · · Score: 2, Insightful

      Isn't it more complex than that? In my experience almost no one NEEDS Oracle, but in addition to having bought into the idea that they do need it, most cannot move away from it, because they've allowed their applications to become locked into proprietary features, even where open versions of those features exist.

    4. Re:If you need Oracle, you need it. by RaymondRuptime · · Score: 2, Informative

      List out the current list of products that qualify as "Something Better" than SQL Server.

      For one, Progress OpenEdge. My experience from working with both is that Progress is better, faster, cheaper (lowest TCO of the major RDMBS products), and is multi-platform (who is running SQL Server on Linux?). It has a very powerful toolset with the option of using a rich and intuitive 4GL or SQL. It takes next to nothing to maintain--just throw it over the wall and let it hum. And it has good connectors to Oracle, SQL Server, et al, so you can easily have a multi-product shop (which, in the age of acquisitions, is inevitable).

      I'd pick Progress over SQL Server every day of the week and twice on Sunday, and I would pick Progress over Oracle for any project except extremely large (>1 TB) databases.

    5. Re:If you need Oracle, you need it. by hey! · · Score: 2, Funny

      Well, what's their alternative? SQL Server?

      I think the point is that Postgres might be a better solution for them, now that it's supported on NT.

      List out the current list of products that qualify as "Something Better" than SQL Server.

      All the products? Do I have to include encoding information on knotted cords and dispatching it over mountain footpaths via barefoot runners?

      Better depends on what for of course. SQL server is fair as a database engine, but so is Postgres. Transact SQL is utter crap, both by design (it's the most unorthagonal SQL I've ever seen) and in implementation (buggy if you aren't doing vanilla SQL); given that I'd say Postgres is better if you rely upon SQL. But SQL Server is a good choice if you're going 100% Microsoft end to end, including IDEs that generate all the SQL for you.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    6. Re:If you need Oracle, you need it. by morgan_greywolf · · Score: 4, Informative

      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.

    7. Re:If you need Oracle, you need it. by Anonymous Coward · · Score: 3, Interesting

      I have become increasingly frustrated with Progress for about 2 versions now. The 4GL is clunky and limited, and the implementation of SQL is poor. Interoperability with free software tools, languages and databases is practically nonexistent, so you get tied into an all-progress solution. That just grinds my gears.

      But at least empty string isn't a null. WTF were Oracle thinking?

      Anyway, this is so offtopic. Postgres is entirely adequate for anything you would do with Progress, and it's relatively unencumbered with bullshit.

    8. Re:If you need Oracle, you need it. by snero3 · · Score: 2, Interesting

      I am Oracle DBA (RAC and single instance) and I don't know what kind of screwy setup you have going on there but there is no it should crash if the file system fills up. The worse I have seen is not be able to log into (as anyone other than sys) a database that is in archive logging mode because it can't write anymore archive log files, this is expect behaviour not crashing.

      Whem my datafiles out grow their disk I just get a warning similar to "Can't extend tablespace by 8k etc...." it _doesn't_ crash.

      --
      It said "windows 98 or better" so I installed Linux
    9. Re:If you need Oracle, you need it. by pamar · · Score: 3, Interesting

      I had the "pleasure" to work on eveolutive maintenance of a large Progress project for 4 years.

      Progress, despite its name, is really a collection of relic, non-standard concepts and technologies, with bizzarre and arbitrary ideas like implicit transaction scope, rollback on memory data structures, a 4GL that grown in a sort of Frankestein monster of a language, pathetical error checking, inflexible data model and convoluted syntax to replicate stuff, like cursors, that other DBMS had sported for decades.

      Add horrible performance under ODBC/JDBC ("but we have solved that now, and we needed only 3 major revisions of the platform to get it right!"), grudgily, non-integrated support for SQL (SQL-89 to be precise) a bolted-on-the-side OO (released this February, so untested in the field, apart from the obvious fact that they added another cartload of statements to a bloated language) and the fact that anything invented in the last 30 years (from sockets to XML) is either impossible to do or extremely clunky, and you have "Progress".

      My opinion is that it survived because it was quite successfully in the 80s, and created a niche industry centered around specific vertical solutions.
      Imagine Powerbuilder without the OO or the ability to interface with diverse RDBMS and you will have a vague idea of what Progress is.

      Progress - the company - actually controls an umbrella of diverse technologies, some even very interesting like Sonic, but Progress - the product, is something that should have died a long ago, or be revamped instead of adding more and more stuff without ever deprecating language features from 5+ versions ago.

    10. Re:If you need Oracle, you need it. by ultranova · · Score: 2, Interesting

      Using a PostGRES or MySQL for reporting / long-term data retention, etc, seems a logical step.

      Using Postgres for long term data retention is a bad idea. The database format chances often, and the migration tools are unreliable - pgdump has a nasty tendency to produce dumps that can't be read back in even to the same version, much less next version.

      Got me bad when I reinstalled Debian (stable) after a hard drive failure - Postgres had been updated, and it turned out to be impossible to read the database dumps made with the previous version. A pity - Postgres is otherwise pretty good, but such data loss is simply not acceptable.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    11. Re:If you need Oracle, you need it. by ckaminski · · Score: 2, Informative

      From my stint playing with Progress, I'd have to agree with you. 4GL makes data manipulation easy enough my father could get away with it. The troublewith Progress is the dearth of 3rd-party tools that would make it a true contender in the RDBMS space. As it is, it's fairly well consigned to integrated/embedded db space (somewhat like my favorite dbms, ObjectStore), and it's SQL support, last I checked, was both horribly slow and not nearly SQL-92 compliant. On the upside, the Progress purchase of Merant/Data Direct just prior to my layoff was one of the best strategic moves I think Progress had made to date (certainly better than the eXcelon purchase which brought me to Progress in the first place). Smart objects (adm2) seemed like a poor attempt at checking off "object oriented" on a marketing checklist, something I think the PRGS management hopes Datadirect can fix with .Net.

      Keep an eye on them long term. IIRC, PRGS was one of only a handful of Boston based tech firms that made money nearly every quarter since the dot-bomb.

  2. There are other options.... by jarich · · Score: 4, Interesting
    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/

    1. Re:There are other options.... by einhverfr · · Score: 2, Interesting

      I also noticed that the client libraries are licensed under the GPL, which effectively causes the same sorts of licensing headaches that make MySQL money.

      PostgreSQL doesn't have this problem. Nor would MySQL or Ingres if the client libs were LGPL instead of GPL.

      --

      LedgerSMB: Open source Accounting/ERP
    2. Re:There are other options.... by Doctor+Memory · · Score: 2, Informative

      QUAL was a pre-SQL relational language, which had much better conformance with relational algebra. In order to use it to its limits, though, you had to really know relational theory. I vaguely remember something about being able to specify an ordering within a subselect that was different than the ordering in the outer query, but I don't really remember. I do remember that QUEL "made sense", more so than SQL did when I learned it. Then again, my first RDBMS was University INGRES, so I learned QUEL first, so maybe it's no surprise that I prefer it. Used to, anyway -- I haven't used QUEL since....hmmm, over a decade, anyway.

      --
      Just junk food for thought...
    3. Re:There are other options.... by jarich · · Score: 2, Funny
      I'm currently writing a Ruby wrapper for it and then I'll add a Rails adapter. When I'm done I plan on writing it up, but at the moment I don't have the time.

      My blog is on my sig if you want to keep an eye on it.

  3. postgresql...ease of use? by Squeezer · · Score: 2, Interesting

    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 could use /etc/passwd for authentication of users/passwords, I hate that it has to use its own internal user/pass database.

    --
    Does the name Pavlov ring a bell?
    1. Re:postgresql...ease of use? by Anonymous Coward · · Score: 2, Informative

      If you don't know what your doing with it, this can easily happen.

      I view MySQL, PostgreSQL, and Oracle as such -

      MySQL - Designed for beginners. They work first and foremost on ease-of-use features. This is not to say its not a good database, it is. But its the easiest database to get into.

      PostgreSQL - Initially designed for people who had a bit more experience. To get the full potential out of the system, you truley have to tweak with the configurations. More recent versions have made it easier for entry level users to get involved in it.

      Oracle - Grand daddy. Designed to do everything for everyone, but it takes a full-time staff to make it happen.

      MySQL and PostgreSQL were designed with a different mentallity. MySQL was designed to be left alone from the start.

      From the start MySQL would just run, leave it alone and almost never worry about it. Two years later its still running.

      PostgreSQL was designed to be powerful, but you had to look at it once in a while. Specifically the VACUUM command. More recent versions have made this easier with auto-VACUUMing.

      Oracle - Don't leave this sucker alone. You have to keep an eye on it. Or, if you have a really good Sr. DBA on staff, they can configure it to run smoothly with little need for maintenance. But don't leave it alone for to long.

      MySQL - Focused goals, less interaction needed.
      PostgreSQL - Less focused, tries to do more for more people, more attention needed.
      Oracle - Least focused, tries to do everything for everyone, needs the most attention.

      The more complex and rich the system, the more work its going to need, but if you know how to take advantage of them, you can get 10x more out of them then you put in.
      Compare the amount of tunable options between the three and you'll see what I'm talking about. MySQL you can configure in a few hours. Oracle? Good lord.

      My company uses all three.

    2. Re:postgresql...ease of use? by einhverfr · · Score: 3, Informative


      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.

      --

      LedgerSMB: Open source Accounting/ERP
  4. Who Ya Gonna Call? by Doc+Ruby · · Score: 3, Insightful

    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.

    --

    --
    make install -not war

    1. Re:Who Ya Gonna Call? by einhverfr · · Score: 3, Informative

      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.

      --

      LedgerSMB: Open source Accounting/ERP
  5. Postgres tcp/ip too difficult to configure by zfalcon · · Score: 5, Insightful
    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.

    1. Re:Postgres tcp/ip too difficult to configure by Doctor+Memory · · Score: 2, Informative

      Compare that to trying to create a new database:

      Oracle:
      - Create new directories for bdump, cdump, udump and archivelog.
      - Add new files for the new tablespace(s), control and redo logs.
      - Add the new SID to TNSNAMES.DAT and listener.ora
      - Create the new tablespace(s)

      PostgreSQL:
      - "createdb "

      Oracle's got PosgreSQL beat in terms of features (which, as someone else already noted, many Oracle users don't need), but I wouldn't try whining that PostgreSQL is "hard to configure" Not compared to Oracle it isn't!

      --
      Just junk food for thought...
    2. Re:Postgres tcp/ip too difficult to configure by allanw · · Score: 3, Informative

      They aren't. You configure postgres to listen on a TCP/IP port on postgresql.conf, and allow specific IP's to connect remotely/locally in pg_hba.

    3. Re:Postgres tcp/ip too difficult to configure by Dan+Ost · · Score: 4, Insightful

      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.

      --

      *sigh* back to work...
    4. Re:Postgres tcp/ip too difficult to configure by grantsucceeded · · Score: 2, Informative

      And I wonder, has he ever tried to do anything non default with oracle's equivalint: tnsnames.ora, listener.ora swlnet.ora etc.
      The defaults have bad security holes, and changing things is pretty bad. They had a daemon in there who's *purpose* was to allow remote systems to execute programs without authentication for gods sake. You had to pay for encryption and it took highpriced dba to set it up (contrast with pretty simple SSL for opensource dbs)

      SQLNet is *not* simple and out of the box is pretty freaking insecure.

    5. Re:Postgres tcp/ip too difficult to configure by Ayanami+Rei · · Score: 2, Informative

      Ahhh yes, dbca
      How I loathe thee...

      --which, incidentally, doesn't run on linux-x64 because of its reliance on an ancient java implementation ... ugh

      --
      THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
  6. A little of both? by PCM2 · · Score: 4, Insightful

    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, 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.

    --
    Breakfast served all day!
  7. The advantage of Open Source by ksp · · Score: 4, Insightful

    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.

    --
    What is the sound of one hand clapping?
    cat /dev/null > /dev/audio
    1. Re:The advantage of Open Source by beacher · · Score: 2, Insightful
      I really don't know where to begin on this one.

      "I can clean up corruptions or load old backups because I know exactly how the server reads the data."
      You need take a serious look at you backup and recovery plans. The last thing I would ever want to hear is that a DBA is using khexedit on raw database files.

      "Database servers just keep running on some server and are forgotten"- Sure fire path to disaster and reinforces my first point.

      "If you run an ancient version of Oracle, you are stuffed"
      On a 9i to 10g migration, one of the options is to just upgrade the instance directly. Anyone that has ever done or heard of someone upgrading Windows versions will tell you that you should nuke the disk and do a clean install. In the case with Oracle this is handled through exp(ort)/imp(ort).

      If your database is critical to your business, you should be taking much better care of it PERIOD. Open Source or Proprietary, it should be periodically maintained.

  8. DBA Comparisions - Oracle vs. PostgreSQL by Anonymous Coward · · Score: 5, Interesting

    If they want something that plays nice with Oracle, they should take a look at http://www.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?

    1. Re:DBA Comparisions - Oracle vs. PostgreSQL by einhverfr · · Score: 2, Insightful

      If you were a database consulting services company, which would you recommend?

      We are, and we recommend PostgreSQL. What good is it to us if our customers are paying lots of money to Oracle, Microsoft, or IBM? We can make up for a few missing features here or there for most deployments (those that don't depend on intraquery parallelism for performance) with some extra services. Customers save money, and more importantly, we make more money.

      Some people are shortsighted and let their vertical compliments (like Oracle) bleed their customers dry....

      --

      LedgerSMB: Open source Accounting/ERP
  9. Re:Oracle is a great database by Dan+Ost · · Score: 2, Informative

    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.

    --

    *sigh* back to work...
  10. Oracle Database 10g Express Edition for free by Anonymous Coward · · Score: 3, Informative

    For those cost-conscious users, you may want to explore the free Oracle Database 10g Express Edition.

    http://www.oracle.com/technology/products/database /xe/index.html

        Oracle Database 10g Express Edition (Oracle Database XE) is an entry-level,
        small-footprint database based on the Oracle Database 10g Release 2 code base
        that's free to develop, deploy, and distribute; fast to download; and simple
        to administer.

    It is absolutely free. It has certain size-restrictions but they should be enough for a lot of usages.

  11. Replication on PG is no good by ashpool7 · · Score: 5, Insightful

    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.

    1. Re:Replication on PG is no good by bloodnok · · Score: 4, Informative

      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.

  12. I can pronounce Oracle by Chapter80 · · Score: 2, Interesting
    Ever try to sell your client (or management) on using a database whose name they can't pronounce?

    Post gre ess que ell
    Post gres SQL
    Post gres QL

    ...heard it all these ways.

    1. Re:I can pronounce Oracle by ashridah · · Score: 2, Informative

      Well, can't be worse than SQL server.
      I hear that one as Sequel-server from suits on a regular basis.
      All I can think of is "sequel to what?"

      ash

  13. Only one conclusion one can draw by RLiegh · · Score: 2, Funny

    Anyone who has done enterprise level web-enabled applications can easily tell you the faults with all of the major players in the database field. Oracle is simply 'ok', but for most tasks, it's -to be brutally honest- over kill. Do you really need the replication features of SQL when all you are doing is cacheing emails and collecting messages from your users? At this juncture, most people are relieved because they believe that they settle for a second-teir solution such as MYsql and save the licensing fees to boot.

    This might be ideal if all that you were doing was a ruby program that indexed your record collection, say for a student project in your CS class; but in the real world if you have to interface with serious e-commerce applications you will find that not only does MySqL lack even moderately advanced SQL features, but that you will be facing rising support costs for this "free" platform.

    So, this brings us to PostGRESL. Now, I don't have a lot of experience with it, myself, given that I've mostly stuck to following the major database players instead of the fringe ones, but since this article addresses it, I've asked some of my friends their opinions. While it's featureful and scalable enough to meet the demands of your average medium sized shop, they've noticed that it tends to not be a viable solution for larger projects. In particular the latest industry benchmarks show PostGREsqL performing poorly compared to more mainstream vendor such as ingres.

    Again, like MysQl, POSTgres demonstrates that in order to get enterprise level performance out of hobbyist level software, you're going to have to pay enterprise level fees for support as well as licenseing.

    So, in conclusion, after seeing the way in which the other industry standard database solutions fail, there's only one choice a sane IT manager can make: When you need a datacenter solution which both high performant and scalable, is eoconomically viable and contains more support for the current standards the only real contender is SQL Server.

  14. Availability of Source Code? Does it Matter? by Cranky+Weasel · · Score: 5, Insightful

    "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.

    1. Re:Availability of Source Code? Does it Matter? by bloodnok · · Score: 3, Insightful

      Yes, access to the source matters. Not because you want to hack it, but because you may want to put a debugger on it to track down a problem. With Oracle you don't have that option.

      Instead you call Oracle support who ask a lot of questions. You answer the questions, they ask for a database dump. You spend time organising this only to be told that it's too big for them to deal with. You demand help. They ask more questions. You get nowhere.

      I have been through this process many times. I have been an Oracle DBA since version 7, and a developer since version 5. I much prefer postgres. When things break, I can track down the problem myself. I probably can't fix it but I can provide useful information to those that can.

      That is worth so much more to me than the ability to talk to an 'expert' at Oracle support.

    2. Re:Availability of Source Code? Does it Matter? by cr0sh · · Score: 3, Informative
      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...

      --
      Reason is the Path to God - Anon
  15. In other news... by adolfojp · · Score: 4, Funny

    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

  16. Re:Comparisons by Anonymous+Crowhead · · Score: 5, Funny

    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.)

  17. I'm not convinced... by C10H14N2 · · Score: 2, Interesting

    ...that ANYONE /needs/ Oracle.

    I will accept that someone would need something like Oracle Financials and that would be contingent upon using the Oracle database, but structurally speaking, why is it necessary for anything in particular? I mean, cripes, GOOGLE uses MySql. If THEY don't need Oracle, who the hell does?

    I've run into this before trying to sell a TINY Division on using MySQL or PostgreSQL--every single !#!#%ing engineer said the same thing: we don't need _anything_ beyond MySQL, hell PostgreSQL is even overkill, so let's use it. Absolutely not, was management's response no matter how many high-profile case studies we threw at them. It was as if the #1 requirement was "Must cost at least $57,000, but list for $75k, so the purchasing manager can get a nice fat bonus for 'saving' money."

    Seriously, I'd like someone to explain what precisely about Oracle could ever be considered absolutely necessary that cannot be found anywhere else aside from organizational bias and insipid politics.

    1. Re:I'm not convinced... by Anonymous Coward · · Score: 2, Informative

      Google uses a distributed cluster approach, hardly Oracle's area. Perhaps you've never worked with big datasets, but when we're talking about several TiB of data MySQL is a complete joke and PostgreSQL can't probably handle it. Big iron (read: Sun or IBM) + Oracle is the only way to do it.

    2. Re:I'm not convinced... by RicRoc · · Score: 5, Insightful

      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.

      --
      Who?
    3. Re:I'm not convinced... by jbolden · · Score: 2, Informative


      Seriously, I'd like someone to explain what precisely about Oracle could ever be considered absolutely necessary that cannot be found anywhere else aside from organizational bias and insipid politics.

      Here are a few answers:

      1) Oracle allows you to tune types of transactions very heavily. For example some tables or transaction types can log while other do not.

      2) Log miner combined with archiver allow you to generate activity reports offline

      3) Complex partition tables with partition indexes

      4) Grid databases so you can spread a consistent database over hundreds of servers

      5) Really good ISAM compatibility on their mainframe versions so that legacy cobol code will work against semi-relational structures

    4. Re:I'm not convinced... by Jason+Earl · · Score: 2, Insightful

      Personally, I've seen expensive solutions get undercut by commodity solutions too many times to get comfortable with that line of reasoning. Heck, we've all seen how Windows and later Linux have thrown the server operating system business on its head. At some point businesses invariably start wondering why they are paying so much for Oracle and Oracle talent when their competitors are getting the same job done with PostgreSQL.

    5. Re:I'm not convinced... by Nefarious+Wheel · · Score: 2, Informative
      The software is valueable (sic), so the people who work with it are valueable

      I've got mod points, but I'm not going to use them here because there is no category for "Cynical" which this post would most assuredly be modded up for.

      However, he's mostly right. My father used to say when trying to sell an ugly piece of jewelry "If a piece doesn't sell, keep raising the price until it does". Worked for him.

      --
      Do not mock my vision of impractical footwear
    6. Re:I'm not convinced... by el_womble · · Score: 3, Interesting

      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.

      --
      Scared of flying, pointy things snce 1979!
    7. Re:I'm not convinced... by indifferent+children · · Score: 2, Funny
      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.

      I'm glad that raw leather is so expensive. That makes my salary look small in comparison. And our buggy-whip sales have been going up, up, up! I am so set for life.

      --
      Censorship is telling a man he can't have a steak just because a baby can't chew it. --Mark Twain
  18. Many DBAs miss the point by philovivero · · Score: 2, Interesting

    Like any profession, database administration is rife with the mediocre and downright incompetent. For those, Oracle and the like provide an awesome service. A DBMS that works half the time, and the half the time it isn't working, there are documents, online knowledge bases, and expensive tech support personnel who can read to you from their CDROMs.

    If you really want to know if PostgreSQL (or MySQL) can handle it, look at the best and brightest tech corps in the world. I'll pick two for you: Google and Yahoo!. They use MySQL extensively. IMO PostgreSQL can do whatever MySQL can (though, honestly, I'm not sure, I've only ever seen MySQL in high volume environments like Digg, where I'm currently working).

    If your org *NEEDs* Oracle or Sybase or whatever because MySQL and PostgreSQL aren't supported by some software you bought, I feel sorry for you, and recommend you either accept your company's mediocrity or get out.

    If you think MySQL/PostgreSQL just don't have what it takes on a fundamental level, I humbly suggest you rethink your competence in the field.

    1. Re:Many DBAs miss the point by LurkerXXX · · Score: 2, Funny
      "If you really want to know if PostgreSQL (or MySQL) can handle it, look at the best and brightest tech corps in the world. I'll pick two for you: Google and Yahoo!. They use MySQL extensively. IMO PostgreSQL can do whatever MySQL can (though, honestly, I'm not sure, I've only ever seen MySQL in high volume environments like Digg, where I'm currently working)."

      "If you think MySQL/PostgreSQL just don't have what it takes on a fundamental level, I humbly suggest you rethink your competence in the field.

      From the Yahoo's home page... 'Company info' link, 'Employment Opportunities', 'Find a job' link, 'job search' link, searching for 'dba' gives...

      Oracle DBA",

      Technical Yahoo, Sr which describes it as "We are looking for a seasoned Oracle DBA/Architect to join Yahoo! Mail team. You will be part of Mail DBA team to design, setup and manage multi-terabytes Oracle RAC databases for next generation of web-based applications." ,

      Sr. Oracle DBA - Yahoo! Search & Marketplace,

      IT Applications Support Analyst described as "This position will provide day-to-day applications support in troubleshooting issues related to Oracle 11i HR, Oracle Self Service, and several integrated 3rd party HR applications working closely with the Corporate IT Applications development team, DBA's, HRIS and various HR business groups/partners.",

      Technical Yahoo described as "Plan, install, configure, maintain and administer Oracle databases."

      And over at Google, searching for jobs at Google with the keyword Oracle we have:

      Systems Specialist - Internal Applications which lists requirements as "Production support experience with Oracle or MySQL database servers, including user creation, monitoring of backups, basic queries and generation of data extracts." I wonder why they list Oracle. Maybe because they use Oracle as well??? hmmm.

      Database Administrator - Phoenix which says "This person will be tasked with supporting databases of varied flavors including Oracle, SQL*Server, MySQL and Netezza (Postgres-type)."

      Technical Accounting Manager which says "Recent Oracle 11i experience is a plus."

      Database Administrator (Temporary) - Mountain View which states "The primary database platform this person will support will be MySQL and Oracle but will also be involved in assisting with Microsoft SQL, Netezza and PostGres. "

      Googles jobs listing Oracle go on and on...

      They use MySQL for very shallow applications that aren't that critical if they screw up a few records. If that happens, a few hits aren't returned. No biggie, there are probably 14,000 other hits for what you've searched for, and what you ne

  19. Corrections to the article by einhverfr · · Score: 5, Informative

    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 :-)

    --

    LedgerSMB: Open source Accounting/ERP
  20. Backups backups backups! by yem · · Score: 2, Informative

    Just to plug my favourite itch..

    PostgreSQL needs a reliable, well documented method for performing live incrememental backups. As in:

    1) dump the whole database once a day
    2) dump the transaction log every 5 minutes

    You can then recover to any point give or take 5 minutes by loading the last full dump and each of the incrementals up to the point you need.

    PostgreSQL ALMOST has this in the form of "Point In Time Recovery" but..

    1) the documentation is incomplete - key details (like a definitive method for identifying the current log file) are missing. Check out the threads in the postgres-admin mailing list. It needs to be easier and users need to be 100% confident that they have the right set of files.

    2) you can only backup and restore the whole server instance - ie ALL the databases at once. In practice this means you need a second server somewhere to do recovery on, then need to perform a complicated migration back to the primary server.

    If backups don't really matter to you (or you're not running a transactional system) then PostgreSQL is fantastic. But if it's getting many updates a day and you care about recovery (so you're not boned when someone forgets the WHERE clause in a DELETE/UPDATE command) then it doesn't quite cut the mustard yet.

    An official reference implementation backup & restore script would be a good start.

    --
    No, I did not read the f***ing article!
  21. Re:postGRES by WindBourne · · Score: 3, Informative

    Except that it was not a fork. It started on its own, but at the same lab.

    --
    I prefer the "u" in honour as it seems to be missing these days.
  22. Re:Oracle is a great database by einhverfr · · Score: 2, Informative


    Postgres doesn't have built-in replication, non-commercial, yet MySQL has had it since 3.x and they are on 5.x now. Yes, there is SLONY, but it's an add on.


    Do you really want to tie your replication version to your database version? As long as it is not so tied, it makes it possible to replicate between different versions of PostgreSQL (say for a zero-downtime upgrade, or a phasein of a new version) without worrying so much about forward/backward compatibility issues on the replication side.

    Slony may be an add-on, but it is hardly third-party. It was written with the help of at least one of the core PostgreSQL developers.

    Finally, PostgreSQL *does* have at least one replication technology, dbmirror, as a part of its contrib package which is shipped with the source.

    Postgres has had views, triggers and stored procedures for a while now, and MySQL just got them in 5.0.

    PostgreSQL still has more features in this area than does MySQL.
    * Multiple triggers per table
    * Stored procs in arbitrary languages

    PostgreSQL also has roles, better foreign key support (there are some ways of adding foreign keys that MySQL 5.0 w/innodb silently drops even in strict mode).

    PostgreSQL has had data partitioning possibilities since 1995, but the new check-constraint-based optimizations make it more useful in data warehousing operations.

    MySQL had 64-bit support (I love the Opteron) since 4.0; Postgres just got it in 8.1. The ability to utilize large amounts of memory is a big deal for databases.

    Funny, I was not aware that the Opteron was the only 64-bit chip out there. I was aware of plenty of huge DB's running on 64-bit Alphas and the like and the recommendations of 64-bit chips on large DB's was documented in PostgreSQL at least as far back as 2000.

    Also, I would point out that source builds for PostgreSQL on the Opteron were shown as effective at least as of 8.0. I would not be surprised if it was not working on the platform even earlier.

    The biggest issue for me prior to 5.0 was the silent truncation of *numbers* by the database. The database is your last line of defense against bad data and it should not be changing the data in order to avoid providing errors to the program. Even in 5.0, strict mode can be turned off by the client so it provides very little protection at all.

    The other issue I find is that if you have a large number of database users, mysql permissions become a pain. :-) This is why roles are so useful.

    MySQL is a *perfect* database for content management. But for anything where the integrity of the data matters, I am not sure I would trust it.

    Also, there is a new movement in PostgreSQL to move as much functionality out of the core distribution as possible and kernelize it. Thus, for example, pl/pgsql could be upgraded without upgrading PostgreSQL. Thus many of the community projects (such as PL/J) will become increasingly important. MySQL because of their licensing system will never be able to go this direction.

    --

    LedgerSMB: Open source Accounting/ERP
  23. THIS is how source code availability matters by WebCowboy · · Score: 4, Interesting

    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.

  24. Hardware overwhelms 99% of problems by grantsucceeded · · Score: 2, Interesting

    I've been a oracle dba for a long time, and recently turned my back on oracle to seek other career challenges. I think the short explaination for my decision, is that the speed of hardware has grown to overwhelm most any real world performance problem, with just "good practices" as a dba as opposed to having to be some kind of hero dba. So there is no future there as far as $$.

    I built some very large, very high thruput databases under difficult conditions (torrid growth at paypal) and I don't think it could have been done with that hardware and even todays mysql or postgres: only oracle had the features then, and it's features then exceed what pg and mysql have *in the category of scalability and serviceability*. This mostly stemmed from the difficulty of doing transaction safe database calls across multiple machines forcing us to scale a single machine for a very long time. And before anyone says pg and mysql have transactions, I"m talking about billions of dollars of transactions, where if you loose or fail to recover even a few you risk goign out of business because customers stop trusting you.

    But moores law and whatever law applies to disk densities just crush any classic RDBMS problems. Number of spindles can still be sort of costly, but way cheaper than even 5 years ago. memory and cpu are practically free, making it unecessary and wasteful of time and money to obsess over tuning, inall but the most exterme cases.

    If you're writing a custom new application, fuck oracle, except in those cases fall along these few lines:

    - you want to do truly massive scans of multi terrabyte tables: Oracle RAC will do 2-4 gigabytes /sec on a few xeon servers facing a few FC disk arrays. PG or MySQL will never do that even on the same hardware, since they don't parallelize and they don't do directIO and asyncIO in a pervasive or big way. This is the classic datawarehouse design and is probably a bastion for oracle (oracle is basically trying to eat terradata from the lower end)
    - you want > 99.9 uptime: You will still need to work 10x harder in the application to get this or better, but you'll also need the serviceability of oracle e.g. index rebuilds corruption fixes without reboot. Also, the visibility and monitoring of oracle is lightyears ahead of mysql and pg.
    - you want to build an empire as a middle manager
    - you are writing a turnkey application you plan to sell to corporate america or govt.

  25. Nonsense... by IANAAC · · Score: 2, Interesting
    ... Oracle instance will crash suddenly, with nothing more than a notation in the log that...

    That's nonsense. It doesn't crash. What it does do is wait for you to give it some more space. As an administrator, that's a fairly easy thing to do. Once you've done that, Oracle continues on its way as if nothing had happened.

  26. Re:Oracle is a great database by LurkerXXX · · Score: 2, Informative

    I think you forgot a few important things.

    Postgres has realized for many many years that February 31st is not a real date. MySQL only recently realized that.

    Postgres has thrown errors for years if you entered out of bounds data. Until extremely recently, MySQL would happily silently change your data to something it liked. No errors, just bad data. Yummy. And it will still do that if you don't run it in 'strict' mode (not the default, except on windows). Postrges doesn't have any such setting to 'accept bad data and silenty change it'. Real databases don't.

  27. Re:Oracle's rich feature? by bakes · · Score: 4, Funny

    Oracle's rich feature?

    You have to be rich to buy Oracle. That's the feature.

    --
    Ho! Haha! Guard! Turn! Parry! Dodge! Spin! Ha! Thrust!