Veraltete NFSv3-Sperren
Wenn ein Oracle-Datenbankserver abstürzt, kann es beim Neustart zu Problemen mit veralteten NFS-Sperren kommen. Dieses Problem ist vermeidbar, indem Sie sorgfältig auf die Konfiguration der Namensauflösung auf dem Server achten.
Dieses Problem tritt auf, weil das Erstellen einer Sperre und das Löschen einer Sperre zwei leicht unterschiedliche Methoden der Namensauflösung verwenden. Es sind zwei Prozesse beteiligt: Der Network Lock Manager (NLM) und der NFS-Client. Der NLM verwendet uname n
Um den Hostnamen zu ermitteln, während der rpc.statd
Prozessanwendungen gethostbyname()
. Diese Hostnamen müssen übereinstimmen, damit das Betriebssystem veraltete Sperren ordnungsgemäß löschen kann. Beispielsweise sucht der Host nach Sperren, die Eigentum von sind dbserver5
, Aber die Schlösser wurden vom Host als registriert dbserver5.mydomain.org
. Wenn gethostbyname()
Gibt nicht denselben Wert zurück wie uname –a
, Dann ist der Sperrvorgang nicht erfolgreich.
Mit dem folgenden Beispielskript wird überprüft, ob die Namensauflösung vollständig konsistent ist:
#! /usr/bin/perl $uname=`uname -n`; chomp($uname); ($name, $aliases, $addrtype, $length, @addrs) = gethostbyname $uname; print "uname -n yields: $uname\n"; print "gethostbyname yields: $name\n";
Wenn gethostbyname
Stimmt nicht überein uname
, Veraltete Sperren sind wahrscheinlich. Dieses Ergebnis zeigt beispielsweise ein potenzielles Problem auf:
uname -n yields: dbserver5 gethostbyname yields: dbserver5.mydomain.org
Die Lösung wird normalerweise durch Ändern der Reihenfolge gefunden, in der Hosts in angezeigt werden /etc/hosts
. Nehmen wir beispielsweise an, dass die Hosts-Datei diesen Eintrag enthält:
10.156.110.201 dbserver5.mydomain.org dbserver5 loghost
Um dieses Problem zu beheben, ändern Sie die Reihenfolge, in der der vollständig qualifizierte Domänenname und der kurze Hostname angezeigt werden:
10.156.110.201 dbserver5 dbserver5.mydomain.org loghost
gethostbyname()
Gibt nun den Short zurück dbserver5
Host-Name, der mit der Ausgabe von übereinstimmt uname
. Sperren werden somit nach einem Serverabsturz automatisch gelöscht.