Die beiden Oracle Datenbank Bugs 33132050 sowie 33676296 adressieren Probleme mit Oracle dNFS im Zusammenhang mit NFSv4 bzw. NFSV4.1 und (zumindest) NetApp Storages. Das Problem tritt dabei in folgenden Situationen auf:
- Datenbank bleibt nach LIF Migration hängen
- Datenbank bleibt nach ONTAP Controller Takeover hängen
- Es kann kurze Aussetzer geben, die im Betrieb aber meist nicht auffallen, lediglich in den I/O Zeiten zeigen sich entsprechende gehäufte Ausreißer (V$FILE_HISTOGRAM bzw V$FILE_OPTIMIZED_HISTOGRAM)
- Auch ein kurzzeitiger Ausfall von Netzwerkpfaden kann dieses Probleme hervorrufen.
Auswirkungen der Bugs
- Datenbank Shutdown dauert lange. Im Hang Analze bzw. im Prozesstraces zeigen sich dNFS I/Os, die einige Minuten warten.
- Mögliche Inkonsistenz in Controlfiles, die ein Startup bzw. Cloning/Restore von einem Snapshot verhindern
- Inkorrektes dNFS Reply Caching verhalten, was zu einem hängen der Datenbank führen kann.
Analyse auf Grund der bekannten Probleme
Wenn die Netzwerkverbindung via dNFS bei NFSv4 bzw NFSv4.1 zwischen der Datenbank und der Storage auch nur kurzzeitig ein Problem bekommt, führt das innerhalb von Oracles internen Verwaltungsstrukturen von NFSv4/NFSv4.1 offensichtlich zu Problemen. Das kann einerseits zu lost writes führen und andererseits dazu, dass die Datenbank hängen bleibt. Da der Fehler durch Einspielen von Oracle Patches behoben wird, liegt es nicht am Storage oder dem Netzwerk.
Wer ist davon betroffen?
Auch wenn das Problem seitens Oracle dNFS primär mit NetApp Storages und NFSv4/NFSv4.1 behandelt wird, dürfte auf Grund der Beschreibungen jedes NAS Storage betroffen sein. Der Fehler liegt anscheinend in der NFSv4/NFSv4.1 Implementierung von Oracle.
Workarounds, bis die Patches zur Verfügung stehen
- Der einfachste Workaround ist, auf NFSv3 zurück zu stellen. Dort tritt das Problem nicht auf.
- Alternativ kann auch Oracle dNFS deaktiviert und auf das Betriebssystem NFS zurück gegriffen werden, allerdings bedeutet dies bei Datenbanken mit hohem I/O Anteil eine merkliche CPU Mehrbelastung bei gleichzeitig deutlich schlechteren I/O Zeiten.
Wichtiger Hinweis
Aktuell, 9. Feb 2022, sind diese Bugs bei Oracle noch Internal Only. Es gibt noch keine Informationen über die betroffenen Oracle Datenbank Versionen. Es ist aber davon auszugehen, dass alle Oracle Versionen ab 12c bis inkl. 21c betroffen sind.