Pitfall: Upgrade to 21c fails when ORDIM is present but no SDO

You may have read my previous blog post about Upgrading a non-CDB to Oracle Database 21c. And I referred to a potential Pitfall: Upgrade to 21c fails when ORDIM is present but no SDO. In this blog post I would like to explain how to avoid this pitfall beforehand and explain what needs to be done.

Pitfall: Upgrade to 21c fails when ORDIM is present but no SDO

Photo by Sara Codair on Unsplash

What’s the problem?

In my previous blog post I showed you the ideal and normal way. But during my tests I came across an issue I was not aware of – and I simply had no …

Continue reading...

AutoUpgrade may run into a timeout when GI is lower than 19.10.0

The other day I received a question from a colleague about the risk of having GI and database both not being on the same RU. And a long while ago I blogged about it. We recommend that you keep it in synch. But you don’t have to. At the same time I received a wish from Ernst Leber to post something on the blog he and his colleague had trouble with when upgrading to 19c in a RAC environment. AutoUpgrade hung. But he titled his email with “not an AutoUpgrade problem!”. Still I agree, it is worth to write …

Continue reading...

You may need a one-off for DBMS_OPTIM_BUNDLE in 19.10.0

It’s been a while since I blogged about the DBMS_OPTIM_BUNDLE – and to me, the package is still sort of a mystery. Ideally you can least and enable or disable behavior changing optimizer fixes per RU. And in Oracle 19.10.0, you will find a new surprise. So You may need a one-off for DBMS_OPTIM_BUNDLE in 19.10.0.

You may need a one-off for DBMS_OPTIM_BUNDLE in 19.10.0

Photo by Jonas Denil on Unsplash

Quick Recap

Just in case you haven’t dealt with DBMS_OPTIM_BUNDLE yet or for a while, a quick recap.

With this procedure, you can list the available patches to turn on or off at will:

SQL> set serveroutput 
Continue reading...

Apply Patch 31088341 before Upgrade to prevent ORA-1403

As I learned from a customer this week, this patch is a must have when you use Partitioning and you attempt to upgrade to Oracle 19.9.0 or earlier. So please apply patch 31088341 before Upgrade to prevent ORA-1403 happening.

Apply Patch 31088341 before Upgrade to prevent ORA-1403

Photo by Grant Durr on Unsplash

What is the issue?

This applies to all 19c upgrades at least until 19.9.0.

The fix is included from 19.10.0 Release Update onward. So if you are upgrading to 19.10.0 or higher, you can stop reading here (thanks Pablo for the hint!).

You may see this error pattern in catupgrd0.log:

==Error from catupgrd0.log===

Continue reading...

OJVM datapatch fails with ORA-29532 – but the root cause is noncdb_to_pdb.sql

Kudos to Robert Ortel who brought this nice misbehavior to my attention. And even though it looks like this would be an OJVM issue, it is caused by noncdb_to_pdb,sql, the script which is used to convert a non-CDB to a PDB. When you apply an OJVM patch, OJVM datapatch fails with ORA-29532 – but the root cause is noncdb_to_pdb.sql.

OJVM datapatch fails with ORA-29532 - but the root cause is noncdb_to_pdb.sql

Photo by Alexandra Gorn on Unsplash

It’s a bit tricky

First things first. This is not a blog post to blame OJVM. The problem just happens because datapatch for an OJVM patch touches data in the dictionary which hasn’t …

Continue reading...

OPatch Alert: Be aware of cleanup issues – and the JDK version

This is just a quick alert blog post for Friday with an OPatch Alert: Be aware of cleanup issues – and the JDK version. And thanks to several people who either commented or mailed me directly and asked if I could alert others as well.

OPatch Alert: Be aware of cleanup issues - and the JDK version

Photo by Hugo Jehanne on Unsplash

OPatch cleanup issue

At first, you may have read earlier this week my article about patching my environments with the April 2020 bundle patches. For my patch activity, I’ve had to exchange my OPatch versions for, and 19.7.0. And I guess, I would have had …

Continue reading...

APEX is invalid after upgrading to 12.2 – ORA-20001

We are running the AutoUpgrade-for-RAC beta test since last week. And the first issue one customer encountered … is neither an AutoUpgrade nor a RAC issue. It has to do with APEX and SPATIAL, and missing grants. APEX is invalid after upgrading to 12.2 – ORA-20001

APEX is invalid after upgrading to 12.2 - ORA-20001

Photo by Aditya Vyas on Unsplash

What is happening?

You are doing an upgrade to Oracle Database And you receive a number of errors during the component validation phase.

19:04:14 SQL> EXECUTE dbms_registry_sys.validate_components;
...(19:04:15) Starting validate_apex for APEX_180100
ORA-20001: MISSING GRANT: grant execute on "MDSYS"."SDO_DIM_ARRAY" to APEX_180100
ORA-20001: MISSING GRANT: grant execute on 
Continue reading...

