Manual upgrade to Oracle 19c (CDB/PDB)


manually to 19c …. 

Actually it is very cool to do everything with so called „auto tools“. If you prefer to do the Upgrade to 19c manually and step-by-step then you can follow my article and have fun otherwise skip this blog article

Before you start you need to read a lot Doc-ID’s from Oracle Support

My list is not complete but here are very important Doc-ID’s for the Upgrade

Pre Activities for Upgrade 19c

(the list is not complete because there are a lot more documents)

    • Release Schedule of current DB
      • 884522.1
    • Patches to apply before Upgrade
      • 253975.1
    • Health Check Script use before Upgrade or once a year
      • 136697.1
    • DB PreUpgrade tool checklist
      • 2380601.1
    • PreUpgrade_19 Zip File latest Version (check for new Version)
      • 884522.1
    • RU Assistant (very helpful tool)
      • 2118136.2
    • Client / Server Interoperability Support Matrix for Different Oracle Versions
      • 207303.1
    • DB Upgrade Diagnostic Information
      • 556610.1
    • Oracle JVM
      • 397770.1

Okay let’s start

Install new Oracle Release 19c

    • Check if OS Version is certified by Oracle Support
      • Login and check certification

      • If the OS is not supported please open an Service Request and ask for Support
    • Download the Oracle Release from
      • OTN or Software Delivery Portal
      • in my example 19c

    •  create new Oracle Home for 19c
      • Use OFA (Oracle Flexible Architecture) for the Setup
        • Documentation: "/u01/app/oracle/product/19.0.0/dbhome_1"
    • unpack the zip File./runInstaller
    • Follow the Installer
      • fix errors before going on


Patch the new ORACLE_HOME with latest RU

    • Install latest version of opatch
    • Download RU

    • Patch 19c Home
      • opatch apply -local -oh /u01/app/oracle/product/19.0.0/dbhome_1 /home/oracle/Downloads/30125133
      • patching done

      • Test the installed RU
        • ./sqlplus / as sysdba
        • SQL*Plus: Release – Production on Thu Dec 5 18:00:34 2019


Important note while planing the Upgrade to 19c

    • In Oracle19c you can setup 3 PDB’s  in a CDB without the Multitenant license
    • Oracle will desupport the non-CDB in Version 20c
      • This is very important for the future
    • My recommendation
      • plan the changeover in the Multitenant „World“ NOW!
      • It’s time so say good bye … from non-CDB


Download, install and run the Database Pre-Upgrade Utility

    • Download from Oracle Support the actual Pre-Upgrade Script
      • actual Version is from November 2019
    • If version is 12.2 or higher, then save the file in $ORACLE_HOME/rdbms/admin
      • unzip
      • fileinflating:
        inflating: preupgrade.jar
        [oracle@o183 admin]$
      • new „Nov 6 13:40 preupgrade.jar“
    • Now it is time to read the documentation
    • start preupgrade.jar
      • $ORACLE_HOME/jdk/bin/java -jar /u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/preupgrade.jar TERMINAL TEXT
    • preupgrade Logfile
      • cd /u01/app/oracle/cfgtoollogs/db1_S1/preupgrade
      • Check the Logfile „preupgrade.log“
      • here an example
        • preupgrade
          • Before Upgrade actions
          • After Upgrade actions
      • additional very helpful files
        • preupgrade_fixups.sql
        • postupgrade_fixups.sql
      • and check the Logfile
        • Fix all errors
        • Now you are ready for the Upgrade


Oracle JVM installed 

    • Before doing an Upgrade check if the JVM is installed.
    • Why?
      • If you don not need the JVM in the Database deinstall it
      • It makes live in some cases especially during Patching (especially for RAC DB’s) easier
    • Check if JVM is installed
      • select comp_name, version, status from dba_registry where comp_name like ‚%JAVA%‘;
      • select owner, status, count(*) from all_objects where object_type like ‚%JAVA%‘ group by owner, status;
      • select role from dba_roles where role like ‚%JAVA%‘;
    • The  DBA_FEATURE_USAGE_STATISTICS view can also help to check for the Java feature
      • select currently_used, name from  dba_feature_usage_statistics where name like ‚%Java%‘;


So Installation, RU and preUpgrade is done. Let’s go to the manual „dbupgrade“ ….



DOAG 2019 „Engineered Systems Arbeitsgruppen Treffen“

nächste Woche ist wieder DOAG Time :-)

Dieses Jahr werden wir den „Praxisaustausch Engineered Systems“ im Rahmen der DOAG Konferenz durchführen. Somit können alle die sich mit Thema beschäftigen, oder zukünftig beschäftigen werden gerne vorbei schauen.

Wir (Frank Schneede & ich) haben den neuen Exadata Prodctmanager mit dabei.

Gavin wird uns alle News zur Exadata X8M präsentieren und natürlich gerne eure Fragen beantworten.

Den Termin Dienstag, den 19.11.2019 17:00 – 17:45 (open end) Raum Kopenhagen schon mal dick im „Kalender“ markieren und nicht vergessen.

Wir sehen uns nächste Woche in Nürnberg ….

Die Präsentation der Konferenz findet Ihr unter „Publikationen & Vorträge“


Autonomous Health Framework (AHF) available

Bildschirmfoto 2019-10-28 um 19.36.24

