Adaptive Query Performance Fixes for #DB12c Release 1

We all know adaptive query feature introduced in Oracle Database Release 1 is a problem. Recently I had the opportunity to review few 12cR1 databases and found that to alleviate the performance problems, the DBA set parameter OPTIMIZER_FEATURES_ENABLE= in Oracle Database 12c Release 1 ( This observation is the catalyst for the blog “Adaptive Query […]

New READ Object Privilege in 12cR1

In writing a blog post about:
Creating a Read Only Database User Account in an Oracle Database

It came to my attend of the new “READ” object privilege, which is a New Feature in
Changes in Oracle Database 12c Release 1 (
READ and SELECT Object Privileges

The “SELECT” object privilege in addition to querying the table, allow the user to:
LOCK TABLE table_name (more...)

Creating a Read Only Database User Account in an Oracle Database

It can be quite common to create a “Read Only” database user account in an Oracle database.  To do this is pretty simple using the principle of least privilege:


Expected output:


User created.


Grant succeeded.


To see specific tables for a schema:

SET PAGES  (more...)

FORMAT RELASE changes in #GoldenGate #12.3

This is just a quick note for those who are looking to using Oracle GoldenGate (Classic or Microservices) and want to send trails of a lower version. This information can be found in the Release Notes for Oracle GoldenGate (here).

The default behavior for FORMAT RELEASE settings supported with EXTTRAIL, RMTTRAIL, EXTFILE and RMTFILE has changed. This is due to changes need to support PDBs (more...)

Prepare and link bind Oracle Database Cloud, Application Container Cloud, Application Container Cache and Event Hub

A fairly common combination of Oracle Public Cloud services that I use together – for example for the implementation of microservices – is DBaaS, Application Container Cloud, Application [Container] Cache and Event Hub. In this article, I show the sequence of steps I went through in the Oracle Public Cloud console a few days back to prepare a demo environment for my presentations at Devoxx Morocco in Casablanca. Alternatively, I could have used the command (more...)

Run Oracle Database in Docker using prebaked image from Oracle Container Registry–a two minute guide

imageThis article will show how to run an Oracle Database on a Docker host using the prebaked images on Oracle Continer Registry. It is my expectation that it takes me very little manual effort to run the full Oracle Enterprise Database – just pull and run the Docker image. Once it is running, I get the usual Docker benefits such as clean environment management, linking from other containers, quick stop and (more...)

Oracle SOA Suite 12c: database configuration

After the running the rcu i was keen what was created inside the database. The installation showed some additional tablespaces:
select tablespace_name from dba_tablespaces; 

13 Zeilen gewählt.
Ok. Not really exciting.
But the list of the created tables was quite impressing:
select OWNER,TABLE_NAME from all_tables where owner like 'DEV%';

OWNER                TABLE_NAME                             
-------------------- ----------------------------------------
DEV_MDS              MDS_PURGE_PATHS                        
DEV_SOAINFRA         AQ$_IP_QTAB_G                          
DEV_SOAINFRA         (more...)

Quick introduction to Oracle Container Registry–running one of Oracle’s prebaked images

Oracle has been active with Docker for quite some time now. From the first hesitant steps from some enthusiastic employees with Docker build files that helped people to get going with Oracle software in their experimental containers to a GitHub repo with a broad set of extensive Docker build files to create Docker containers with various Oracle product that are supported ( And of course the Oracle Container Cloud – launched in (more...)

Oracle Database 12c on Oracle Linux: Firewall configuration to access Enterprise Manager on http://host:5500/em

If you have installed your database on Oracle Linux, first step is to access the enterprise manager via port 5500 (https://localhost:5500/em). If you want to access this URL from another host, you have to check and change the firewall settings:

[root@localhost system]# service firewalld status
Redirecting to /bin/systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since So (more...)

Oracle SOA Suite 12c: Installation – Preparing the database

After a successful installation of Oracle 12c database the next step is to create a plugable databse (PDB).
Therefor you have to run the dbca (database creation assistant):

 The first check fails with:
[oracle@localhost ~]$ export ORACLE_SID=soasuite12c
[oracle@localhost ~]$ sqlplus

SQL*Plus: Release Production on Sat Oct 7 17:00:21 2017

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Enter user-name: bpeladmin
Enter password:
ORA-01034: ORACLE (more...)

Oracle Database Docker Image in Docker Cloud (Digital Ocean)

Red Samurai is using Docker for our internal development environment. We are running Oracle Database and WebLogic server (with ADF support) on Docker Cloud. It is much easier to manager Docker containers than to maintain our own server.

In this post I will describe how to setup Oracle Database in Docker Cloud. Of course you could run Docker container locally on your machine, but main power of Docker comes with the option to be able (more...)

ODC Appreciation Day : Oracle Exadata Database Machine

Those that know me well, will know about my “appreciation” of the “Oracle Exadata Database Machine“, more commonly known as “Exadata🙂

So this will be my contribution to ODC Appreciation Day formally known as OTN Appreciation Day, a great initiative by Tim Hall aka

You can see a summary of last year’s blog post here:
OTN Appreciation Day : Summary

The very first Exadata, was the (more...)

Free eBook: DevOps and the DBA, The Last Frontier!

The first edition of the free eBook is available for download at Delphix!

It took us a bit to get the final updates to the eBook version completed and I want to thank everyone at Delphix who helped get the content updated with the latest additions, including the bossman, Eric Schrock and for helping me keep it all organized and finalized, shoutouts to Rita Rosenberg.

If you’re interested in downloading a PDF copy, simply go (more...)

How To Enable DDL Logging in the Database

If for whatever reason, you are required to log DDL, for example, I need to know why the LAST_DDL_TIME of a table was getting updated, you can do this from Oracle 11g.

To enable:

SQL> show parameter ENABLE_DDL_LOGGING

------------------------------------ ----------- ------------------------------ 
enable_ddl_logging boolean FALSE


System altered.

SQL> show parameter ENABLE_DDL_LOGGING

------------------------------------ ----------- ------------------------------ 
enable_ddl_logging boolean TRUE

To disable:

SQL> show parameter ENABLE_DDL_LOGGING

------------------------------------ -----------  (more...)

“#PL/SQL: Therefore, whoever binds forever: automate your tests” – I’m a speaker at #DOAG2017


Today my presentation is confirmed: “Therefore, whoever binds forever: automate your tests”. Maybe the German pun will be the better understood: “PL/SQL: Drum test-automatisiere, wer sich sich ewig bindet!”

I will speak over my experiences with following

  • several PL/SQL testing tools like at least
  • I will give you a demo of this tools and compare their capabilities for
    • architecture
    • branching
    • continuous integration
    • code coverage

If you (more...)

TNS-12543: TNS:destination host unreachable

Scenario : Setting up a physical standby from Exadata to a non-Exadata single instance. tnsping from standby to primary works fine but tnsping from primary to standby fails with:

TNS-12543: TNS:destination host unreachable

I am able to ssh standby from primary, can ping as well but tnsping doesn’t work.  From the error description we can figure out that something is blocking the access. In this case it was iptables that was enabled on the standby (more...)

clckwrk Design Blueprint: Oracle e-Business Suite on AWS

Moving to the Cloud Made Simple: A Framework for Oracle e-Business Suite in AWS 

We wouldn’t blame you if you’re not 100% ready to jump into the Cloud, just because that’s what everyone else seems to be doing. Making the right decision for your business means taking a careful look at what exactly the benefits are going to be. How will your systems work in the Cloud? Can Cloud providers like AWS actually meet your (more...)

OGh Tech Experience 2017 – recap

On June 15th and 16th 2017 the very first OGh Tech Experience was held. This 2-day conference was a new combination of the DBA Days and Fusion Middleware Tech Experience that were held in previous years. To summarize: OGh hit bullseye. It was two days packed with excellent in-depth technical sessions, good customer experiences and great networking opportunities.

The venue was well chosen. De Rijtuigenloods in Amersfoort is a former maintenance building of the Dutch (more...)

Hey JAVA-developer, why don’t you love your database

Why this post?

Partly, this blogpost is a result of a promise to Lukas Eder. Basically my vision adheres quite nicely to the “Thick Database” driven by Bryn Llewellyn and Toon Koppelaars who, understandibly, drive this from an Oracle perspective.
It –more than of course- also nicely fits EnterpriseDB or even vanilla PostgreSQL database landscapes.

There is apparently still so much confusion in the world on the how, why and what of (more...)

ORA-12154 in Data Guard environment

Hit this silly issue in one of the data guard environments today. Primary is a 2 node RAC running and standby is also a 2 node RAC. Archive logs from node2 aren’t shipping and the error being reported is

ORA-12154: TNS:could not resolve the connect identifier specified

We tried usual things like going to $TNS_ADMIN, checking the entry in tnsnames.ora and then also trying to connect using sqlplus sys@target as sysdba. (more...)