April 28, 2010

Oracle fun and games

I have used Oracle before and it is a good database but, like any large application, there are a lot of ancillary programs that go along with an operating database and I swear that they farm the programming of these out to drunken paralytic imbeciles (and I am not intending to besmirch the honorable reputations of any drunken paralytic imbeciles that might be reading this). For a wonderful example read Lennart's tale of woe from The Daily WTF:
What's Gone and What's Past Help
Lennart wasn't quite out of college yet. He still had a semester to go after his co-op job, and he had used everything he'd learned from his Career Integration course to land a job with a respectably-sized, multi-national corporation. The position was end-user support for the company's Oracle installs. It wasn't an ideal position, especially considering some sentiments he agreed with -- but given the dry job market, he couldn't complain.

On his first day, he was given a desk, and a dust-coughing beige box. It was just like a computer, only slower. He spent the better part of the morning uninstalling a plethora of memory-hoggers. That, and rebooting. So much rebooting. Each uninstall brought him one logarithmic step closer to a usable computer.

He'd just uninstalled Oracle Instant Client and was about to install the full blown Administrator-Client, when the support phone rang.

"The database is gone!" said the frantic voice on the other end.
For those that have worked with Oracle before, continue reading the story. For those not familiar with it, there is a central server (or cluster) that hosts the database. Where to locate that server(s) is handled by a text file named "tnsnames.ora" The database user will have a database client installed on their personal workstation. The client (one of the perfidious ancillary applications I talked about) will access the tnsnames.ora file and from that, determine the IP address it needs to access to find the database. This file is located on another machine connected to the network so that all users can see the same file and if changes need to be made, only the one file needs to be changed. When Lennart uninstalled his database client application, the uninstall program not only deleted all of the application files, it deleted all of the files it referenced including the hapless tnsnames.ora file. This is not a good way to run a database -- cleaning up after yourself is a wonderful thing. A lot of applications do not do this (cough)Adobe(cough) but to delete a file that is on a network share and not on your personal hard drive is absolute idiocy. For a company with such an ego, they really should write better code. Reminds me of that line about what is the difference between God and Larry Ellison. God doesn't think he is Larry. Posted by DaveH at April 28, 2010 8:48 PM