Downgrading a RAC database from to

It is not often that I see a database downgrade activity performed and so I thought it would be worthwhile just noting how it was done.
 2 node RAC database to, downgraded the database only and not the grid home.
Downgrade taking place on HP-UX, any downgrades taking place on Windows OS have several additional steps and won’t be covered in this post. 
This database does (more...)

Building and Buying

A few days ago, Vinnie Mirchandani wrote on his Deal Architect blog about a new era dawning in IT. The premise of the article is that more enterprises are building more than buying new IT.  As usual, Vinnie made me think.  In this cause, he made me pause and think about what I'm seeing from my worm's eye view of the Oracle ecosystem.

The trend of building new IT is certainly on the upswing.  As (more...)


Here’s a performance problem that came up on OTN recently. The following query (reforematted) takes “ages” to run – how do you address the problem:

	report_ID IN (
		SELECT	report_id
		FROM	smp_dbuser2.workflow_report
		WHERE	trunc(start_time) = '28-Apr-2017'
		AND	user_id = 'nbi_ssc'

Various pieces of relevant information were supplied (the workflow_report table holds 1.4M rows the workflow_step_report table holds 740M rows and some indexes were described), but (more...)

SQL validation during PL/SQL compilation

A recent posting on SQL.RU asked why Oracle doesn’t raise such errors like “ORA-00979 not a group by expression” during PL/SQL compilation. Since I couldn’t find a link to the answer (though I read about it many years ago, but I don’t remember where…), I’ve decided to post short answer:

During PL/SQL compilation Oracle checks static SQL using only:

  1. Syntactic analysis – Oracle verifies that keywords, object names, operators, delimiters, and so on are (more...)

VirtualBox 5.1.22

Hot on the heels of VirtualBox 5.1.20 comes VirtualBox 5.1.22. 🙂

Downloads and changelog are in the usual places.

I noticed this when I was in the airport yesterday, but I didn’t have enough time to download it. 🙂

It looks like it’s installed OK on my Windows 7 desktop at work and on my macOS Sierra laptop. I’ll have a go on an Oracle Linux 6 host tomorrow probably.



VirtualBox (more...)

Oracle Code : Prague – The Journey Home

I had to be at the airport for 12:15, which meant I got a lie in and I actually slept a bit, which was nice. 🙂

When I woke up I got some breakfast, edited a couple of short Oracle Code videos and caught up with my blog posts. After that was done I went through all the work emails I’ve missed over the last week, just so I don’t have that unpleasant job to do when (more...)

Oracle Code : Prague

I was a little late getting to the event. My hotel was only a mile away from the conference venue, but it was a mile up hill. 🙂 I missed the start of the first keynote, but I had already seen it in London, so I didn’t feel too guilty. 🙂

When I walked into the keynote it was packed. If you followed the event on Twitter you will know the turnout was great. Well done (more...)

Delivering Migration Projects on Time

I did a couple great sessions yesterday for the awesome Dallas Oracle User Group, (DOUG.)  It was the first time I did my thought leadership piece on Making Sense of the Cloud and it was a great talk, with some incredible questions from the DOUG attendees!

This points me to a great [older] post on things IT can do to help guarantee tech projects are more successful. DevOps (more...)

Oracle E-Business Suite and Java Web Start. Finally!

Great things always happen overnight. That’s probably the case for European Oracle Apps DBAs in the same situation, like myself.

This morning I read Steven Chan’s latest blog post about Java Web Start certification with Oracle E-Business Suite and its support release to the public. We heard about it during some informal discussions at Collaborate 17 conference.  Everything is ready, the documentation is prepared, and they are just waiting for final bug related to (more...)

UKOUG Northern Technology SIG – Manchester – April 2017

So yesterday was the UKOUG Northern Technology SIG in the Renaissance Hotel in Manchester.  This SIG combined the: 1. Database, 2. RAC Cloud, Infrastructure & Availability and 3. Systems streams into one.

I was approached by the committee a couple months to present, so I offered to present about Exadata Patching or Upgrading Grid Infrastructure.  The latter got accepted, so I knew I was definitely going to attend this SIG.

So the morning of the SIG, I (more...)

Quiz Night

If this is the closing section of a trace file from a single end-user session that has a performance problem, what’s the most obvious deduction you can make about the cause of the problem, and what sort of action would you take next ?


call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse      296      0.06       0.10          0        651          0           0

Oracle Code : Prague – The Journey Begins

Another stupidly early start, so another night of no sleep, worrying about missing my flight. 🙂

I was up at 04:00 to get a taxi into the airport. The queues were massive, but for some reason I had a business ticket for the outward leg, so I could use the express lane and walk straight past the hordes of people and into the lounge. Happy days.

The first flight was Birmingham to Munich, which took about 90 (more...)

Afternoon of Talking Oracle

A couple of days ago I got an email from someone who had seen me speak at the Oracle Code : London event, asking if I would come and have a chat with them about Oracle, the Universe and everything. Since I was already booked off work, I said, “What about tomorrow?”, and it was arranged. 🙂

So I spent yesterday afternoon speaking with three guys who were based in Birmingham, and a couple of guys based (more...)

Simple Steps to Perform oPatch Maintenance with Ansible

Like the Universe, IT growth seems to be infinite, we always have more environments, more servers, more users, more disk usage, more databases to manage and it won’t stop. In fact, we are pretty sure that this expansion is going to be faster and faster.

We then have to adapt to this new, mutating IT environment being more productive in order to manage more and more targets in less time.

How to achieve this goal? (more...)

Vagrant? Again? …Really?

(Yes. And Ansible. And Oracle…) TL;DR. This is the repo I’ll be talking about. It can use Ansible to provision Oracle (SI/RAC). Like I’ve said before, I use Vagrant quite a lot and I basically have 2 configs that I use every time. One that uses an external ‘hosts.yml’ to define the hosts (ip, ram etc) […]

Moving your Oracle Data to the Cloud with Minimal Downtime

Moving from an on-premise Oracle database to the Cloud can mean a whole host of different challenges, and these are different for every business. One of the things we’ve tackled for larger companies is the problem of migrating a lot of data, with not much time to play with. Big businesses come with big sets of data, and often don’t have time to spare for a lengthy window of downtime. Systems down means money spent, (more...)

OracleCode London 2017

My colleague & boss Ace Director Luis Weir and I where invited to present at Thursday 20th’s Oracle Code London.

oracle_codeThe request to present came late as we where needed to cover someone who had to cancel (not that we aren’t grateful for the opportunity). This did mean getting the presentation together was a little bit of a scramble, unfortunately I missed a couple of sessions as I needed to assemble an environment, work out how (more...)

Undo Understood

It’s hard to understand all the ramifications of Oracle’s undo handling, and it’s not hard to find cases where the resulting effects are very confusing. In a recent post on the OTN database forum resulted in one response insisting that the OP was obviously updating a table with frequent commits from one session while querying it from another thereby generating a large number of undo reads in the querying session.

It’s a possible cause of (more...)

Intra-block row chaining optimization in 12.2

I’ve wrote in previous post

4. Next row piece can be stored in the same block only with inserts. When you run update, oracle will place new row piece into another block.

But it’s not valid anymore 🙂 Since 12.2 Oracle optimizes updates too.
You can check it on 12.2 and previous version using example 4 from previous post:

Test 4

drop table test purge;
set serverout on
alter session set tracefile_identifier='test4';

Oracle Database on the Docker Store

You probably know that there’s an official github repository storing Dockerfiles and samples to build Docker images for Oracle products and Open Source projects. Now Oracle takes one more step to support Docker. Oracle Brings Oracle’s Flagship Databases and Developer Tools to the Docker Store (you can read the official announcement). Oracle Linux was already on the Docker Store. Oracle Database Enterprise Edition, Oracle client tools, Oracle Weblogic, Oracle (more...)