The new AutoUpgrade utility in Oracle 19c

The new AutoUpgrade utility in Oracle 19cOracle Database 19c on premises is available – and one of the key features is the new AutoUpgrade utility. In the following days I will publish several blog posts explaining and showcasing the new AutoUpgrade.

What is the AutoUpgrade?

The Oracle Database AutoUpgrade utility is a new tiny little command line tool which allows you to upgrade your databases in an unattended way. I call it the Hands-Free Upgrade. TThe new AutoUpgrade utility in Oracle 19che idea of the tool is to run the prechecks against multiple databases, fix 99% of the potential issues, set a restore point in case something goes wrong – and then upgrade your databases. And of course, do the postupgrade, recompilation and time zone adjustment.

The only thing you need to provide is a config file in text format.

Where do you get the AutoUpgrade?

You get it when you install Oracle Database 19c (19.3) or newer. Or – and this is the recommended source, you download the most recent version from MOS Note: 2485457.1 – AutoUpgrade Tool:

The new AutoUpgrade utility in Oracle 19c

Where do you find the AutoUpgrade documentation?

It is all here included in the Oracle Database 19c Upgrade Guide:

Which database releases are supported?

As source, the minimum version is Oracle Database 11.2.0.4. Fair enough, isn’t it?

And as target (and yes, we heard your feedback at OOW18) we will support upgrade to:

  • Oracle Database 19.3.0 and newer
  • Oracle Database 18.5.0 and newer
  • Oracle Database 12.2.0.1 with Jan 2019 RU and newer

More Information

Within the next days, I will blog more about the AutoUpgrade and add the links here. If you’d like to get an introduction, please see our OOW 2018 presentation together with Daniel Overby Hansen from SimCorp.

–Mike

Share this:

