Snorkelling in the Oracle Listener Logs.

(Snorkelling is not quite as in depth as a “deep dive”!)

Attempting to parse a listener.log will probably bend your brain, but I needed to do it recently to determine which unique servers and/or desktops and/or application servers were still connecting to a database prior to that database going down for maintenance. This was an exercise in confirming that the documentation we have, is correct.

Continue reading Snorkelling in the Oracle Listener Logs.

Dropping Temporary Tables (With Bonus, Broken Check Constraints!)

I found a broken check constraint, one that simply wouldn’t work, on a database. It was created as:

... CHECK(COLUMN_NAME IN ('Y','N',NULL)) ;

Try it yourself, it doesn’t work! Anyway, I needed to find if there were any other check constraints broken in this manner, so I did the following:

Continue reading Dropping Temporary Tables (With Bonus, Broken Check Constraints!)

How to Start an Oracle Database When You Are Not in the DBA Group

This applies to Linux, Unix as well as Windows, but affected me on a Windows 2012 Server running Oracle 11.2.0.4 Enterprise Edition.

My user on the server was an administration user, but not in the ora_dba group. This is required to connect / as sysdba within SQL*Plus. The SYS password had been changed recently but whoever did it, did not update the password vault. The users were urgently requiring their database be started, I was the only DBA in the office, the SYS password was unknown, and my user didn’t belong directly to the ora_dba group. What to do? Continue reading How to Start an Oracle Database When You Are Not in the DBA Group

RMAN Connection Troubles, RMAN-03010 & RMAN-10038

For no reason, after many weeks of use, RMAN suddenly cannot connect:

rman target sys/******@dbadb01 catalog ...

...
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00601: fatal error in recovery manager
RMAN-03010: fatal error during library cache pre-loading
RMAN-10038: database session for channel default terminated unexpectedly

Continue reading RMAN Connection Troubles, RMAN-03010 & RMAN-10038

Tnsnames.ora, IFILE and Network Drives on Windows

I’ve recently begun a new contract migrating a Solaris 9i database to Oracle 11gR2 on Windows, in the Azure cloud. I hate windows with a vengeance and this hasn’t made me change my opinion!

One of the planned improvements is to have everyone using a standard, central tnsnames.ora file for alias resolution. A good plan, and the company has incorporated my own tnsnames checker utility to ensure that any edits are valid and don’t break anything.

I found that the tnsnames.ora in my local Oracle Client install, was not working. Here’s what I had to do to fix it. Continue reading Tnsnames.ora, IFILE and Network Drives on Windows

TraceMiner – An Oracle Utility to Mine 10046 Trace Files

Have you ever needed to trawl through an Oracle Trace file to extract the SQL statements executed and found a whole load of bind variables have been used, so you need to find the BINDS section, extract the values, and virtually paste them into the parsed SQL statement?

No? This utility isn’t for you then. Continue reading TraceMiner – An Oracle Utility to Mine 10046 Trace Files

Archivelog Deletion Policy Changes Don’t Always Take Immediate Effect.

The standby database had the RMAN archivelog deletion policy set to ‘NONE’ instead of being ‘APPLIED ON ALL STANDBY’ and the FRA filled up to within an inch of its life, or 99% of its allocated quota! Not a major problem as this database was not in production, but still, an alert is an alert and has to be dealt with. However, things did not go quite as expected. Continue reading Archivelog Deletion Policy Changes Don’t Always Take Immediate Effect.