RESTORE(MUTOS) DABA16 RESTORE(MUTOS) NAME restore - Wiederherstellen nach einem DBBS- oder MUTOS- Absturz UEBERSICHT restore [ -s ] [ -a ] [ -f ] [ +/-p ] [ +/-w ] [ -S ] [ -P ] { dbname } BESCHREIBUNG Restore wird zum Wiederherstellen einer Datenbank verwendet, nachdem ein DABA- oder MUTOS-Absturz auftrat. Das Kommando sollte stets nach einer abnormalen Beendigung abgearbeitet werden, um die Integritaet der Datenbank zu sichern. Um restore zu benutzen, muessen Sie der DBA der Datenbank oder der DABA-Systemverantwortliche (Verwendung des -s Flags) sein. Wurden keine Datenbanken spezifiziert, werden alle Datenban- ken, fuer die Sie der DBA sind, zurueckgespeichert. Alle Datenbanken werden bearbeitet, wenn der DABA- Systemverantwortliche das -s Flag spezifiziert hat. Wenn das -a Flag spezifiziert wurde, werden sie gefragt, be- vor restore eine Serie von Aktionen ausfuehrt. Es ist rat- sam, dieses Flag zu verwenden, wenn vermutet wird, dass die Datenbank in schlechtem Zustand ist. Die Verwendung von /dev/null als Eingabe mit dem -a Flag liefert eine Bericht der Probleme der Datenbank. Wenn waehrend des Rueckspeichers der Datenbank keine Fehler auftraten, wird purge mit den gleichen Flags wie bei re- store, aufgerufen, um ungewuenschte und temporaeren Files zu entfernen. Mit dem Flag -P wird der Aufruf von purge unterdrueckt. Wenn purge erfolgreich beendet wurde, wird sysmod gerufen, mit -S der Aufruf von sysmod unterdrueckt. Restore kann mit den purge Flags -f und/oder -p aufgerufen werden. Nicht zuzuordnende Files und verfallende Relationen werden nicht entfernt, wenn nicht die entsprechenden Flags gesetzt sind. Im Falle einer unvollendeten destroy, create oder index Ope- ration wird restore keine Files fuer teilweise erstellte oder zerstoerte Relationen loeschen. Purge muss mit dem -f Flag aufgerufen werden, um dies auszufuehren. Restore sperrt waehrend seiner Arbeit die Datenbank. Wenn eine Datenbank besetzt ist, wird restore das berichten und dann zur Bearbeitung der naechsten Datenbank uebergehen. Wenn die Standardeingabe kein Terminal ist, wird restore auf die Freigabe der Datenbank warten. Wenn das -w Flag gesetzt ist, wird restore in keinen Falle (auch nicht bei Standar- deingabe) warten. Wenn +w gesetzt ist, wird stets gewartet. Restore kann eine Datenbank nach einer Aenderungsoperation, die das Fuellen des Stapel-Files beendet hat, wiederherstel- len (komplettieren). Aenderungen, die dieses Stadium noch nicht erreicht haben, sind zu wiederholen. Ebenso werden modify Operationen, die das Wiederherstellen der Relation beendet haben, (die relation- und die attribute-Relationen sind noch zu aktualisieren), komplettiert. Wenn destroy operierte, wird es stets komplettiert, waehrend ein create stets ausgesetzt wird. Nach dem Abbruch des Loeschens einer Relation mit einem In- dex, kann es vorkommen, dass restore berichtet, dass ein Se- kundaerindex ohne korrespondierende Primaerrelation gefunden wurde. Wenn waerend der Wiederherstellung ein Interrupt (Signal 2) erhalten wird, erfolgt ein Abschliessen der bearbeiteten Da- tenbank und die Bearbeitung der naechsten. Quit (Signal 3) beendet die Arbeit von restore. BEISPIEL[E] restore -f dt restore -a grants < /dev/null DIAGNOSE Um die Fehlernachrichten zu verstehen, muss man die Verbin- dung zwischen den einzelnen Katalogen kennen. Dazu folgende Ausfuerungen: 1. Eine Relation besteht aus genau einem MUTOS-File, einem Eintrag im Relationen-Katalog "relation" und mehreren Eintraegen im Attribut-Katalog (fuer jede Domaene ei- nen): Im Attribut-Katalog "attribute" wird fuer jede Domaene der Name der Relation und deren Eigentuemer mit verwal- tet. Die Kataloge sind im Systemkatalog wie normale Re- lationen verzeichnet, nur dass sie im Relationen- Katalog den Status Katalog-Relation erhalten. 2. Index-Relationen sind : a) wie normale Relationen verzeichnet, nur dass sie im Relationen-Katalog den Status INDEX erhalten. b) Im Katalog "index" ist der Name der Index-Relation und der Name der Primaerrelation verzeichnet. c) Die Primaerrelation erhaelt im Relationen-Katalog den Status Primaerrelation. 3. Sichten (virtuelle Relationen) sind : a) wie normale Relationen verzeichnet, nur dass sie im Relationen-Katalog den Status Sicht erhalten b) Der Name und die Definition der Sicht sind im Ka- talog "tree" abgelegt. c) Der Name der Basisrelation der Sicht und der Name der Sicht wird im Katalog "references" eingetragen (pro Basisrelation ein Eintrag) und im Relationen-Katalog wird fuer die Basisrelation ein Verweiszaehler erhoeht. 4. Integritaeten : a) Die Relationen, fuer die besodere Integritaets- bedingungen gelten, erhalten im Katalog "relation" den zusaetzlichen Status INTEG. b) Im Katalog "integrities" sind die Namen der Rela- tionen, die Namen der Relationen, fuer die beson- dere Intigritaetsbedingungen geltenen, und ein Verweis auf deren Definitionen im Katalog "tree" enthalten. c) Die Namen der Relationen, fuer die Integritaets- bedingungen gelten, und die Definition der Inte- gritaetsbedingungen sind im Katalog "tree" abge- legt. 5. Zugriffsrechte : a) Die Relationen, die Zugriffsrechte besitzen, er- halten im Katalog "relation" den Status PROTECT. b) Im Katalog "protect" sind die Namen der Relatio- nen, fuer die besondere Zugriffsrechte gelten so- wie die Verweise auf deren Definition im Katalog "tree" enthalten. c) Die Namen der Relationen, die Zugriffsrechte haben und die Definitionen der Zugriffsrechte sind im Katalog "protect" verzeichnet. d) Enthaelt die Qualifikation der Befugnisdefinitio- nen eine zusaetzliche Relation, werden im Katalog "references" die Namen der zusaetzlichen Relatio- nen und die Relation, fuer die die Befugnis defi- niert wird, eingetragen. Im Katalog "relation" wird fuer die zusaetzliche Relation ein Verweis- zaehler erhoeht. Alle Diagnosen werden durch ein Tupel einer der Systemrela- tionen ergaenzt. "No relation for attribute(s)" - Die aufgelisteten Attribute besitzen keinen korrespondierenden Eintrag in der relation-Relation. "No primary relation for index" - Das angezeigte Tupel ist ein Sekundaerindex, fuer den es keine Primaerrelation gibt. Die Primaerrelation wurde wahrscheinlich zersto- ert, und der Sekundaerindex blieb erhalten. "No indexes entry for primary relation" - Das Tupel steht fuer eine Primaerrelation und die relindxd-Domaene wird auf Null gesetzt. Das ist das Ergebnis eines unvoll- endeten destroy. "No indexes entry for index" - Das Tupel steht fuer einen Sekundaerindex, und der Index wird zerstoert werden. Das ist das Ergebnis eines unvollendeten destroy. "relname is index for" - Es wurde ein Index fuer eine Prima- errelation gefunden, die nicht als indiziert gekenn- zeichnet ist. Die Primaerrelation wird als indiziert gekennzeichnet. Das ist wahrscheinlich das Ergebnis einer unvollendeten index-Anweisung. Der Index wird richtig erstellt aber nicht modifiziert werden. "No file for" - Es gibt keine Daten fuer diese Relations- Tupel und das Tupel wird geloescht. Bei einem -a Flag wird das Tupel nicht entfernt und purge wird nicht auf- gerufen. "No secondary index for indexes entry" - Es wurde ein Ein- trag in der indexes-Relation gefunden, fuer den kein Sekundaerindex existiert (no relation relation tuple). Der Eintrag wird geloescht. SIEHE AUCH define(ql), index(ql), indexr(mutos), purge(mutos), sysmod(mutos) FEHLERQUELLEN Wenn keine Datenbanknamen spezifiziert wurden, werden nur die im Directory data/base lokalisierten Datenbanken zu- rueckgespeichert.