Important Update (Aug 17, 2019):
This option does not exist since Oracle 18c anymore due to bug 26762080. Instead you could try to use
dbua -initParam (just be aware that you can’t pass on an event with this option).
The Database Upgrade Assistant (DBUA) is the graphical tool to upgrade Oracle databases. And the DBUA removes underscore parameters by default from the SPFILE when upgrading a database. If you don’t want this, there’s a way to tell it how DBUA can ignore underscores with “keepHiddenParams”.
DBUA can ignore underscores with “keepHiddenParams”
The DBUA by default will remove all underscores and events before actually doing an upgrade. This is expected behaviour as we believe that underscores or events were meant to treat misbehavior of the database just in a specific release only. And in our experience a nice collection of underscores will at least make your upgrades run slower.
We have seen this in the past for instance with our email server database where “nostalgia” underscores from the old Oracle 9i days appeared in the SPFILE. And the upgrade took veeeeeeeeeeery long. Once we removed them the upgrade completed factors faster.
A new parameter for DBUA since Oracle 18.104.22.168
Now with Oracle Database 22.214.171.124 and Oracle Database 126.96.36.199 the DBUA has a new parameter which can be used during startup:
$> dbua -keepHiddenParams
Then it will keep the hidden/underscore parameters during and after the upgrade. The alternative would be to execute a self-written post-upgrade script which sets your desired underscores and/or events after the upgrade has been completed. This can be done graphically in the DBUA or via the silent mode:
$> dbua -silent -postUpgradeScripts script [, script ] …
The “postUpgradeScripts” parameter option specifies a comma-delimited list of SQL scripts. Specify complete path names. The scripts will be executed after the upgrade.
The application vendor always rules
One final comment: Your application vendor’s recommendations and guidelines always rule. When the Oracle EBS interoperatibility note or any other app vendor’s documentations states parameters and events to be set, they have to be there. That’s the reason why we have adjusted the preupgrade message with the most recent releases from “please remove all hidden parameters prior to upgrading” to “Remove all hidden parameters prior to upgrade unless your application vendor and/or Oracle Support states differently“.
PS: Many thanks to Mr. Frank Becker for highlighting this to myself – I wasn’t aware of it – screenshot is courtesy from Mr Becker as well