AutoUpgrade: ORA-00132 syntax error or unresolved network name

Im Zuge von Out-Of-Place Patching (DEPLOY) mit AutoUpgrade ist uns im Alert.log der folgende Fehler aufgefallen:

oerr ora 00132
00132, 00000, "syntax error or unresolved network name '%s'"
// *Cause:  Listener address has syntax error or cannot be resolved.
// *Action: If a network name is specified, check that it corresponds
//          to an entry in TNSNAMES.ORA or other address repository
//          as configured for your system. Make sure that the entry
//          is syntactically correct.

Der Fehler entsteht dadurch, dass AutoUpgrade beim Deploy die Netzwerk Files listener.ora, tnsnames.ora und sqlnet.ora erst nach dem Start der Instanz im neuen ORACLE_HOME kopiert und gleichzeitig die folgenden Instanz-Parameter auf TNSNAMES Einträge verweisen:

  • LOCAL_LISTENER
  • REMOTE_LISTENER

Der Grund ist, dass beim Start der Instanz die beiden Instance Parameter ausgewertet werden und das Lookup der TNS Einträge fehlschlägt. Würden zumindest die beiden Files tnsnames.ora und sqlnet.ora vor dem Start der Instanz aus dem neuen ORACLE_HOME kopiert werden, wäre dieser Fehler vermeidbar.

Wie kann man diesen Fehler vermeiden?

Sofern man mit AutoUpgrade alles in einem Schritt macht – Aufruf nur mit DEPLOY – lässt sich der Fehler nicht vermeiden. Wenn man hingegen das AutoUpgrade in mehreren Schritte durchführt, gibt es einen Workaround:

Optional: Download der Patches mit Autoupgrade

$ORACLE_HOME/jdk/bin/java -jar autoupgrade.jar -config patch.cfg -patch -mode download

Danach das neue ORACLE_HOME erzeugen.

$ORACLE_HOME/jdk/bin/java -jar autoupgrade.jar -config patch.cfg -patch -mode create_home

jetzt kann man die beiden Files tnsnames.ora und sqlnet.ora aus dem aktuellen ORALCE_HOME in das neue ORACLE_HOME kopieren.

$ORACLE_HOME/jdk/bin/java -jar autoupgrade.jar -config patch.cfg -mode deploy

Autoupgrade sorgt dann dafür, dass auch das listener.ora kopiert und an das neue ORACLE_HOME angepasst wird. Während des Deploys kommt dann der ORA-00132 im Alert.log nicht mehr.