Actually, command line upgrades are affected as well, if you do not use OS authentication. Apparently, datapatch is not able to execute in non-OS authentication mode. See MOS note 1635007.1.
You are doing a command line upgrade to Oracle Database 12c with catctl.pl – and you don’t use OS authentication allowing connections with “/ as sysdba” then datapatch.pl won’t be able to execute the SPU/PSU/BP related SQL commands as it will fail to connect to your database with an ORA-1017 (invalid username/password) error.
Bug 18361221 is fixed in Oracle 12.2 and got backported to 220.127.116.11.2 and 18.104.22.168.3 but not actually included in any 22.214.171.124 bundles at the moment. Without this fix, datapatch will only connect with ‘/ as sysdba‘.
Either apply generic patch 18361221 to your destination Oracle Home or switch on OS authentication by setting:
- Unix: SQLNET.AUTHENTICATION_SERVICES = (BEQ)
- Windows: SQLNET.AUTHENTICATION_SERVICES = (NTS)
temporarily in your sqlnet.ora for the duration of the upgrade only. See the documentation for further information about SQLNET.AUTHENTICATION_SERVICES. Or, of course, run datapatch.pl -verbose after upgrading your database in any case …
Further Information and Links:
- MOS Note:1635007.1
Datapatch fails with ORA-01017, as it only connects to the database with OS Authentication
- Oracle Support Bug 18151716
DATAPATCH UTILITY FAILED INVOKE DUE TO DB CONNECTION FAILURE
- Generic patch available:
Patch 18361221: DATAPATCH FAILS WITH ORA-01017, AS IT CONNECTS DB ONLY USING OS AUTHENTICATION
Related Blog Posts datapatch.pl:
- No OS authentication? Then datapatch.pl will fail (Sep 29, 2015)
- DBCA 12c and “datapatch.pl” – things to know (Aug 17, 2015)
- DBUA 12c and “datapatch.pl” – things to know (Jul 20, 2015)