A setup to test backup and restore options

A couple of years my team put together some procedures and the underlying databases to allow testing of as many RMAN recovery options as we could think of. We had two databases which gave us a Dataguard capability and we secured both databases using Commvault backups so we always had a clean starting point. Each team member had a training objective to complete the course and we all thought it was an excellent refresher process. (more...)

Modifying a datafile within Amazon AWS

Amazon restrict access to the SYS user within AWS instances for safety and security reasons  – the safety aspect being that users cannot be trusted to not cause self-harm!

Wishing to increase or add a datafile to a tablespace is not allowed directly and you have to use the API “rdsadmin.rdsadmin_util” to manage this and other functions.

These functions are listed in here  and a further page provides some good examples

One little (more...)

Oracle Cloud Total Cost of ownership Calculator – rather confusing

I was interested enough to try out the Oracle  TCO calculator that I was sent an email about. I can honestly say it has rather confused me in what it is comparing and how the results are calculated.

I will share a few screen shots and I will take you through my thoughts

I put a dummy company name in and my country – bizarrely it does not auto select the currency.

I then hit (more...)

12C Grid – GENO process causes high CPU usage

This is an interesting bug which has affected a number of our databases  – perhaps because we are not patched to the latest levels in every case.
The MoS note is this one – Patch 20373598: GEN0 TIMEOUT ACTION ALWAYS TRY TO INITIALIZE OCR CONTENT    p20373598_121022_Linux-x86-64
fixed in Bug 22291127 (Apr 2016) Database Patch Set Update (DB PSU)
Here is view of top showing how a server looks (more...)

Creating a database link using a tnsnames entry

I have had this in my draft posts for a couple of weeks and I refrained from publishing because it was too simple.

However the main purpose of this post is to help others save time by providing useful information. The secondary purpose of to remind myself how I overcame whatever problem is being covered.

A user did not have permissions to edit the tnsnames.ora file on a server so I created the database (more...)

ORA-01450: maximum key length (3800) exceeded

This is an oddity as essentially I have an index on a table but I cannot rebuild it because it suggests the block size should be bigger than 8K – however both the database and tablespace block size are 16K already.

The maximum allowed index key length depends on your block size. So the minimum allowed size reported in ORA-01450 varies, depending on which block size your index is using:

ORA-01450 maximum key length (758) (more...)

How to add a metric extension and use a ‘control’ table to test results

I have previously blogged about creating a User Defined Metric (UDM) before  (7 years ago!)  but the method I am using today demonstrates how you can test out the alert using specific data.

The aim was to see if integration data is flowing through a table.  If there is a backlog we want to know about it.

Simon Ryan, a colleague did all the preparatory work and created all the 18 !! screen shots (more...)

DBA vacancy Bradford, West Yorkshire

I have a vacancy in my team and the details are in the link below


Lots of interesting work going including 85Tb Data Warehouse on Exadata and developing Cloud capability using AWS and Google.


Baselines – session creating privs v session running privs

A colleague Richard Wilkinson was telling me about an issue he had come across with baselines and I asked him to write it up as it was an interesting experience.

The following MERGE SQL runs once a day. It always uses the same plan and roughly takes between 30 and 80 minutes:

SQL_ID/ PHV 6zs5dk6t6pkfs / 3064471754

 SELECT ilv.bsns_unit_cd,
 ilv.cntnt_cd ,

Managing the WINDOW_ID in Goldengate V11.

When we import data into the landing schema on a Dat Warehouse via Goldengate, we add 3 fields to each record detailing when and how the record got loaded. This can be found in the *.inc files under $GG_HOME/dirinc on the target GG installation. An example of this is: