Datenbankdiagnose
CONZEPT 16-Server - Datenbankdiagnose Beschreibung der Diagnose von CONZEPT 16-Datenbanken
- Siehe: Erweiterte Diagnose (Blog)
Der CONZEPT 16-Datenbankserver verfügt über Diagnosefunktionen zur Überprüfung und Reparatur von Datenbankstrukturen. Eine regelmäßige Diagnose ist sinnvoll, um möglichst frühzeitig auftretende Fehler erkennen und korrigieren zu können.
Eine Datenbankdiagnose überprüft die Struktur der in der Datenbank gespeicherten Daten auf Fehler. Jede Datenbankdiagnose erzeugt ein Diagnoseresultat, aus welchem ermittelt werden kann, ob und an welchen Stellen Fehler in der Datenbankstruktur festgestellt wurden. Eine normale Datenbankdiagnose nimmt keine Veränderung an der Datenbank vor. Fehler werden dabei nur protokolliert, nicht behoben. Eine Diagnose kann während des laufenden Betriebs durchgeführt werden. Die Datenbank wird während der Diagnose in einen Backup-Zustand versetzt (siehe Sicherungsereignisse )
Die Datenbankdiagnose benötigt ca. 10 KB Hauptspeicher pro MB Datenbank auf dem Server. Bei einer Datenbankgröße von 10 GB werden also ca. 100 MB Hauptspeicher benötigt. Dieser Speicher wird zusätzlich zum Datenbankcache benötigt. Die normale Datenbankdiagnose kann zusätzlich noch um einige Optionen erweitert werden.
Falls eine Diagnose mit "Recover" oder eine "Schlüsselanalyse und -reparatur" durchgeführt wird, müssen möglicherweise Änderungen an der Datenbank vorgenommen werden. Vor der Diagnose muss daher unbedingt eine Sicherung der Datenbank vorgenommen werden, da ein Ausfall des Servers während der Diagnose zu Datenverlust führen kann.
- Diagnoseoption "Erweiterte Diagnose" Die erweiterte Datenbankdiagnose verhält sich genauso wie die normale Diagnose. Die einzige Ausnahme ist, dass die erweiterte Diagnose die Datenbank auch auf seltene Sortierungsprobleme innerhalb der Baumstruktur der Datenbank hin untersucht. Dabei ist zu beachten, dass diese Diagnose unter Umständen ein vielfaches der Zeit der normalen Diagnose beanspruchen kann. Bei größeren Datenbanken ist es sinnvoll die erweiterte Diagnose zunächst auf einer Kopie der Datenbank durchzuführen, damit es nicht zu einem längeren Backup-Zustand der Original-Datenbank kommt.
- Diagnoseoption "Recover durchführen" Bei der Datenbankdiagnose mit Recover müssen alle Benutzer die Datenbank verlassen und die Datenbank darf sich nicht im Backup-Modus befinden, da der Diagnoselauf exklusive Zugriffsrechte auf die Datenbank benötigt. Bei der Diagnose mit Recover werden zum einen Überprüfungen durchgeführt, die nur mit exklusivem Datenbankzugriff erfolgen können. Darunter fallen zum Beispiel die Überprüfung der Datensatz-IDs. Zum anderen werden Defekte, die durch die normale Diagnose und die erweiterte Diagnose gefunden wurden, korrigiert und die interne Baumstruktur an den betreffenden Stellen neu aufgebaut. Vor dem manuellen Start eines Recover-Laufs sollte zunächst eine Diagnose ohne Recover-Option erfolgen, um Art und Umfang von eventuellen Defekten in der Datenbank zu ermitteln. Die Dauer des Recovers ist von der Anzahl der Datenbankdefekte, der Datenbankgröße, der Größe des Datenbankpuffers und der Leistungsfähigkeit der Hardware abhängig.
- Diagnoseoption "Schlüsselanalyse und -reparatur" Analog zur Diagnose mit Recover darf sich bei der Schlüsselanalyse und -reparatur kein Benutzer mehr in der Datenbank befinden und der Backup-Modus darf nicht aktiv sein. Die Schlüsselanalyse überprüft die Konsistenz von Datensätzen sowie die Konsistenz von den dazugehörigen Schlüsselwerten. Abweichungen werden automatisch korrigiert. Werden Abweichungen in Strukturen festgestellt, die zuerst durch ein Recover repariert werden müssten, wird keine Analyse des betreffenden Bereichs vorgenommen. Die Dauer dieser Analyse ist sehr stark abhängig von der Anzahl der Datensätze in der Datenbank, dem eingestellten Datenbankpuffer und der Leistungsfähigkeit der Hardware. Die Analyse kann durchaus mehrere Stunden oder Tage in Anspruch nehmen. Um den Betrieb der Datenbank nicht unnötig lange zu unterbrechen, ist es daher unter Umständen sinnvoll, zunächst die Schlüsselanalyse auf einer Kopie der Datenbank durchzuführen. Je nach Ergebnis können beispielsweise Schlüsseldifferenzen bei wenigen Schlüsseln schneller durch eine manuelle Schlüsselreorganisation beseitigt werden, als wenn eine komplette Analyse auf der Originaldatenbank durchgeführt wird.
Eine vorherige Optimierung der Datenbank kann unter Umständen zu einer schnelleren Analyse beitragen.
Starten der Diagnose
Eine Datenbankdiagnose kann auf verschiedene Arten gestartet werden. Die einfachste Art eine Diagnose zu starten ist es, diese über einen CONZEPT 16-Client aufzurufen. Dabei werden die Diagnoseresultate an den Client zurückgeliefert und angezeigt.
Über das CONZEPT 16-Script-Utility kann mit dem Kommando diag eine Diagnose gestartet werden. Ebenso ist es möglich eine Diagnose vom Server automatisch durchführen zu lassen. Der Datenbankserver kann so konfiguriert werden, dass täglich zu einer definierten Uhrzeit eine Diagnose einer Datenbank durchgeführt wird (siehe Konfiguration der Datenbanken ). Nach einem Rollback (siehe Transaktionen / Rollback ) wird automatisch eine Diagnose mit Recover durchgeführt. Ist beim Server die automatische E-Mail-Benachrichtigung eingestellt, werden Diagnoseresultate mit Fehlern automatisch per E-Mail versendet.
Das Diagnoseresultat wird unabhängig von der Art des Aufrufs im Pfad der Datenbank unter dem Datenbanknamen mit der Erweiterung .dgn gespeichert. In dieses kann dann zum Beispiel schon während des Recover-Laufs eingesehen werden, um den Umfang der Reparaturmaßnahmen zu ermitteln. Informationen zu den möglichen Einträgen im Diagnoseresultat stehen unter Diagnoseresultate .
Die Diagnose wird auch bei geschlossener Datenbank gestartet. Dazu wird die Datenbank geöffnet, die Diagnose durchgeführt und die Datenbank wieder geschlossen.
Wird in einem Hot-Standby System eine Diagnose mit "Recover" oder "Schlüsselanalyse und -reparatur" auf der Primärdatenbank durchgeführt, trennt der CONZEPT 16-Server für die Dauer der Diagnose die Verbindung zum Sekundärsystem. Nach Diagnoseabschluss erfolgt eine Synchronisation der Sekundärdatenbank. Bei Datenbanken im Standby-Betrieb wird grundsätzlich keine automatische Diagnose durchgeführt.