AutoUpgrade New Features: Install Oracle Home on Brand-New, Empty Server

You can use AutoUpgrade to install an Oracle home on a brand-new, empty server.

Previously, AutoUpgrade used an existing Oracle home to determine how to create a new Oracle home. Now, you can use config file parameters to instruct AutoUpgrade on installing the new Oracle home.

This allows you to use AutoUpgrade to prepare a new server for use with Oracle Database.

How To

Preparations

I start with a brand new Oracle Linux 8 system.

  1. This is a test system, so I disable SELinux:
    sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
    reboot
    
    • Alternatively, follow the guidelines for SELinux in your organization.
  2. Install the preinstall package and Java (required by AutoUpgrade):
    yum -y install oracle-database-preinstall-19c
    yum -y install java-1.8.0-openjdk
    
  3. Additional configurations like mount points and swapfile.

Install Oracle Home

  1. Download AutoUpgrade:

    wget https://download.oracle.com/otn-pub/otn_software/autoupgrade.jar
    
  2. Create an AutoUpgrade config file called install-home.cfg:

    global.global_log_dir=/home/oracle/autoupgrade/logs
    install1.patch=RU:19.27,OPATCH,OJVM,DPBP
    install1.folder=/u01/app/oracle/software
    install1.target_home=/u01/app/oracle/product/dbhome_1927
    install1.home_settings.oracle_base=/u01/app/oracle
    install1.home_settings.edition=EE
    install1.home_settings.inventory_location=/u01/app/oraInventory
    install1.download=no
    
    • I have already downloaded the base release and required patches using AutoUpgrade download mode. The files are in an NFS file share which I specify with the folder parameter.
    • I use the home_settings parameters to specify how I want to install the Oracle home. There are many other settings that I can use.
  3. I start AutoUpgrade:

    java -jar autoupgrade.jar -config install-home.cfg -mode create_home
    
  4. On this system, the oracle user is not allowed to sudo, so I must manually execute the root scripts:

    /u01/app/oracle/product/dbhome_1927/root.sh
    /u01/app/oraInventory/orainstRoot.sh
    
    • AutoUpgrade prints the scripts to the console.
    • It also writes the scripts into <global_log_dir>/create_home_1/<job-no>/rootsh/rootsh.log.
  5. That’s it! I’ve now installed a new Oracle home and can move on with the creation of a listener, database, and so forth

Appendix

Installing on Microsoft Windows

You can use the same functionality on Windows.

  • You must use home_settings.account_type to specify the user that runs the Windows service. If you specify a user, then it must exist already. Although runInstaller can create the user for you, AutoUpgrade doesn’t support it.
  • You should not use home_settings.inventory_location on Windows. On Windows, the Oracle Inventory is always placed in %SYSTEM_DRIVE%\Program Files\Oracle\Inventory.

Installing Java

AutoUpgrade requires Java 8 or Java 11. It doesn’t support newer versions because the tool must be backward compatible. The latest version of AutoUpgrade still supports upgrades from Oracle Database 11g.

I recommend using Oracle Java. This is what we test and develop with, however, other Java packs should be fine as well. I tested the commands in this blog post with OpenJDK.

If you have a license for Oracle Database, you can read about using Oracle JDK/JRE in the License Guide or Oracle Java SE licensing FAQ.

