Arbeitsweise der Reorganisation
Die Datenbankreorganisation eines Datensatztyps arbeitet folgendermaßen:
- Die Datenbankreorganisation erfolgt grundsätzlich in einer Kopie der aktuellen Datenbank. Dadurch können auch umfangreiche Reorganisationen im laufenden Betrieb durchgeführt werden. Erst nach erfolgreichem Abschluss der Reorganisation werden die reorganisierten Daten für den laufenden Betrieb aktiviert.
- Beim Start der Reorganisation wird der betreffende Datensatztyp unter dem Namen _reorg_src_<Datensatztyp> kopiert. Gleichzeitig wird ein leerer Datensatztyp mit identischer Struktur erzeugt und unter dem Namen _reorg_dst_<Datensatztyp> gespeichert.
Anschließend wird die Reorganisation durchgeführt, indem die Datensätze aus der Datei "_reorg_src_<Datensatztyp>" entnommen, reorganisiert und in die Datei "_reorg_dst_<Datensatztyp>" geschrieben werden. Dabei werden sämtliche Indexdateien etc. neu aufgebaut. Außerdem werden leere Datensätze entfernt.
Die Dateinamen der Datensatztypen und der entsprechenden Reorganisationsdateien unterscheiden sich je nach verwendetem Datenbanksystem:
_reorg_..._DATA.QSearch bei einer QSearch-Datenbank
bzw. _reorg_....dbo bei einer MS SQL-Datenbank. - Bei hierarchischen Datensatztypen (z.B. Aktenplan) werden die Datensätze vor der eigentlichen Reorganisation zunächst nach dem Hierarchiefeld (z.B. Aktenzeichen) sortiert.
- Neue oder geänderte Datensätze, die während der Reorganisation im laufenden Betrieb entstehen, werden weiterhin in den betreffenden Datensatztyp und zusätzlich in die temporäre Datendatei _reorg_tmpdata_<Datensatztyp>.iqdb geschrieben. Aus der temporären Datei werden die neuen Datensätze beim erfolgreichen Abschluss der Reorganisation automatisch übernommen. Wenn bei dieser Übernahme Fehler aufgetreten sind, wird ein zweites Mal versucht diesen Datensatz zu übernehmen. Scheitert auch dies, wird im Temp-Verzeichnis eine Nachimportdatei mit dem Namen _reorg_trans_nachimport_<DSTName><jjjjmmtthhmmssdd>.txt erstellt, in welche die fehlerhaft übertragenen Datensätze geschrieben werden. Der Import dieser Datei muss nun manuell gestartet werden. Gelingt bei diesem Nachimport die Übernahme aller Datensätze aus dieser Datei, wird die Nachimport-Datei gelöscht. Treten weiterhin Fehler auf, bleibt sie bestehen.
- Beim Anhalten der Reorganisation und beim Beenden des IQ-Servers während der Reorganisation wird der Stand der Reorganisation gespeichert. Bei Bedarf kann die angehaltene Reorganisation später fortgesetzt oder endgültig abgebrochen werden. Eine Reorganisation, die durch Beenden des IQ-Servers "ordnungsgemäß" angehalten wurde, wird vom IQ-Server nach dem Neustart automatisch fortgesetzt.
- Wird bei einem Neustart des IQ-Servers die Reorganisationen angehalten, so werden diese nach Neustart automatisiert fortgesetzt.
- Bei endgültigem Abbruch der Reorganisation werden die neu angelegten Reorganisationsdateien gelöscht.
- Treten bei der Reorganisation Probleme auf, die es verhindern, dass einzelne Datensätze reorganisiert in die neue Datei geschrieben werden können (z.B. Netzwerkprobleme), so werden die Datensätze in eine Importdatei geschrieben. Der Administrator wird informiert, dass die Importdatei angelegt wurde und hat die Möglichkeit die enthaltenen Datensätze nachträglich zu importieren.
Die Importdatei liegt im Temp-Verzeichnis und heißt _reorg_nachimport_<Datensatztyp>_<Zeitpunkt>.txt
(Format des Zeitpunkts = JJJJMMTThhmmssff).
Die fehlerhaft eingeschriebenen Datensätze werden zusätzlich zu der Importdatei in eine Data-Datei gespeichert.
Vor der Übernahme der während der Reorganisation durchgeführten Änderungen wird versucht, die fehlerhaft eingeschriebenen Datensätze aus der Data-Datei wieder in die Datenbank einzuschreiben. - Die temporäre Datendatei und die Importdatei werden im Temp-Verzeichnis gespeichert.
- Bei erfolgreichem Abschluss der Datenbankreorganisation wird der ursprüngliche Datensatztyp kurzzeitig gesperrt und durch den reorganisierten Datensatztyp ausgetauscht. Der ursprüngliche Datensatztyp und die temporäre Datendatei werden in das entsprechende Unterverzeichnis des Verzeichnisses für gelöschte Dateien verschoben (siehe unter Schlüssel "VerzeichnisFürGelöschteDateien").
- Beim Starten einer Reorganisation werden sowohl bei Verwendung einer QSearch-Datenbank als auch bei Verwendung einer SQL-Datenbank fehlerhafte Tabellen - wie sie z.B. durch den Abbruch einer vorangegangenen Reorganisation entstehen können - automatisch aus der Datenbank gelöscht.
- Bei jedem Start des IQ-Servers mit einer externen Datenbank werden außerdem inkonsistente Einträge in der Tabelle mit den Datenbankinformationen (DDS-Tabelle) automatisch korrigiert.