17 thoughts on “The new AutoUpgrade utility in Oracle 19c

  1. Does AutoUpgrade utility handle RAC database too? I don’t see any reference where it say’s it can handle RAC or otherwise.

    • Yes, it does – when you set CLUSTER_DATABASE=FALSE (the documentation tells you about it).
      What we don’t do at the moment: We don’t do the SRVCTL configuration after the upgrade as the DBUA did in the past.
      This is an enhancement we are working on right now.

      Cheers,
      Mike

  2. I have one doubt, if I have version 11.2.0.4 the autoupgrade updates to version 18.3 and then I have to install the patch to be at 18.5?
    Otherwise it is not clear to me how you do to update to version 18.5
    I have to put the patch in some directory to install it?
    thanks a lot!

    • Hi Daniel,

      you need to install (aka Patch) to 18.5.0 or 18.6.0 at first.
      And then you download the AutoUpgrade from the MOS note. If you try it with 18.3.0 for instance it will fail.

      Cheers,
      Mike

      • Mike,

        Support is telling me that the source has to be 18.5+. That doesn’t align with what you have said about 11.2.0.4 as the source. I think that they really mean for the target. That being said, autoupgrade can not determine if you are running Standard Edition on 11.2.0.4 due to Standard not being in v$version.

        Mark

        • Mark,

          please send me the SR number and I will explain the support people.

          I’m right – they are wrong. Unfortunately …

          Source can be as low as 11.2.0.4

          Upgrade target can be: 12.2.0.1 with Jan 2019 RU or newer
          18.5.0 or newer
          19.3.0 or newer

          Trust me – we developed it!

          Cheers,
          Mike

  3. Hi Mike,

    I did a fresh install of a 19c home but invoking autoupgrade.jar fails with:
    Exception in thread “main” java.lang.ExceptionInInitializerError
    at oracle.upgrade.autoupgrade.boot.AutoUpgMain.(AutoUpgMain.java:114)
    at oracle.upgrade.autoupgrade.boot.AutoUpgMain.newInstance(AutoUpgMain.java:142)
    at oracle.upgrade.autoupgrade.boot.Boot.main(Boot.java:39)
    Caused by: java.lang.NullPointerException
    at java.io.Reader.(Reader.java:78)
    at java.io.InputStreamReader.(InputStreamReader.java:113)
    at oracle.upgrade.commons.lang.LangSettings.resourceBundleFromFile(LangSettings.java:213)
    at oracle.upgrade.commons.lang.LangSettings.loadLanguageInfo(LangSettings.java:71)
    at oracle.upgrade.commons.lang.LangSettings.(LangSettings.java:64)
    at oracle.upgrade.commons.lang.LangSettings.(LangSettings.java:54)
    at oracle.upgrade.commons.context.AppContext.(AppContext.java:47)

    JDK is
    java version “1.8.0_201”
    Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
    Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

    This happens with the included jar as well as a fresh download from MoS. What am I doing wrong?

      • Hi Mike,

        thank you for taking the time to look into this. Of course I knew what I did so I expected the same from you 😉
        I did the following:
        $ORACLE_HOME/jdk/bin/java -version
        java version “1.8.0_201”
        Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
        Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

        $ORACLE_HOME/jdk/bin/java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -version
        Exception in thread “main” java.lang.ExceptionInInitializerError
        at oracle.upgrade.autoupgrade.boot.AutoUpgMain.(AutoUpgMain.java:114)
        at oracle.upgrade.autoupgrade.boot.AutoUpgMain.newInstance(AutoUpgMain.java:142)
        at oracle.upgrade.autoupgrade.boot.Boot.main(Boot.java:39)
        Caused by: java.lang.NullPointerException
        at java.io.Reader.(Reader.java:78)
        at java.io.InputStreamReader.(InputStreamReader.java:113)
        at oracle.upgrade.commons.lang.LangSettings.resourceBundleFromFile(LangSettings.java:213)
        at oracle.upgrade.commons.lang.LangSettings.loadLanguageInfo(LangSettings.java:71)
        at oracle.upgrade.commons.lang.LangSettings.(LangSettings.java:64)
        at oracle.upgrade.commons.lang.LangSettings.(LangSettings.java:54)
        at oracle.upgrade.commons.context.AppContext.(AppContext.java:47)

        Oracle Home is a freshly installed 19c.

        Cheers,
        Holger

    • Hi Holger,
      we hit the same issue on SPARC Solaris x64 today. Please check
      # locale
      If it’s not saying like
      LC_NUMERIC = “C”
      but something like
      LC_NUMERIC = de_DE.UTF-8
      then do a
      # export LC_ALL=C
      and try again.
      BTW, this issue comes to us after an Solaris Update. We didn’t recognized that until we did a RAC upgrade and fired a rootupgrade.sh script with wrong locale settings. This broke us the whole cluster. 🙁
      Well, lessons learned. Always check “locale”.
      Regards
      Kay.

  4. Hi Mike,
    playing around with autoupgrade.jar I have some clarification for the documentation:
    The dbname parameter in the config file does not reflect the dbname parameter of the database, but the db_unique_name. Needed some time with trial and error to find out what is meant here. 😉
    But … cool tool! 🙂
    Regards
    Kay.

  5. Hi Mike!

    I got this error on 2 different servers when trying to upgrade using autoupgrade.jar (build.version 20190513).

    Source 12.2.0.1 (Including Golden Gate)
    Target 19.3.0.0

    Debug output:
    “Database check with running exception” (conName=”PDB$SEED”,stage=”PRECHECKS”,checkName=”STREAMS_SETUP”)

    Iogfile output:
    ERROR The dispatcher has failed due to: AutoUpgException [UPG-1316] – AutoUpgDispatcher.runDispatcher
    oracle.upgrade.autoupgrade.utils.errors.AutoUpgException: AutoUpgException [UPG-1316]

    Any Idea what this means?

    Regards

    /Jocke

    • Jocke,

      I think this may have to do with Streams in your database. There may be either leftovers or objects. As we remove Streams the alarm detects it.
      Can you please use the preupgrade.jar from 884522.1 and check it manually with “perl preupgrade.jar TEXT TERMINAL”?

      The logs of the current autoupgrade will tell you as well – go to your log directory you defined (for instance, /home/oracle/log), then to .///preupgrade and check the preupgrade.log or the HTML file in the same dir.

      Cheers,
      Mike

      Thanks,
      Mike

Leave a Reply

Your email address will not be published. Required fields are marked *

* Checkbox to comply with GDPR is required

*

I agree

This site uses Akismet to reduce spam. Learn how your comment data is processed.