Transportable Tablespace PDB Migration and Local Undo

Transportable Tablespace PDB Migration and Local Undo

Photo by Steve Johnson on Unsplash

Sometimes it is necessary to warn you about known pitfalls to avoid frustration. In this particular case I decided not to blog about it simply because I thought this won’t happen to too many other people. Well, yesterday my good friend Philippe Fierens dropped me a message about an issue he ran into with a Transportable Tablespace PDB Migration and Local Undo. And I immediately knew what caused him trouble – and I regret that I didn’t blog about it (sorry Philippe!). We’ve seen the same problem with a large ExaCC migration project …

Continue reading...



There usually a philosophic battle happening when it comes to underscore parameters. The official statement is more or less: It’s an underscore, hence it is undocumented and you shouldn’t touch it unless Oracle Support advises you to do so. I agree in many cases. But in this specific one, I don’t. And in this post I will explain why you should set _EXCLUDE_SEED_CDB_VIEW=FALSE in all your singe- and Multitenant environments. Always!

A bit of history

At first, a little bit of a history excursion. This parameter wasn’t an underscore in Oracle 12.1. You can find it as EXCLUDE_SEED_CDB_VIEW in …

Continue reading...

RMAN Backup Gives RMAN-06091: No Channel Allocated for Maintenance

RMAN Backup Gives RMAN-06091: No Channel Allocated for MaintenanceI really don’t want to turn this blog into an accumulation of issues and flaws. But as I explained many times before, the blog for me is also a way to dump information I likely will need the sooner or later again.

Recently I blogged about another RMAN issue in Oracle with traces. This was fixed with the July 2018 RU for Oracle But the issue below about which Piero Ferraz from Brazil alerted me (thanks!!!), happens in exactly this RU.

RMAN Backup Gives RMAN-06091: No Channel Allocated for Maintenance

This issue gets introduced with the July …

Continue reading...

Special characters show junk in CLOB columns after upgrade to Oracle with JDBC

Special characters show junk in CLOB columns after upgrade to Oracle with JDBCThanks to my support colleague Roland Graeff who told me about this issue at a customer today. And I consider this a pretty serious issue. It can happen that Special characters show junk in CLOB columns after upgrade to Oracle with JDBC.

This is as bad as it sounds. Roland told me about a case where the application showed weird characters instead of German umlauts (ä, ö, ü, Ä, Ö, Ü) after an upgrade from Oracle Database to

Special characters show junk in CLOB columns after upgrade to Oracle with JDBC

Roland explained to me that …

Continue reading...

RMAN backup generates traces in Oracle

RMAN backup generates traces in Oracle seems to be the “tracing” release without further patch or parameter treatments. After posting about MMON unconditional traces in Oracle a day ago, I received a couple of comments either on the blog, via LinkedIn or Twitter regarding other trace facilities in Oracle Database One of them is the case that RMAN backup generates traces in Oracle

And please, very important upfront:
Oracle Database is a very stable and reliable release based on all the customer feedback Roy and I received so far. For instance, when we check for optimizer issues …

Continue reading...

MMON unconditional traces in Oracle

MMON unconditional traces in Oracle love visiting customers onsite. Last week I visited die Mobiliar in Bern, Switzerland. I received a list of open issues to discuss – which is very good to prepare a visit. And when we all were sitting together there was this “Ah, one final thing”. They have an issue with traces the databases writes every few seconds. As a remedy the DBAs increased the backup interval to remove the traces as otherwise the system would potentially run out of inodes or space. All the traces had the same pattern. And I learned quickly: these are MMON unconditional traces in …

Continue reading...

Issue with PDB Archives in Oracle in ASM

There is a fancy new command to unplug a PDB in Oracle Database


The nice thing with this command differing in the file ending of ‘pdb‘ instead of ‘xml as you used it in Oracle 12.1 (and the ‘xml‘ option is still available of course): Instead of just creating an xml description file it zips everything together into a PDB archive.

SQL> show pdbs

---------- ------------------------------ ---------- ----------
SQL> create pluggable 
Continue reading...


At the DOAG Conference in November in Nürnberg in November 2016 a customer asked me right after my talk about “Upgrade to Oracle Database 12.2. – Live and Uncensored” why the DBA_REGISTRY_HISTORY does not get updated when he applies a Bundle Patch and follows all instructions including the “./datapatch -verbose” call.

I was wondering as well and asked him to open an SR. Which he did. And he received the message from Support that it is not supposed to appear in Oracle 12c anymore this way but only in DBA_REGISTRY_SQLPATCH. Now I dug a bit deeper …

Continue reading...

_rowsets_enabled – Apply patch and use the default

I while back I blogged about issues with “rowsets“, a new Oracle 12c feature which unfortunately had two known wrong result (WQR) bugs:

What does “rowsets” actually mean?

I’d like to thank Sankar, our Development manager for providing this explanation which sheds some light on how important this feature actually is:

