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