Oracle released the new Autonomous Health Framework since one week. It is very interesting to go through the list of new and changed features.

Yes after a very long time we had one Tool which bring everything together:

  • one single Interface
  • all diagnostics tools in one bundle makes everything easier
  • Automatic proactive compliance checks helps to fix problems
  • Diagnostic when the failure occur ensures you get everything for the resolution

To get familiar go to Oracle Support and Download the AHF Framework. You find everything while open the Doc ID 2550798.1

Download install and have fun :-)

In the meantime I did an installation on a Exadata X7 4 Node RAC and it works perfect. The old data of tfactl and exachk will be moved to the new directories and everything starts very smooth. Easy and smooth Setup. Now we have the Tools in one location on the Compute Nodes.



impdp with parameter „cluster and parallel“ for a RAC Cluster

For using the „parallel“ parameter during an import (impdp) on a Oracle RAC Cluster you need to prepare your environment.

The „parallel“ parameter works correctly when you do the following:

– mount point were the export dump resides must be available on ALL cluster members

– create a Service on the database for the impdp job

srvctl add service -s impdp_service -d xdb1 -pdb xpdb1 -preferred xdb11,xdb12 -available xdb13

srvctl start service -s impdp_service -d xdb1

– Check that the service is running

srvctl status service -s impdp_service -d xdb1

Now you are ready to use the impdp „parallel“ parameter

Here an example with „cluster=y parallel=6

impdp system@xpdb1 directory=dump dumpfile=full_%u.dmp schemas=DB1 cluster=y parallel=6 service_name=impdp_service status=180 logfile=imp_xpdb1.log METRICS=Y logtime=all

impdp Log Parameter which are really helpful for analyzing are:



Extract from the Logfile

You see that there are detailed informations about the worker process for example W-1 = Worker 1

W-1 Completed by worker 1 757 TABLE objects in 38 seconds
W-1 Completed by worker 2 764 TABLE objects in 37 seconds
W-1 Completed by worker 3 765 TABLE objects in 48 seconds
W-1 Completed by worker 4 765 TABLE objects in 53 seconds
W-1 Completed by worker 5 766 TABLE objects in 34 seconds
W-1 Completed by worker 6 765 TABLE objects in 44 seconds


Worker 5 is processing TABLE_DATA

For analyzing the impdp process you get so detailed informations try the next time.

Depending on your hardware you can also use different integer values for the „parallel“ parameter but a large number will not help in every situation.

Have fun with impdp on your RAC Cluster….





12.2 Grid Patching lesson learned

What happend?

During the last month I updated manually the TFA Software.

I  do this update while the TFA release installed via the Patchset is an older Version. This happens while Oracle Support adds the TFA release which is available while they create the Patchset.

Last weekend I start Patching GI Software 12.2 to RU Oct 2018 on a 4 Node Exadata Cluster

As best practice I do the installation manually and not via opatchauto.

First activity is:

/u01/app/ -prepatch

This ends with the following error message:

2019/03/09 13:36:12 CLSRSC-46: Error: ‚/u01/app/‘ does not exist
2019/03/09 13:36:12 CLSRSC-152: Could not set ownership on ‚/u01/app/‘
Died at /u01/app/ line 7573.
The command ‚/u01/app/ -I/u01/app/ -I/u01/app/ /u01/app/ -prepatch‘ execution failed

The following Doc ID 2409411.1 describes how to fix this by modifying two files. I should be fixed in Grid Release 18. 


remove the following two entries.
unix %ORA_CRS_HOME%/suptools/tfa/release/tfa_home/jlib/jdev-rt.jar %HAS_USER% %ORA_DBA_GROUP% 0644
unix %ORA_CRS_HOME%/suptools/tfa/release/tfa_home/jlib/jewt4.jar %HAS_USER% %ORA_DBA_GROUP% 0644

I made the changes but it did not fix the problem. So I can’t go on with the Patching. For me it looks like a problem with the file permissions.

So next research on MOS and I found this important Doc ID 1931142.1:

„How to check and fix file permissions on Grid Infrastructure environment“

Yes, this was the solution :-)

cd /u01/app/

./ -init

Using configuration parameter file: /u01/app/

As an add on in the note you can check after the „-init“ the complete GI Installation with the following cluvfy command.

cluvfy comp software -n all -verbose

Verifying Software home: /u01/app/ …2894 files verified
Verifying Software home: /u01/app/ …PASSED

Verification of software was successful.

CVU operation performed: software
Date: Mar 11, 2019 10:10:11 AM
CVU home: /u01/app/
User: oracle

This is very helpful. Finally I start the GI Patching without any problems

Lesson learned

„It is a good idea to check from time to time the status of the Software via cluvfy.“
















exachk 18.4 does not run database

For all of you who use exachk and have updated to exachk Version 18.4. There is a known Bug on Oracle databases

While running exachk as root user the program try to connect to the database and this will no work.

You saw the following message:

„OS authentication is not enabled so please enter sysdba privileged user name for <User name>:- sys

Enter password for sys@<User name>:-



ERROR at line 1:

ORA-01012: not logged on

Process ID: 0

Session ID: 0 Serial number: 0“


The workaround is to use „-shell“ option when calling exachk

# ./exachk -a -o v -shell