OPatch Fehler OUI-67215 auf Grund von Perl Problemen mit Oracle Linux 8

Vor einiger Zeit habe ich im Artikel Oracle 19c für Linux ARM ist da! darüber berichtet, dass Oracle 19c (19.19) für ARM verfügbar ist und wie man es installiert. Leider gab es den Critical Patch Update Juli 2023 nicht für ARM. Der CPU Oktober 2023 (19.21) steht aber zur Verfügung, also wollte ich diesen installieren.

Bei der Ausführung von OPatch kommt dann die folgende Fehlermeldung im Logfile, wobei die Installation des Patches anscheinend aber funktioniert:

-----------------------------------------------------------------
The following warnings have occurred during OPatch execution:
1) OUI-67215:
OPatch found the word "failed" in the stderr of the make command.
Please look at this stderr. You can re-run this make command.
Stderr output:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "de_AT.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
-----------------------------------------------------------------
OUI-67008:OPatch Session completed with warnings.

Da ist etwas störend, aber so lange alles funktioniert, ist es OK. Beim Aufruf von datapatch bekommt man aber folgenden Fehler:

ORA-20001: Latest xml inventory is not loaded into table
Please refer to MOS Note 1609718.1 and/or the invocation log

Folgt man dieser Metalink Note landet man beim Artikel Troubleshooting Assistant:12c Datapatch Issues (Doc ID 2335899.2)

Über den Artikel gelangt man schliesslich zu: Queryable Patch Inventory – Issues/Solutions for ORA-20001: Latest xml inventory is not loaded into table (Doc ID 1602089.1)

Zuerst prüfen wir ob das Patch Inventory leesbar ist:

SQL> select dbms_sqlpatch.verify_queryable_inventory from dual;

VERIFY_QUERYABLE_INVENTORY
-----------------------------------------------------------
ORA-20001: Latest xml inventory is not loaded into table

Offensichtlich nicht, also genauer nachsehen:

SQL> select * from OPATCH_XML_INV ;
ERROR:
ORA-29913: error in executing ODCIEXTTABLEFETCH callout
ORA-29400: data cartridge error
KUP-04095: preprocessor command
/u01/app/oracle/product/19.0.0/dbhome_1/QOpatch/qopiprep.bat encountered error
"locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Can"

no rows selected

Und da ist die Perl Fehlermeldung wieder! Diese kann man übrigens auch direkt beim Aufruf von Perl verifizieren:

$ perl -e exit
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "en_US.UFT-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Es muss also eine Lösung her! Nach einiger Suche im Internet bin ich auf den Artikel perl: warning: Setting locale failed gestoßen. In diesem wird beschrieben, dass man dies durch setzen von zwei zusätzlichen Environmentvariablen beseitigen kann. Also im .bash_profile folgende Zeilen eingefügt:

export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

und schon liefert der Aufruf „$ perl -e exit“ keinen Meldung mehr.

Zur Sicherheit noch mit SQLPLUS verifizieren:

SQL> select dbms_sqlpatch.verify_queryable_inventory from dual;

VERIFY_QUERYABLE_INVENTORY
---------------------------------------------------------
OK

Perfekt! Damit steht dem erfolgreichen Ausführen von Datapatch nichts mehr im Weg.

Das Problem kann auch bei der RHEL / Oracle Linux 8 für x86-46 auftreten – nicht nur in der ARM Variante.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

This site uses Akismet to reduce spam. Learn how your comment data is processed.