I tend to compile with gcc, in a bash session, on Windows 7. I use Code::Blocks as my IDE of choice and one of my projects, well, quite a few, use the excellent OCILIB library for accessing Oracle databases, by Vincent Rogier. I can’t recommend this library highly enough.
However, it comes with a Code::Blocks project file to build 32 bit libraries, but I need 64 bits. Here’s how I do it.
Continue reading Build 64bit OCILIB Libraries for CodeBlocks
There’s a new utility to assist in diagnosing the underlying cause of Oracle deadlocks. Interested?
Continue reading Oracle Deadlock Analysis
Thanks to http://www.dbaglobe.com/2010/08/drop-temporary-tablespace-hang-with-enq.html it was a simple matter to resolve the above enqueue wait on an attempt to drop a previously default temporary tablespace.
Continue reading ENQ: TS – Contention
Have you ever seen the error RMAN-20033: control file SEQUENCE# too low and wondered what could be causing it?
Continue reading RMAN-20033: control file SEQUENCE# too low
Sometimes, just occasionally, you find yourself as a DBA on a site where, for some strange and unknown reason, you don’t have an Entity Relationship Diagram (ERD) for the database that you are working on. You could use a tool such as
SQL*Plus (or even,
SQL Developer – if you must) to generate a list of referential integrity constraints. There has to be a better way. Continue reading Generate Entity Relationship Diagrams from a SQL Script.
(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.
You know the score, you are running an
impdp and it looks to have hung up. You’ve watched the log file (or on screen messages) and it’s sitting at something like:
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Continue reading IMPDP Hangs, or Appears to Hang – But Has it?
TraceMiner has been updated and rewritten. Numerous bugs and foibles have been fixed.
TraceAdjust is a new, useful, utility to carry out some pre-processing on a trace file before you have to use your own weary eyes to work thorough potential Oracle performance problems! That’s why I wrote it!
Continue reading TraceMiner2 and TraceAdjust
TraceMiner has been updated again. Mostly bug fixes, but there’s a little enhancement too. The current release is 0.21.
Continue reading TraceMiner Updated Again
TraceMiner has been updated after a couple of foibles were found during the processing of a trace file. Continue reading TraceMiner Utility – Updated
I have a table with dates in, and some NULLs. Two people, on the same database, running the same
SELECT query, in the same schema, with the same privileges, get vastly differing results. Why? Fine Grained Auditing is not at play here. Continue reading Interesting Foible with Oracle Dates
I recently posted a useful
oraenv for Windows utility. This has been updated so that you can run it in batch files by passing the desired Oracle SID on the command line. Details at http://qdosmsq.dunbar-it.co.uk/blog/2016/08/oraenv-for-windows/
Having recently had to learn a whole new way of working when I took on a contract migrating a database to the Windows “cloud”, I realised that there’s no equivalent to the useful Unix
oraenv utility. I had to write my own. Give me a
bash shell any day! Continue reading Oraenv for Windows
It’s always nice to know which extra cost Oracle options are enabled, whether deliberately or silently as the result of some patching that has taken place. Continue reading Which Extra Cost Oracle Options is my Windows Server Running?
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!)