Table of Contents
Ziel
Dieser Blogeintrag beschreibt ein Problem mit dem Oracle Universal Installer (OUI) bei einem Upgrade auf / Installation von 11.2.0.4 unter Oracle Linux 5. Bei der Überprüfung der passwortlosen SSH-Verbindung durch den OUI bricht der Test mit der Fehlermeldung INS-06006 ab. Dieses Problem konnte mit der Vorgängerversion 11.2.0.3 nicht reproduziert werden.
Problembeschreibung
Während der Installation bzw. Upgrades überprüft der OUI, ob eine passwortlose SSH-Verbindung besteht. Sollte diese noch nicht vorhanden sein, kann diese durch den OUI konfiguriert werden. Anderenfalls muss diese manuell durchgeführt werden. Für das Problem ist es irrelevant, ob die passwortlose SSH-Verbindung manuell oder durch den OUI eingerichtet wurde.
Der SSH-Test bricht mit der folgenden Fehlermeldung ab.
Der Installer beanstanded immer den lokalen Knoten. Ich habe für dieses Problem einen Service Request eröffnet. Oracle hat dazu den Bug 17580744 registriert, der zurzeit in Bearbeitung ist.
Update 13.11.2013: Oracle hat den oben genannten Bug als Duplikat des unveröffentlichten Bugs 16177073 gekennzeichnet. Zusätzlich wurde die folgende My Oracle Support Note erstellt.
Betroffene Systeme
Das Problem konnte zum jetzigen Zeitpunkt bei den folgenden Gegebenheiten festgestellt werden.
Betriebssystem | Oracle Version | Typ | Bemerkung |
Oracle Linux 5 | 11.2.0.4 | Neuinstallation | |
Oracle Linux 5 | 11.2.0.4 | Upgrade | Upgrade von 11.2.0.1 auf 11.2.0.4 |
Testumgebung
Meine Testumgebung besteht aus zwei virtuellen Servern, die mithilfe von Oracle VirtualBox erstellt wurden.
-
Server Betriebssystem Architektur L11GR2-R1-N1.dba-blog.local Oracle Linux 5.9 x86_64 L11GR2-R1-N2.dba-blog.local Oracle Linux 5.9 x86_64 - Die Oracle Home Verzeichnisses in meiner Testumgebung wurden wie folgt konfiguriert.
Software | Besitzer | Pfad |
Grid Infrastructure 11g Release 2 | grid | /u01/app/11.2.0/grid |
Oracle Database 11g Release 2 | oracle | /u01/app/oracle/product/11.2.0/dbhome_1 |
Analyse
Bei der Analyse wurde ein Problem mit der Großschreibung der Hostnamen im OUI festgestellt. Werden bei einer RAC Installation, die Knoten in Großbuchstaben eingetragen, kommt es zu der oben aufgeführten Fehlermeldung.
Das vom OUI generierte Fehler-Log, zu finden unter /tmp/OraInstall<Zeitstempel>/orainstall<Zeitstempel>.err listet den folgenden Fehler auf.
---# Begin Stacktrace #--------------------------- ID: oracle.install.driver.oui.OUISSHSupportManager:546 oracle.ops.mgmt.cluster.ClusterException: :successful :successfulssh: -o FallBackToRsh=no : Name or service not known :failedssh: -o FallBackToRsh=no : Name or service not known :failed at oracle.ops.mgmt.cluster.ClusterConfig.submit(ClusterConfig.java:578) at oracle.ops.mgmt.cluster.ClusterCmd.submit(ClusterCmd.java:269) at oracle.ops.mgmt.cluster.ClusterCmd.submit(ClusterCmd.java:294) at oracle.install.driver.oui.OUISSHSupportManager.getUnconfiguredRemoteNodes(OUISSHSupportManager.java:428) at oracle.install.driver.oui.OUISSHSupportManager.getSSHConnectivityDetails(OUISSHSupportManager.java:378) at oracle.install.commons.net.support.SSHSupportManager.getSSHConnectivityDetails(SSHSupportManager.java:181) at oracle.install.library.util.GenericValidation.validateSSHConnectivity(GenericValidation.java:705) at oracle.install.ivw.crs.validator.CRSNodeSelectionValidator.validateNodes(CRSNodeSelectionValidator.java:186) at oracle.install.ivw.crs.validator.CRSNodeSelectionValidator.validate(CRSNodeSelectionValidator.java:100) at oracle.install.commons.flow.validation.ValidationHelper.validateState(ValidationHelper.java:185) at oracle.install.commons.flow.AbstractFlowExecutor.validate(AbstractFlowExecutor.java:419) at oracle.install.commons.flow.AbstractFlowExecutor.leaveVertex(AbstractFlowExecutor.java:643) at oracle.install.commons.flow.AbstractFlowExecutor.transition(AbstractFlowExecutor.java:335) at oracle.install.commons.flow.AbstractFlowExecutor.nextState(AbstractFlowExecutor.java:275) at oracle.install.commons.flow.AbstractFlowExecutor.nextViewState(AbstractFlowExecutor.java:234) at oracle.install.commons.flow.DefaultFlowNavigator.goForward(DefaultFlowNavigator.java:58) at oracle.install.commons.flow.jewt.FlowWizard$1.run(FlowWizard.java:125) at oracle.install.commons.flow.jewt.FlowWizard$TransitionManager$1.run(FlowWizard.java:101) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:415) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269) at java.util.concurrent.FutureTask.run(FutureTask.java:123) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:662) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:688) at java.lang.Thread.run(Thread.java:637) ---# End Stacktrace #-----------------------------
Eine zuvor durchgeführte Überprüfung des Systems mit dem Cluster Verification Utility (Cluvfy) meldet keine Probleme mit dem SSH-Setup.
Performing pre-checks for cluster services setup Checking node reachability... Check: Node reachability from node "L11GR2-R1-N1" Destination Node Reachable? ------------------------------------ ------------------------ L11GR2-R1-N1 yes L11GR2-R1-N2 yes Result: Node reachability check passed from node "L11GR2-R1-N1"
Hinweis: Bei einer Neuinstallation muss das SSH-Setup manuell durchgeführt werden bevor Cluvfy ausgeführt wird. Anderenfalls bricht Cluvfy mit Fehlern ab.
Lösung
Neuinstallation
Bei einer Neuinstallation ist die Lösung einfach. Während dem Hinzufügen der Knoten zur Knotenauswahl, muss darauf geachtet werden, dass diese in Kleinbuchstaben hinzugefügt werden – unabhängig von der Schreibweise im Betriebssystem.
Upgrade
Um das Upgrade auf 11.2.0.4 bei einem existierenden Cluster mit zuvor großgeschriebenen Hostnamen zu ermöglichen, muss das Oracle Inventory angepasst werden. Die Anpassung der Hostnamen direkt im OUI ist nicht möglich.
Aus diesem Grund müssen die in der inventory.xml Datei des Oracle Iventory stehenden Knotennamen der existierenden Oracle Home Verzeichnise in Kleinbuchstaben geändert werden. Der Inhalt der inventory.xml könnte zum Beispiel wie folgt aussehen.
[*: grid] cat /u01/app/oraInventory/ContentsXml/inventory.xml <?xml version="1.0" standalone="yes" ?> <!-- Copyright (c) 1999, 2009, Oracle. All rights reserved. --> <!-- Do not modify the contents of this file by hand. --> <INVENTORY> <VERSION_INFO> <SAVED_WITH>11.2.0.1.0</SAVED_WITH> <MINIMUM_VER>2.1.0.6.0</MINIMUM_VER> </VERSION_INFO> <HOME_LIST> <HOME NAME="Ora11g_gridinfrahome1" LOC="/u01/app/11.2.0/grid" TYPE="O" IDX="1" CRS="true"> <NODE_LIST> <NODE NAME="L11GR2-R1-N1"/> <NODE NAME="L11GR2-R1-N2"/> </NODE_LIST> </HOME> <HOME NAME="OraDb11g_home1" LOC="/u01/app/oracle/product/11.2.0/dbhome_1" TYPE="O" IDX="2"> <NODE_LIST> <NODE NAME="l11gr2-r1-n1"/> <NODE NAME="l11gr2-r1-n2"/> </NODE_LIST> </HOME> </HOME_LIST> </INVENTORY>
Hinweis: Den Pfad zum Oracle Inventory findet man in der Datei /etc/oraInst.loc.
Da das direkte Ändern der inventory.xml von Oracle nicht supported ist, müssen die Änderungen mithilfe des OUI durchgeführt werden. Es muss der OUI der bereits installierten Grid Infrastructure Installation verwendet werden.
Im ersten Schritt muss das existierenden Oracle Home entfernt werden.
[l11gr2-r1-n1: grid] $GI_HOME/oui/bin/runInstaller -silent -detachHome -invPtrLoc /etc/oraInst.loc ORACLE_HOME="$GI_HOME" Starting Oracle Universal Installer... Checking swap space: must be greater than 500 MB. Actual 4011 MB Passed The inventory pointer is located at /etc/oraInst.loc The inventory is located at /u01/app/oraInventory 'DetachHome' was successful.
Hinweis: Der Befehl muss nur auf einem Knoten ausgeführt werden.
Anschließend wird das Oracle Home wieder hinzugefügt. Dieses Mal aber mit kleingeschriebenen Hostnamen.
[l11gr2-r1-n1: grid] $GI_HOME/oui/bin/runInstaller -silent -attachHome ORACLE_HOME="/u01/app/11.2.0/grid" ORACLE_HOME_NAME="OraGrid11g_home1" "CLUSTER_NODES={l11gr2-r1-n1,l11gr2-r1-n2}" LOCAL_NODE="l11gr2-r1-n1" CRS=true Starting Oracle Universal Installer... Checking swap space: must be greater than 500 MB. Actual 3900 MB Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2013-10-30_07-23-11PM. Please wait ... The inventory pointer is located at /etc/oraInst.loc The inventory is located at /u01/app/oraInventory 'AttachHome' was successful.
Bei Oracle 11.2.0.1 gibt es ein Problem mit der Remote-Ausführung bei dem Attach Vorgang, siehe My Oracle Support Note 1361636.1. In dieser Version muss der Attach Befehl mit dem -local Parameter auf allen RAC Knoten manuell ausgeführt werden.
[l11gr2-r1-n1: grid] $GI_HOME/oui/bin/runInstaller -silent -attachHome ORACLE_HOME="/u01/app/11.2.0/grid" ORACLE_HOME_NAME="OraGrid11g_home1" "CLUSTER_NODES={l11gr2-r1-n1,l11gr2-r1-n2}" LOCAL_NODE="l11gr2-r1-n1" CRS=true [l11gr2-r1-n2: grid] $GI_HOME/oui/bin/runInstaller -silent -attachHome ORACLE_HOME="/u01/app/11.2.0/grid" ORACLE_HOME_NAME="OraGrid11g_home1" "CLUSTER_NODES={l11gr2-r1-n1,l11gr2-r1-n2}" LOCAL_NODE="l11gr2-r1-n2" CRS=true
Hinweis: Bei dem Grid Infrastructure ist es wichtig den Zusatz CRS=TRUE mit anzugeben. Anderenfalls kann das Upgrade nicht durchgeführt werden, da der OUI sonst keine existierende Clustware findet.
Nach Abschluss der Arbeiten, sollte die inventory.xml wie folgt aussehen.
<?xml version="1.0" standalone="yes" ?> <!-- Copyright (c) 1999, 2009, Oracle. All rights reserved. --> <!-- Do not modify the contents of this file by hand. --> <INVENTORY> <VERSION_INFO> <SAVED_WITH>11.2.0.1.0</SAVED_WITH> <MINIMUM_VER>2.1.0.6.0</MINIMUM_VER> </VERSION_INFO> <HOME_LIST> <HOME NAME="OraDb11g_home1" LOC="/u01/app/oracle/product/11.2.0/dbhome_1" TYPE="O" IDX="2"> <NODE_LIST> <NODE NAME="l11gr2-r1-n1"/> <NODE NAME="l11gr2-r1-n2"/> </NODE_LIST> </HOME> <HOME NAME="OraGrid11g_home1" LOC="/u01/app/11.2.0/grid" TYPE="O" IDX="1" CRS="true"> <NODE_LIST> <NODE NAME="l11gr2-r1-n1"/> <NODE NAME="l11gr2-r1-n2"/> </NODE_LIST> </HOME> </HOME_LIST> </INVENTORY>