Diese Woche hatten wir bei einem unserer Kunden ein nicht ganz leicht zu findendes Problem mit dem Zugriff auf die Oracle Datenbanken. Die jeweiligen Applikation meldeten, dass kein Zugriff auf die Datenbank möglich sei. Auch per SQLplus war weder am Client noch direkt am Server eine Verbindung zur Datenbank möglich. Ein Neustart des Oracle Listeners Diensts, des eigentlichen Datenbank Dienstes und auch ein Neustart des gesamten Servers konnte das Problem nicht beheben.
Der Zugriff per SQLplus per sqlplus user/pw@db führte entweder zu der Fehlermeldung no Listener oder, nachdem der Listener Dienst neu gestartet wurde, zu einem Timeout. Durch die folgenden Kommandos konnte jedoch auf die Datenbank zugegriffen werden.
Hieraus konnte geschlossen werden, dass die Datenbank prinzipiell verfügbar war und der Fehler beim TNS Listener zu suchen war. Als wir uns dann die Logdateien des Listeners genauer angeschaut haben um den Fehler weiter einzukreisen fiel uns eine 4GB große Datei im Trace Verzeichnis des Listners auf. Nach weiterer Recherche stellte sich heraus, dass die Größe dieser Datei für den nicht mehr funktionierenden Listener verantwortlich ist.
Um den Fehler zu beheben wurde die Datei zunächst bei gestopptem Listner umbenannt. Nach dem Neustart des Listeners, wurde automatisch eine neue Datei erzeugt und der Connect zur Datenbank war wieder über den normalen Weg möglich.
Fazit: Der Datenbankserver dieses Kunden lief seit ca. drei Jahren. In dieser Zeit hat sich eine 4 GB große Trace Datei aufgebaut, die dazu führte, dass der Oracle Listner nicht mehr ordnungsgemäß funktioniert. Um Probleme mit dem Datenbank Zugriff zu vermeiden sollte die Größe dieser Trace Datei regelmäßig kontrolliert werden. Für unserer Wartungskunden werden wir eine Routine implementieren, die automatisch dafür sorgt, dass dieses Problem in Zukunft nicht mehr auftritt.