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...)

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...)

Submitted two abstracts for Oracle OpenWorld 2017

I submitted two abstracts for Oracle OpenWorld 2017. I have two talks that I have thought of putting together:

  • Python for the Oracle DBA
  • Toastmasters for the Oracle DBA

I want to do these talks because they describe two things that I have spent time on and that have been valuable to me.

I have given several recent talks about Delphix. Kyle Hailey let me use his slot at Oaktable World in 2015 which was at the same time (more...)

Using EMCLI for Mass Update a Property Value

Here’s a quick and simple script which can help you to update a target property value of all targets running on a specific host. The script will expect you to enter 3 parameters: host name, property name and property value. Then it will search for the targets running on the given host name, and set the property to the given value:

emcli hostname "propertyname" propertyvalue

It’s better to enter the property name in (more...)

The Chicken Before the Egg of Cloud Migrations

For over a year I’ve been researching cloud migration best practices.  Consistently there was one red flag that trips me that I’m viewing recommended migration paths.  No matter what you read, just about all of them include the following high level steps:

As we can see from above, the scope of the project is identified, requirements laid out and a project team is allocated.

The next step in the project (more...)

Oracle Enterprise Linux – Pre-Built for Enterprise

We've shared the AMI we use for running Oracle Enterprise Products like e-Business Suite. You'll find it on the AWS Marketplace pre-loaded with all the pre-requisites you need for your Oracle implementation on AWS.

Link to the Marketplace...

Tips for Upgrading a Database

In February ’17 I participated in Mike Dietrich’s upgrade workshop and it was great! I don’t want to repeat stuff that he said there, you can read everything on his blog. This workshop made me think about upgrades I did in the past (and I did quite a few) and important things to think about before … Continue reading Tips for Upgrading a Database

Transportable Tablespace–part 2

I did a little demo of sharing a tablespace between two databases a few days back – you can see the details here or by just scrolling down Smile if you’re on the home page.

To avoid clouding the demonstration I omitted something in the details, but I’ll share that now, because it could be critical depending on how you currently use transportable tablespaces.

Let me do the most basic of examples now, transporting a tablespace (more...)

How to find the object that caused ORA-08103 error

A developer told me that two package executions died with ORA-08103 errors and he didn’t know which object caused the errors.

I found two trace files that had the following contents:

*** SESSION ID:(865.1201) 2017-04-17 10:17:09.476
OBJD MISMATCH typ=6, seg.obj=21058339, diskobj=21058934, dsflg=100000, dsobj=21058339, tid=21058339, cls=1

*** SESSION ID:(595.1611) 2017-04-17 10:17:35.395
OBJD MISMATCH typ=6, seg.obj=21058340, diskobj=21058935, dsflg=100000, dsobj=21058340, tid=21058340, cls=1

Bug 13844883 on Oracle’s support site gave me the idea to (more...)

eAdam 3.0

Source: eAdam 3.0

Be Prepared When Using DBFS

Goldegate 12c implementation for 2-node RAC with XAG from Grid Home using DBFS.

We are facing situation where DBFS has 41G free while DBFS_TS has 1.5G free and having to resize BIGFILE tablespace.

Tablespace and DBFS size is 45G.

Basically, 45G tablespace is used to maintain 4G Goldengate files.

Based on steps followed from NOTE:1453350.1 – How to Determine what storage is used in a LOBSEGMENT and should it be shrunk / reorganized?

Next step (more...)

Character selectivity

A recent OTN posting asked how the optimizer dealt with “like” predicates for character types quoting the DDL and a query that I had published some time ago in a presentation I had done with Kyle Hailey. I thought that I had already given a detailed answer somewhere on my blog (or even in the presentation) but found that I couldn’t track down the necessary working, so here’s a repeat of the question and a (more...)

Sharing a tablespace between 2 databases

I was reading an interesting discussion today about multiple databases each containing large amounts of read-only data.  If that read-only data is common, then it would make sense to have a single copy of that data and have both databases share it.

Well, as long as you can isolate that data into its own tablespace, then you can do that easily with Oracle by transporting the metadata between two databases and leaving the files (more...)

Conference Networking- Tips to Doing it Right

I was in a COE, (Center of Excellence) meeting yesterday and someone asked me, “Kellyn, is your blog correct?  Are you really speaking at a Blockchain event??”  Yeah, I’m all over the technical map these days and you know what?

I love the variety of technology, the diversity of attendance and the differences in how the conferences are managed.  Now that last one might seem odd and you might (more...)

Error ORA-01033 After Doing a Switchover in a 12.1 RAC Environment

The other day I did a switchover in a RAC environment , which went pretty smooth , but after doing the switchover in the primary, I kept getting the following error:

select dest_name,status,error from gv$archive_dest_status where dest_id=2;

--------- -----------------------------------------------------------------
ERROR	  ORA-01033: ORACLE initialization or shutdown in progress

ERROR	  ORA-01033: ORACLE initialization or shutdown in progress

I went and checked the standby, and saw the standby was in recover mode (more...)

Optimizer bug fix makes a query run more than 3 times slower

I’m working on an to upgrade and found a handful of queries that run more than 3 times longer on than The data and optimizer statistics are very similar on the two test databases. I’m pretty sure that an optimizer bug fix caused this difference. So, the irony is that a fix to the optimizer that we get with (more...)


I recently switched to a Mac after decades use with PCs.  I loved my Surface Pro 4 and still do, but that I was providing content for those I thought would be on Macs, it seemed like a good idea at the time.  I didn’t realize at the time I’d be doing as many SQL Server conferences as Oracle in my next role with the Delphix… 🙂

With this (more...)

ASM Disks Scripts

One of my customers is working with ASM and their database grows really fast. So every one in a while we need to add another ASM disk to the system. Before I add a new ASM disk, I usually verify that there is indeed a new disk in the system that is not being used. … Continue reading ASM Disks Scripts