19 thoughts on “AutoUpgrade New Features: Install Oracle Home on Brand-New, Empty Server

  1. Thanks for the shared knowledege! I’m struggling won windows while specifying the oracle home user, which is a domain user. I couldn’t find the correct syntax for the parameter home_settings.account_type. Do you have any additonal clues on this?

    Like

  2. Hi,

    I have the same issue using a local account on windows:

    install1.home_settings.account_type=user

    Error: “The home_settings.account_type parameter for prefix install1 includes a value that is not supported or is not in the required format”

    according to documentation it should be [VIRTUAL|BUILT_IN|USER]

    virtual and build_in workst fine, user doesn’t resulting in above error.

    Regards Erwin

    Like

        1. Is there a limit to the length of the account, of special characters you may not use?

          When using install1.home_settings.account_type=user:svcoracle_mns-p-0049 the same error returns:

          Error: “The home_settings.account_type parameter for prefix install1 includes a value that is not supported or is not in the required format”

          Like

          1. Apparently accounts cannot contain a minus sign.

            account_type=user:svcoracle_mns-p-0049 fails

            Even account_type=”user:svcoracle_mns-p-0049″ fails with the above error

            account_type=user:svcoracle_mns_p_0049 succeeds

            Is there a way to be able to use a minus sign in the account, or can you confirm this is not allowed?

            Like

  3. Hi Daniel, is there a special syntax needed if you specify the home_settings.account_type? My customer was using install1.home_settings.account_type=domainora_home

    Error message:
    The home_settings.account_type parameter for prefix install1 includes a value that is not supported or is not in the required format

    Like

    1. Hi Johannes,

      For a user, you need to use:
      install1.home_settings.account_type=USER:domainora_home

      However, for a domain user there might be a problem. We might have a test version of AutoUpgrade soon. If you’re interested in trying that out, you can mail me at daniel.overby.hansen (a) oracle.com.

      Regards,
      Daniel

      Like

      1. I write domain user without domain name, which is probably not correct. But I still got a different error on Windows.

        Like

  4. autoupgrade.jar in windows to create new home? may-be next time….

    Errors in database [create_home_1]
    Stage [INSTALL]
    Operation [STOPPED]
    Status [ERROR]
    Info [Exception: PATCH109
    Err message: AutoUpgradePatchingException [AutoUpgrade Patching failed to install the new ORACLE_HOME C:/app/19.28.0/oracle. For full details, view the log file located at C:autoupgradelogscreate_home_1100install. The C:app19.28.0oraclesetup.exe output is included below:
    ERROR: The installer has detected that the Oracle home location provided in the command line is not correct. The Oracle home is the location from where setup script is executed.

    It is not required to specify ORACLE_HOME in the command line for the installation.
    ]
    oracle.patch.utils.errors.PATCH109:
    at oracle.patch.dispatcher.actions.SetupExeInstaller.runSetup(SetupExeInstaller.java:149)
    at oracle.patch.dispatcher.actions.SetupExeInstaller.executePatchStage(SetupExeInstaller.java:73)
    at oracle.patch.dispatcher.def.PatchJobAction.executeStage(PatchJobAction.java:71)
    at oracle.commons.dispatcher.JobStage.executeStage(JobStage.java:80)
    at oracle.patch.dispatcher.def.PatchJobStage.executeStage(PatchJobStage.java:69)
    at oracle.commons.dispatcher.RunJobDefinition.runJob(RunJobDefinition.java:144)
    at oracle.patch.dispatcher.def.RunAutoPatchJob.runJob(RunAutoPatchJob.java:61)
    at oracle.patch.dispatcher.AutoPatchJobThread.run_(AutoPatchJobThread.java:119)
    at oracle.patch.dispatcher.AutoPatchJobThread.run(AutoPatchJobThread.java:108)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)
    ] Logs: [C:autoupgradelogscreate_home_1100autoupgrade_patching_20251029_user.log]

    2025-10-29 17:28:52.765 INFO [28] [F21DB2] EndOracle Home=C:/app/19.28.0/oracle Oracle Sid=create_home_1 Run command =[C:app19.28.0oraclesetup.exe, ORACLE_HOME=C:/app/19.28.0/oracle, ORACLE_BASE=C:/app/OracleServiceTest, oracle.install.option=INSTALL_DB_SWONLY, oracle.install.db.InstallEdition=SE, oracle.install.IsBuiltInAccount=false, oracle.install.IsVirtualAccount=false, oracle.install.OracleHomeUserName=OracleServiceTest, -silent] Command=None Filename=C:autoupgradelogscreate_home_1100installsetup.log – ExecuteProcess.doCmds#932
    2025-10-29 17:28:52.766 WARNING [28] [F21DB2] The process ended with an exit value 1 and the following output
    ERROR: The installer has detected that the Oracle home location provided in the command line is not correct. The Oracle home is the location from where setup script is executed.

    It is not required to specify ORACLE_HOME in the command line for the installation.

    My config file:
    global.global_log_dir=C:/autoupgrade/logs global.keystore=C:/autoupgrade/keystore

    patch1.folder=C:/autoupgrade/patches
    patch1.patch=RU:19.28,DPBP,OPATCH,OJVM
    patch1.download=no
    patch1.target_home=C:/app/19.28.0/oracle

    patch1.home_settings.edition=SE
    patch1.home_settings.account_type=USER:OracleServiceTest
    patch1.home_settings.oracle_base=C:/app/OracleServiceTest

    Like

    1. Hi,

      Bummer that it fails on you. From the error message and stack trace, I’m not able to determine the cause. I’ve just worked with two other customers that did more or less the same on Windows without problems.
      It seems like you need to open an SR and have support look at that. Feel free to e-mail me the SR number and I can keep an eye on it (daniel.overby.hansen (a) oracle.com).

      Be sure to include all the log files:

      AutoUpgrade Never Fails, But When It does

      Regards,
      Daniel

      Like

  5. Hi Daniel,

    I hope you’re doing well.

    I’m getting error and I’m wondering what’s wrong in my configuration?

    here is version of the autoupgrade tool:

    java -jar $AUTOUPGRADETOOL -version
    build.version 25.6.251016
    build.date 2025/10/16 00:04:36 +0000
    build.hash 54a1e2442
    build.hash_date 2025/10/15 21:11:40 +0000
    build.supported_target_versions 12.2,18,19,21,23
    build.type production
    build.label (HEAD, tag: v25.6, origin/stable_devel, stable_devel)
    build.MOS_NOTE 2485457.1
    build.MOS_LINK https://support.oracle.com/epmos/faces/DocumentDisplay?id=2485457.1

    here is the config file:

    cat /home/oracle/autoupgrade-patching/create_home.cfg

    global.global_log_dir=/home/oracle/autoupgrade-patching/log

    install1.patch=RU,OJVM,OPATCH,DPBP,JDK,OCW
    install1.folder=/mnt/software/stage
    install1.target_home=/u01/app/oracle/product/19.29/dbhome_2
    install1.home_settings.oracle_base=/u01/app/oracle
    install1.home_settings.edition=EE
    install1.home_settings.inventory_location=/u01/app/oraInventory
    install1.target_version=19
    install1.download=NO

    and here is the error:

    java -jar $AUTOUPGRADETOOL -config /home/oracle/autoupgrade-patching/create_home.cfg -mode create_home
    AutoUpgrade 25.6.251016 launched with default internal options
    Processing config file …
    No sid was specified in the user configuration file /home/oracle/autoupgrade-patching/create_home.cfg, stopping execution

    Have I missed something? Can you spot anything I might have done incorrectly?

    Like

      1. Hi Daniel,

        thanks for your response.

        I’m getting a new error now, saying cannot find the OCW patches! 👇

        java -jar $AUTOUPGRADETOOL -config /home/oracle/autoupgrade-patching/create_home.cfg -patch -mode create_home
        AutoUpgrade Patching 25.6.251016 launched with default internal options
        Processing config file …

        There were conditions found preventing AutoUpgrade Patching from successfully running

        *Validating Oracle Patch files
        An Oracle Clusterware (OCW) patch file is not found in /mnt/software/stage for 19.29 RU for the job with prefix install1.
        Download the corresponding Grid Infrastructure (GI) patch according to the Release Update (RU) patch and place it in the /mnt/software/stage folder.

        I’m sure the patches have already been downloaded.

        here is the config file I use for download. 👇

        cat download_latest19c.cfg

        # Database entry global.
        global.global_log_dir=/home/oracle/autoupgrade-patching/log
        global.keystore=/home/oracle/autoupgrade-patching/keystore
        global.folder=/mnt/software/stage

        # Database entry patch1.
        patch1.patch=RU,OJVM,OPATCH,DPBP,JDK,OCW
        patch1.target_version=19
        patch1.platform=AIX.x64

        As shown below all the patches been downloaded already:

        java -jar $AUTOUPGRADETOOL -config download_latest19c.cfg -patch -mode download
        AutoUpgrade Patching 25.6.251016 launched with default internal options
        Processing config file …
        Loading AutoUpgrade Patching keystore
        AutoUpgrade Patching keystore is loaded

        Connected to MOS – Searching for specified patches

        —————————————————–

        Downloading files to /mnt/software/stage

        —————————————————–

        DATABASE RELEASE UPDATE 19.29.0.0.0
        File: p38291812_190000_AIX64-5L.zip – LOCATED

        DATAPUMP BUNDLE PATCH 19.29.0.0.0
        File: p38535360_1929000DBRU_Generic.zip – LOCATED

        JDK BUNDLE PATCH 19.0.0.0.251021
        File: p38245243_190000_AIX64-5L.zip – LOCATED

        GI RELEASE UPDATE 19.29.0.0.0
        File: p38298204_190000_AIX64-5L.zip – LOCATED

        OJVM RELEASE UPDATE 19.29.0.0.0
        File: p38194382_190000_AIX64-5L.zip – LOCATED

        OPatch 12.2.0.1.48 for DB 19.0.0.0.0 (Nov 2025)

        File: p6880880_190000_AIX64-5L.zip – LOCATED

        —————————————————–

        Many thanks.

        Like

Leave a reply to Michael Cancel reply

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