Oracle: Apply many OneOff patches at once
This is how to apply different OneOff patches at one time

Oracle patching is not very hard, but you'll always have to be sure what to do.
In my case, I have an older Oracle home on RU 19.22, and I want to add some patches needed by application support, as well as patches recommended by Oracle (see Support Doc ID 555.1).
Normally, I would just
- go to the folder with the OneOff patch inside
- stop all services dependent on this home
- execute
$ORACLE_HOME/OPatch/opatch apply -silent
- restart all the services
- execute
$ORACLE_HOME/OPatch/datapatch -verbose
But if I want to apply 20 patches, this takes quite a long time. I know that I should use Out-of-place-patching, but that's not possible in my case. So what can I do to speed up the patching process?
The solution for my case is opatch napply
, which is able to apply many patches at one (in fact it's running sequencially). Just copy all the patches you need into one folder:
# cd <patch folder>
<patch folder># ls
29213893 32781163 34547607 34672698 34774667 35077128 35286895 35398148 35663882 35692839 35925654 35985645 35998116 36033399 36065162 36158909 36285197 36480774 36587533 36916250
Then run OPatch napply
:
# $ORACLE_HOME/OPatch/opatch napply . -silent
If there are no conflicts, all these patches will be installed.
I like to add -silent
because I don't want to be always asked of I really really want to update now...
After that, restart your services, and execute datapatch
:
# $ORACLE_HOME/OPatch/datapatch -verbose
Your database is back, and your patches are installed 😄