In an article published in July 2024, I taught you how to utilize getMOSPatch to download patches without having to access the My Oracle Support website. Even though AutoUpgrade provided a comparable option, I didn’t think about it because I thought it was a little bit limited.
It is now 2026, and AutoUpgrade has experienced major improvements, making it an appropriate moment for reviewing it and comparing it to getMOSPatch. Let’s have a look.
Scenario
We want to apply the most recent Release Update (23.26.1) in our Oracle 26ai installations, together with the recommended patches and the most recent OPatch for Linux, in accordance with the following list:
| 38743961 | Database Release Update 23.26.1.0.0 (GOLD IMAGE) |
| 38842609 | Datapump Bundle Patch 23.26.1.0.0 |
| 37393792 | ORA-12850 reported after applying DBRU on first node |
| 6880880 | OPatch 12.2.0.1.49 for DB 23.0.0.0.0 (Jan 2026) |
getMOSPatch
Since only one-offs are linked to RU 23.26.1 and the remaining patches are related to 26ai itself rather than RU, two calls to getMOSPatch will be necessary, each with a different regexp value:
java -jar getMOSPatch.jar \
MOSUser=enrique@gmail.com \
MOSPass=Oracle_4U$ \
stagedir="/stage" \
patch=38743961,6880880 \
regexp=.*230000.* \
platform=226P download=all
We're going to download patches for the following Platforms/Languages:
226P - Platform 226P
Processing patch 38743961 for Platform 226P and applying regexp .*230000.* to the filenames:
1 - p38743961_230000_Linux-x86-64.zip
Enter Comma separated files to download: all
All files will be downloaded because download=all was specified.
Processing patch 6880880 for Platform 226P and applying regexp .*230000.* to the filenames:
1 - p6880880_230000_Linux-x86-64.zip
Enter Comma separated files to download: all
All files will be downloaded because download=all was specified.
Downloading all selected files:
Downloading p38743961_230000_Linux-x86-64.zip: 2294MB at average speed of 111050KB/s - DONE!
Downloading p6880880_230000_Linux-x86-64.zip: 24MB at average speed of 106148KB/s - DONE!
java -jar getMOSPatch.jar \
MOSUser=enrique@gmail.com \
MOSPass=Oracle_4U$ \
stagedir="/stage" \
patch=37393792,38842609 \
regexp=.*2326100.* \
platform=226P download=all
We're going to download patches for the following Platforms/Languages:
226P - Platform 226P
Processing patch 37393792 for Platform 226P and applying regexp .*2326100.* to the filenames:
1 - p37393792_2326100DBRU_Linux-x86-64.zip
Enter Comma separated files to download: all
All files will be downloaded because download=all was specified.
Processing patch 38842609 for Platform 226P and applying regexp .*2326100.* to the filenames:
1 - p38842609_2326100DBRU_Generic.zip
Enter Comma separated files to download: all
All files will be downloaded because download=all was specified.
Downloading all selected files:
Downloading p37393792_2326100DBRU_Linux-x86-64.zip: 0MB at average speed of 6000KB/s - DONE!
Downloading p38842609_2326100DBRU_Generic.zip: 2MB at average speed of 38743KB/s - DONE!
AutoUpgrade
We need a Wallet where the credentials for connecting to My Oracle Support are saved. As a first step, we are going to build a configuration file, which we will name download.cfg:
global.global_log_dir=/stage/autoupgrade/log
global.keystore=/stage/autoupgrade/keystore
global.folder=/stage/autoupgrade/patches
patch1.patch=RU:23.26.1,OPATCH,DPBP,37393792
patch1.platform=LINUX.X64
It includes the Wallet’s location (line 2), the directory where patches will be downloaded (line 3), the patches that are required (line 5), and the platform (line 6).
Now we need to create the Wallet, so we make an initial call to AutoUpgrade, with load_password:
java -jar autoupgrade.jar \
-config download.cfg \
-patch -load_password
Processing config file ...
Starting AutoUpgrade Patching Password Loader - Type help for available options
Creating new AutoUpgrade Patching keystore - Password required
Enter password:
Enter password again:
AutoUpgrade Patching keystore was successfully created
MOS> add -user enrique@gmail.com
Enter your secret/Password:
Re-enter your secret/Password:
MOS> save
Convert the AutoUpgrade Patching keystore to auto-login [YES|NO] ? YES
MOS> exit
AutoUpgrade Patching Password Loader finished - Exiting AutoUpgrade Patching
We enter the Wallet password (lines 9 and 10), then enter the My Oracle Support login and password (lines 13 to 15).
After saving (line 16), we are prompted to choose whether to auto-login (line 17), which we select to avoid entering the Wallet password.
$ ls -la /stage/autoupgrade/keystore
total 8
drwx------ 2 oracle oinstall 90 Feb 1 10:57 .
drwxr-xr-x 5 oracle oinstall 87 Feb 1 10:56 ..
-rw------- 1 oracle oinstall 525 Feb 1 10:57 cwallet.sso
-rw------- 1 oracle oinstall 0 Feb 1 10:57 cwallet.sso.lck
-rw------- 1 oracle oinstall 413 Feb 1 10:57 ewallet.p12
-rw------- 1 oracle oinstall 0 Feb 1 10:57 ewallet.p12.lck
With the Wallet setup complete, we invoke AutoUpgrade a second time, this time to execute the actual download, with -mode download:
java -jar autoupgrade.jar \
-config download.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 /stage/autoupgrade/patches
------------------------------------------------------------------------
DATABASE RELEASE UPDATE 23.26.1.0.0 (GOLD IMAGE)
File: p38743961_230000_Linux-x86-64.zip - VALIDATED
DATAPUMP BUNDLE PATCH 23.26.1.0.0
File: p38842609_2326100DBRU_Generic.zip - VALIDATED
OPatch 12.2.0.1.49 for DB 23.0.0.0.0 (Jan 2026)
File: p6880880_230000_Linux-x86-64.zip - VALIDATED
ORA-12850 REPORTED AFTER APPLYING DBRU ON FIRST NODE
File: p37393792_2326100DBRU_Linux-x86-64.zip - VALIDATED
------------------------------------------------------------------------
Comparative evaluation
Although both utilities achieved the download goal, there are some obvious distinctions:
| getMOSPatch | AutoUpgrade |
|---|---|
| Credentials must be provided in each request | Credentials reside in a Wallet |
| It is required to know the ID of each patch | We do not need the ID of known patches such as RU, OJVM, OPATCH, etc |
| If a patch exists for multiple RUs, you can specify which one you need using regexp | If a patch exists for multiple RUs, you can specify which one you need with RU:x.y |
| The patch is downloaded even if it is already present in the specified folder | The patch is downloaded only when it is not present in the specified folder |
| Only the listed patches are downloaded, without considering dependencies | When downloading a patch, the associated RU is also downloaded, even if we don't need it |
Conclusions
AutoUpgrade has much improved to the point where it will be my main tool for downloading patches, but, since getMOSPatch does not require me to download the related RU, I will likely use it for one-off patches.
I won’t need to use getMOSPatch if a later version of AutoUpgrade lets us indicate the RU for which we want the one-off, using something like patch=37393792:23.26.1.
As AutoUpgrade is becoming increasingly complex, I would like to take this opportunity to mention the exceptional work of Marcus Vinicius, who has created the AutoUpgrade Composer application; this greatly facilitates the process of creating the necessary configuration file.
I suggest the following readings to supplement what has been covered here:
| Autoupgrade : How to download patches with Autoupgrade ? (KB790461) |
| AutoUpgrade-Composer: Downloading Patches with Download Mode |
| Downloading Oracle Patches using CLI with AutoUpgrade Patching |