Tnsnames Checker Utility
· β˜• 8 min read
I have made available for free a utility that will parse a tnsnames.ora file and report back on anything that it doesn’t like such as duplicate entries, invalid characters, redefinitions of parameters, errors etc etc. Version 0.5 released to_date('08/06/2015', 'dd/mm/yyyy')**. Version 0.4 released to_date('07/11/2015', 'dd/mm/yyyy')**. Version 0.3 released to_date('06/12/2014', 'dd/mm/yyyy')**. ** Oracle joke! :-) ** Also avoids Date confusion for my American readers. :-) It’s a small utility, based on the ANTLR4 parser/compiler generator tool.

Shell Variable Indirection in a Database Build Script
· β˜• 5 min read
Ever wanted to set a variable to the name of another variable, and from there, somehow get the value of the other variable? I did, recently, and this is what I had to do. I work with numerous databases but of all the ones I have, there are only 18 different types and these cover all possible (at present) systems in production or development. The first 3 characters of $ORACLE_SID define the system name and we use a script that duplicates any of 18 template databases to create the desired new one.

Beware of the Silent Database Killer!
· β˜• 13 min read
There is, out there in Oracle Land, a silent database killer. You never know when it will strike and it affects all databases right up to and including 12c. When it strikes, it does so silently, there is no evidence of its passing, until it is far too late. What is This Killer? The database killer is any code which runs in NOLOGGING or UNRECOVERABLE or, in some cases prior to 11g, DIRECT PATH loads.

RMAN Error ORA-15028: Archived Log Not Dropped.
· β˜• 2 min read
The following error popped up in an RMAN backup which was attempting to delete archived logs that had been backed up twice, at least, and were created more than two days ago: 1 2 RMAN-03009: failure of delete command on default channel at 09/12/2014 08:43:50 ORA-15028: ASM file '+FRA/MY\_DBNAME/archivelog/2014\_09\_09/thread\_1\_seq\_35804.3258.857840113' not dropped; currently being accessed (Database names changed to protect the innocent, as usual.) David Marcos has a blog entry from September 2010 on this very matter at http://davidalejomarcos.

Oracle RAC - Flashback Database
· β˜• 2 min read
It was a simple enough request, flashback this particular database to a guaranteed restore point. What could possibly go wrong? Database names etc have been changed to protect the innocent, and me! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 $ sqlplus / as sysdba SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount ORACLE instance started. ... Database mounted.

A Couple of Useful Linux & HP-UX Tricks
· β˜• 2 min read
Recently at work, I was on an HP server and needed to grep -B3 a large log file to find the three lines prior to a number of Oracle error messages I was searching for, in order to fix things. It turned out that HP-UX doesn’t have the -B (or the -A) options. Bummer. A bit of awk fixed the former, but the latter I leave as an exercise for the reader as they say!

Tnsnames.ora Parser
· β˜• 2 min read
Have you ever wanted to use a tool to parse the manually typed up “stuff” that lives in a tnsnames.ora file, to be absolutely certain that it is correct? Ever wanted some tool to count all the opening and closing brackets match? I may just have the very thing for you. Download the binary file Tnsnames.Parser.zip and unzip it. Source code is also available on Github. When unzipped, you will see the following files:

Linux Mint (Cinnamon) Not Showing Programs on Task Bar.
· β˜• 1 min read
For some strange reason, my Linux Mint Cinnamon desktop suddenly stopped showing the running program buttons on the task bar. I could only switch between running programs with ALT+TAB. It’s easy when you know how, but for those who don’t, this is what you do: Right click on the blank task bar. Select the “Add to Panel…” option. (Or similar depending on your version of Mint.) Type “Window” into the search box.

Thunderbird - Message Filters stop Working on Email Download - But Work Ok Manually.
· β˜• 2 min read
I think this topic has the longest title of all my postings! Never mind. Have you ever started Thunderbird fetching your emails, and encountered a pop-up message that starts off by saying “The message could not be filtered for folder ‘whatever’ because writing to folder failed”? Read on for the cure. Credit: go here - https://bugzilla.mozilla.org/show_bug.cgi?id=931303 - then scroll down to Comment 39. A gentleman by the name of Craig Lassen deserves all the kudos for this fix.

Impdp Hangs Importing Materialized Views
· β˜• 4 min read
A simple exercise to refresh a schema in a test database caused no end of problems when it hung at 99% complete. The last message on screen indicated that it was importing the Materialized Views (yes, with a ‘Z’). After a long time, the DBA running the import killed it, cleaned out, and restarted the whole process. Exactly the same happened. Background The databases in question were both 11.2.0.3 Enterprise Edition.

VirtualBox - Sending Special Key Combinations to the Guest OS.
· β˜• 1 min read
As standard, VirtualBox has a menu option (machine->Insert CTRL+ALT+Backspace or Insert CTRL+ALT+DEL) which is fine if you need these key combinations sending to the guest and not grabbed by the host, however, how can you send CTRL+ALT+F1 through CTRL+ALT+F8 to a Linux guest OS to get it to startup one of its virtual consoles? Normally, those keys would be grabbed and actioned by the host OS rather than being passed to the guest.

Interesting Data Guard Problem
· β˜• 3 min read
While checking out a dataguarded database prior to being handed over into production, I needed to test that both OEM and dgmgrl could carry out a switchover and failover from the (stand-alone) primary db (ORCL_PDB) to the physical standby database (ORCL_SBY), and back again. The Problem Database and server names have been changed, to protect the innocent, and me! OEM had no problems, other than the usual “bug” whereby the credentials used for the standby server were those for the primary server, but hey, that’s OEM for you, it’s nothing if not inconsistent!

Arduino Christmas Light
· β˜• 3 min read
Here’s a short Arduino sketch that will fade and flash an LED on pin 9. Works a treat on a Shrimp as well. Which is what mine runs on - my Breaded Shrimp which stared like on a tiny breadboard like the one at the end of the above link, but which is now permanently soldered onto a piece of copper “breadboard” as you can see in the image that’s around here somewhere.