Monday, February 27, 2006

Getting Burned

The good thing about getting burned once or twice in the forums is you can learn from the experience. For example, the other day somebody wanted to upgrade a 1TB database from 9i to 10g. At the same time, they were changing platforms.

The initial discussion started along the lines of “You should investigate Transportable Tablespaces. I think they are supported across platforms in 10g.” Decent enough idea, I suppose.

Then this particular user chimes in and says:

Db upgrade accross platforms has Exp/Imp as the only option available.


Ah, here’s my chance. Those were my exact sentiments a couple years ago until somebody pointed out you could setup both databases and copy data with a database link. Another person said you could unload/load comma separated data. OK, some maybe not very practical, but still a possibility. Just for the sake of argument, I posted:

100% UNTRUE. You could unload/reload ASCII files, you could use dblinks, you could use Quest's replication product.You should be careful when dealing with absolutes.


OK, maybe a little harsh, but to the point. So Mr. Exp/Imp pipes up and says:

Sure Jeff
Following are excerpts from Metalink doc 277650.1:

Quote:
The Export and Import utilities are the only method that Oracle supports for moving an existing Oracle database from one hardware platform to another. This includes moving between UNIX and NT systems.


He thinks he as me against the ropes now. If Metalink says it, it must be true. To which I reply:

surprise, surprise, metalink is wrong.

Do I get enjoyment out of proving somebody wrong? Not usually. But there is a lot of bad information out there and I don’t like perpetuating it.

Friday, February 24, 2006

Another Friday

Here I sit, another Friday night in the office.  Tonight’s drama is saying goodbye to the last remaining Oracle 8.1.7.4 database.  

About 18 months ago, we were like firecrackers; an upgrade most every weekend.  We knocked out most of the small (<100G) ones using DBUA.  Then we started on the mission critical stuff; lots of testing and diagnosing query plans that changed for the worse.  Through it all, we learned a lot about 9i and how it was different than 8i.  

Our final database has been a royal pain.  The first time we attempted the upgrade, we ran into OS errors and found out our version of DBUA wasn’t compatible with the OS version.  Instead of upgrading an old machine, we decided to move it to an under utilized machine.  So we attempted again.  Then something went wrong with the upgrade.  So we restored, and researched the problem.  Tonight, (fingers crossed), we’ll be off 8.1.7.4 for good.

On to 10g.

Monday, February 20, 2006

Certification

I live within 5 minutes of my local Borders bookstore. I'm pretty familiar with the computer selection there and have mostly been satisfied with their selection. Looking for some variety, I went to a not-so-local mega Barnes & Noble today to peruse their computer section.

I spent quite a bit of time looking over their selection and noticed something missing, Oracle Certification books. I got to thinking and my local Borders only had a couple books on Oracle Certification and about 3 shelves on Microsoft Certification.

Just a couple of years ago, books for the OCP were plentiful and filled a lot of shelf space. I remember there were two or three publishers with their own series.

Is it just my location of the country? Does it say something about Oracle's certification process? Or has the demand for OCPs weakened over the years?

Tuesday, February 14, 2006

Lessons the hard way, Part IV

While wrapping up the finishing stages of the Oracle Applications Upgrade from you know where, I discovered the sort command works different on Solaris and Linux.

Take for example, a simple little directory listing:

jake$ cat sortit.txt
prodappl
prodappl/abm
prodappl/APPLSYS.env.tmp
prodappl/abm/11.5.0/admin
prodappl/APPSORA.env
prodappl/PROD.env
prodappl/abm/11.5.0
prodappl/abm/11.5.0/admin/driver
prodappl/APPLSYS.env
prodappl/abm/11.5.0/admin/driver/abmcon.drv


On Linux, I sort it:

jake$ cat sortit.txt | sort
prodappl
prodappl/abm
prodappl/abm/11.5.0
prodappl/abm/11.5.0/admin
prodappl/abm/11.5.0/admin/driver
prodappl/abm/11.5.0/admin/driver/abmcon.drv
prodappl/APPLSYS.env
prodappl/APPLSYS.env.tmp
prodappl/APPSORA.env
prodappl/PROD.env


On Solaris, same command:

woody# cat sortit.txt | sort
prodappl
prodappl/APPLSYS.env
prodappl/APPLSYS.env.tmp
prodappl/APPSORA.env
prodappl/PROD.env
prodappl/abm
prodappl/abm/11.5.0
prodappl/abm/11.5.0/admin
prodappl/abm/11.5.0/admin/driver
prodappl/abm/11.5.0/admin/driver/abmcon.drv


Hmm. I did a "man sort" and found my answer was to force a sort order using the -f flag.

Friday, February 10, 2006

Initial Impressions on Raptor

I'm a PL/SQL Developer guy, no question about it. It gives me the ability to write code pretty quickly and the debugger is second to none. I'm also a Unix guy. I've been running Linux at home for about three years and Solaris is the only desktop I've ever had at work. In order to run PL/SQL Developer I'd either have to use a Windows emulator or a Sun PCI card (PC on a Sun).

Until now.

