Oracle 12.1.0.2 on AIX – rtld: 0712-001 Symbol CreateIoCompletionPort was referenced

Ich installiere dann mal kurz 12.1.0.2…

Da will man nur mal aktuelle Oracle RDBMS Version 12.1.0.2 in AIX 7.1 installieren, die Installation läuft soweit durch. Doch beim Aufruf eines Binaries wie beispielsweise SQL*Plus kommt folgende Fehlermeldung:

oracle@training:/u00/app/oracle/ [rdbms12102] sqlplus / as sysdba
 Could not load program sqlplus:
 rtld: 0712-001 Symbol CreateIoCompletionPort was referenced
 from module /u00/app/oracle/product/12.1.0.2/lib/libttsh12.so(), but a runtime definition
 of the symbol was not found.
 rtld: 0712-001 Symbol GetMultipleCompletionStatus was referenced
 from module /u00/app/oracle/product/12.1.0.2/lib/libttsh12.so(), but a runtime definition
 of the symbol was not found.
 rtld: 0712-002 fatal error: exiting.

My Oracle Support

Die Suche geht wie immer als erstes bei My Oracle Support los. Es gibt eine Support Note vom 9. Dezember 2014:

AIX 12.1.0.2 Installation Fails with “rtld: 0712-001 Symbol CreateIoCompletionPort was referenced ” (Doc ID 1949184.1)

Gemäss der MOS Note muss man für die Installation von 12.1.0.2 in AIX die Einstellung für die sogenannten I/O completion ports (IOCP) ändern. Defaultmässig ist der Wert auf Defined:

oracle@training:/u00/app/oracle/ [rdbms12102] lsdev | grep iocp
 iocp0      Defined               I/O Completion Ports

Der IOCP Status muss auf den Wert Available gesetzt werden.

Vorgehensweise

  • Login als root
  • Mit smitty die Einstellung für IOCP ändern
  • Die Änderung kann mit dem cfgmgr aktiviert werden, ein Neustart ist nicht erforderlich – merci Gabriel für den Hinweis 🙂
  • Re-Link der Oracle 12.1.0.2 Binaries und Ausführen von root.sh

Danach kann die Version 12.1.0.2 verwendet werden. Der Hinweis findet sich übrigens auch im 12c Installation Guide – soviel zum Thema RT…M…

On IBM AIX on POWER Systems (64-Bit), enable I/O completion ports (IOCP) to ensure successful database and grid infrastructure installation.

To check if the IOCP module is enabled, run the lsdev command:

$ lsdev | grep iocp
The following sample output shows the IOCP status is set to Defined and hence not enabled:

iocp0      Defined       I/O Completion Ports

Umsetzung

Nachdem der AIX-Systemadministrator die Einstellung geändert hat sieht es so aus:

oracle@training:/u00/app/oracle/ [rdbms12102] lsdev | grep iocp
iocp0 Available I/O Completion Ports
Relink der Binaries
oracle@training:/u00/app/oracle/ [rdbms12102] $ORACLE_HOME/bin/relink
writing relink log to: /u00/app/oracle/product/12.1.0.2/install/relink.log
root.sh
oracle@training:/u00/app/oracle/product/12.1.0.2/ [rdbms12102] sudo ./root.sh
Performing root user operation.
The following environment variables are set as:
 ORACLE_OWNER= oracle
 ORACLE_HOME= /u00/app/oracle/product/12.1.0.2
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n) [n]:
The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n) [n]:
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Test – ohne Fehlermeldung
oracle@training:/u00/app/oracle/product/12.1.0.2/ [rdbms12102] sq
SQL*Plus: Release 12.1.0.2.0 Production on Mon Jan 12 14:44:49 2015

Copyright (c) 1982, 2014, Oracle. All rights reserved.

Connected to an idle instance.

SQL>

Links

Oracle 12c Database Installation Guide: http://docs.oracle.com/database/121/AXDBI/pre_install.htm#AXDBI7892

Wikipedia zu IOCP: http://en.wikipedia.org/wiki/Input/output_completion_port