“Rowsets is a SQL execution performance enhancement introduced in Oracle RDBMS release 12.1 and further extended in a future release of the Oracle Database.

Prior to 12.1, data processing in the SQL layer were

Continue reading...

GC Freelist Session Waits causing slowness and hangs

Best Practice Hint

One of the best things in my job:
I learn from you folks out there. Everyday.

Credits here go to Maciej Tokar who did explain the below topic to me via LinkedIn – thanks a lot, Maciej!

Locks are not being closed fast enough, resulting in gc freelist waits

You can find a reference for Global Cache Freelist in the Oracle Documentation. This issue here can or will lead to database being slow, up to complete hangs. Based on my research it looks as the issue is not related to RAC only but a general thing. In your session …

Continue reading...

Switch off “_rowsets_enabled” in Oracle Database 12c

Please find a recent update here:

and more important:

Twitter is a good thing. I get alerted on things I haven’t seen before. And sometimes some things are more than interesting.

This one is actually proven by Jonathan Lewis – and you can read all the details in Jonathan’s blog post here:

There seems to be a realistic chance to get wrong query results displayed (regardless of using SQL*Plus or a JDBC or any other client – see the comment by Stefan Koehler below …

Continue reading...

Ouch, this hurts: bug 20880215 – patch Oracle 12c


Just realized that my preivous blog post heading was misleading: it said “patch AFTER upgrade” which is misleading. You should apply this patch BEFORE you upgrade but of course to your new/future Oracle 12c home. If you hit the issue then apply the patch after upgrading to remedy it. Sorry for the confusion.

No updates for over a week? Sorry for that but too many workshops, swamped with OOW prep work – and a wonderful issue with the browser cache and the blog software putting all my new blog post work directly into /dev/null.

Thanks to Marcel Paul for

Continue reading...

DBCA 12c and “” – things to know

A few weeks ago I did blog about the DBUA (Database Upgrade Assistant) not executing ‘datapatch’ (i.e. not applying the SQL changes involved with a SPU/PSU/BP) automatically:

For DBUA, please note that this behavior DOES NOT APPLY to command line upgrades done with – as you can see from this somewhat disturbing messages during the upgrade in phase 65 and phase 69 (which are not errors but just informational messages for datapatch’s execution):

Datapatch phases command line upgrade

But afterwards I have learned that things are worse.
The same behavior is true when you create

Continue reading...

Optimizer Issue in Oracle “Reduce Group By”

Wrong Query Results BugDBAs biggest fears I’d guess are Optimizer Wrong Query Results bugs as usually the optimizer does not write a message into the alert.log saying “Sorry, I was in a bad mood today …”.

The Oracle Database Optimizer is a complex piece – and in Oracle 12c it delivers great performance results. Plus (my personal experience when you know what to do) it is more predictable which I like a lot when changing databases from one to another release. But due to its complexity sometimes we see issues – and sometimes it is necessary to switch off tiny little pieces …

Continue reading...

Log Writer Slave Issues in – mainly on IBM AIX and HP-UX but also on Linux

Currently we see a lot of issues with the Multiple Logwriter feature in Oracle Database, especially on the IBM AIX platform.

What are Multiple LGWRs?

You will see multiple LGnn (Log Writer Worker) processes on multiprocessor systems, The LGWR (Log Writer) creates worker processes (slaves) to improve the performance of writing to the redo log. LGnn (Log Writer Worker) processes are not used when there is a SYNC standby destination. Possible processes include LG00LG99.

Here is a list of new background processes in Oracle Database 12.1:
MOS Note 1625912.1 – New Background

Continue reading...

ORA-20000 Unable to gather statistics concurrently: Resource Manager is not enabled
ORA-06512: at “SYS.DBMS_STATS”

We are running a great training this week in Munich, called TECH CHALLENGE for Oracle people only. And one group hit the below issue so I thought I should share this as it is very likely it will happen with the upgrade to Oracle Database 12c in your environment as well.

During the run of or DBUA you may get an error saying:

ORA-20000: Unable to gather statistics concurrently:
Resource Manager is not

ORA-06512: at “SYS.DBMS_STATS”

Even worse, the upgrade will fail and exit in phase 68 of the parallel upgrade.
This issue is new with Oracle Database …

Continue reading...

RMAN Catalog requires Enterprise Edition (EE)
since Oracle Database

Credits go to Cameron Hodge, Malcom and Martin Mäs who all highlighted issues to me following my previous entry about RMAN – and sorry for any disappointment but I wasn’t aware of all these nice little things.

Ok, you’d upgrade your RMAN Catalog to be ready to backup/recover Oracle Database databases and you see this error:

upgrade catalog;
error creating create_deleted_object_seq
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-06004: ORACLE error from recovery catalog database:
ORA-00439:  feature not enabled: Partitioning

Now you start to wonder as your Catalog Database had been an Oracle Standard

Continue reading...