Oracle's Project Raptor is quite a tool. I installed Project Raptor on my desktop at work this week and I'm hooked. The interface is a little awkward and there's a couple things I don't like about it, but it's definitely a great query tool. I've only looked at the query editor this week (and I haven't totally read the docs yet), but here are my impressions:

  • Pointer control isn't quite there yet. Sometimes my pointer turns to a text tool when clicking on a menu item. Sometimes it's an arrow when it was supposed to be a text tool. Sometimes it just wasn't there.
  • Lots of java exceptions.
  • The explain plan tool is neat once you figure out how to use it.
  • When you run the query, it retrieves the whole resultset. It would be nice to retrieve a subset and let you page through the results. Sure, I know about ROWNUM, but I just expect that automatically.
  • When you retrieve a resultset, the columns always come back too small. You have to expand them almost every time.
  • Most query tools will display a date as a date if the time component is the default time and the entire timestamp if not. In SQL*Plus fashion, the dates show up in NLS_DATE_FORMAT. No biggie, just different.
  • I want to see the tables I have permission on under "Tables", not "Other Users>Tables".
  • Forget about using OS Authenticated users, it uses JDBC Thin.
I know, some pretty nitpicky stuff. Overall, though, I like the query tool and I am using it almost exclusively.

Monday, February 06, 2006

Setting up HTML DB

We're starting to setup HTML DB in some of our databases. We think it will be a good tool to allow our developers to bang out some quick-and-dirty web applications very rapidly.

From a DBA perspective, it's pretty simple to setup and administer. However, I have a philosophical problem with the way workspaces are setup and used.

Traditionally, I'll setup an "owner" schema that holds the tables, packages, objects, etc. that an application may use. Then I'll create one or more "user" schemas that access the "owner's" objects. This method lets me grant the least amount of privileges needed so the application can run. I can also encapsulate business logic and relationships in the application's packages to hide the complexity to the developer. If a developer wants to call my "doit" method of my "stuff" package, he just calls OWNER.STUFF.DOIT().

My first problem with HTML DB is that it expects to have the workspace mapped to the owner schema. While I can place synonyms and views in the "user" schema to appear that the "user" owns the objects, this seems like a kludge. What if I have 50 user schemas, I have to create the same synonym 50 times? [disclaimer]I know about public synonyms, I'm just trying to illustrate a point.[/disclaimer]

My other problem is HTML DB wants to install the demo tables and application into every freaking workspace. I don't want my "user" schemas to have the ability to create tables and I surely don't want DEMO_* as a table in my production system.

I know there are other people out there running HTML DB. Do you map your HTML DB workspaces directly to the owner of the tables?

Friday, February 03, 2006

What kind of person?

What kind of person breaks your car window just for fun?

I went to the gym this evening and the area where I usually park was full. I circled the lot and saw some teenagers pawing through the dumpsters behind the building, but I didn't think anything about it. By the time I got back to my parking area, there were still no spaces, so I parked in a parking deck nearby. I parked under a light just like you're supposed to do and went in and started my workout.

Twenty minutes into my workout, a message comes over the loudspeaker.

"Will the owner of the car with license plate number XYZ-123 please report to the front desk."

Damn, I must have left my lights on.

I grabbed my keys and headed to the front desk. That's where they told me somebody reported my car was broken into. I went out to find a broken driver side window and my glove box gone through. In fact, the radar detector was still hanging on the windshield and there was loose change in the cup holder.

Great.

There was glass everywhere. Inside the car. Outside the car. In fact, there was so much glass down the window, I can't even open the door.

The guys at the gym called the cops and they showed up about 20 minutes later. The cop asked me a couple questions, ran my plates, and gave me a card that had my case number on it. He said I could pick up my Police Report in 4-5 days.

"I'd like to tell you we'll catch the guy that did this, but that'll never happen" was the only thing he could say as he drove away. Maybe I've been watching too much CSI, but no fingerprints? How about a computer simulation of the glass pattern so we can tell how tall the person was? Right. He didn't even get out of the car.

What a hassle. Now I've got to get to a glass shop. On a Saturday. Oh, and it's supposed to rain tonight.

Sure, it was probably those kids. Or maybe some other kids hanging around. What kind of person gets their jollies by breaking car widows?

Thursday, February 02, 2006

CSS and XHTML

I got a gift certificate to Borders for Christmas last month. Since I live within walking distance of the nearest Borders bookstore, the gift certificates don't last very long.

I made a bee-line for the back of the store (as usual) and went straight to the Oracle section. We've done some initial prototypes with HTML DB and I was looking for a good book to help expand my knowledge. Come to find out, there's only one book on HTML DB out, but the one I was looking for doesn't come out until the end of the month.

While the wife was perusing the romance novels, I started thumbing through the CSS and XHTML selections thinking I might spruce up the blog. I got about 10 pages into the first book and couldn't follow it. I thought maybe the book was over technical, so I picked up another one. I started reading that one and after a while, just didn't get it either. Maybe I'll just stick with the templates...

Wednesday, February 01, 2006

State of the IT Job Market, Part II

Well, appearantly MySQL and Oracle DBA's are not as active as the general IT Population. According to my unscientific poll, the majority of you are looking for a new position, just not actively looking.