Zum Erzeugen einer Fremdkopie einer gesamten Datenbank mit BS2000-Mitteln sind folgende Schritte erforderlich:
Mit der Administratoranweisung SET-SQL-DB-CATALOG-STATUS ... STATUS=FREE veranlasst der SESAM/SQL-Systemverwalter den DBH, die Originaldatenbank freizugeben (siehe Handbuch „ Datenbankbetrieb“).
Mit dem Kommando COPY-FILE erstellt der Datenbankverwalter auf BS2000-Ebene Kopien aller Space-Dateien, d.h. des Catalog-Space, aller Anwender-Spaces und der CAT-REC-Datei. Die Dateinamen der Kopien müssen den Konventionen von SESAM/SQL genügen und lauten für:
Catalog-Space
:catid:benutzerkennung.catalog.CATALOG
Anwender-Spaces
:catid:benutzerkennung.catalog.space
CAT-REC-Datei
:catid:catalog.CAT-REC
catid
bezeichnet die BS2000-Katalogkennung.
benutzerkennung
bezeichnet die BS2000-Benutzerkennung, die für alle kopierten
Spaces dieselbe sein muss.catalog
bezeichnet den physikalischen Datenbanknamen des Datenbank
Duplikats.space
bezeichnet den Namen der Kopie eines Anwender-Space. Für alle
Anwender-Spaces muss space bei Original und Duplikat jeweils
gleich sein.Mit der Administrationsanweisung
SET-SQL-DB-CATALOG-STATUS ... STATUS=ACTIVE trägt der Systemverwalter die Originaldatenbank wieder in das SQL-Datenbankverzeichnis der laufenden DBH-Session ein.
Einzelne Anwender-Space können gesichert werden, indem der Space mit CLOSE SPACE bzw. INTR CLOSE geschlossen und dann mit COPY-FILE gesichert wird. Um zu verhindern, dass SESAM/SQL den Space bei einem Zugriff sofort wieder öffnet, sollten die Anweisungen innerhalb einer Locksequenz eingegeben werden.
Mit den Administrationsanweisungen PREPARE-FOREIGN-COPY und END-FOREIGN-COPY kann ein „copy pending“ aufgehoben werden, das durch eine der Fremdkopie vorausgegangene Utility-Anweisung entstanden ist. Dazu setzen Sie vor Schritt 1 die Anweisung PREPARE-FOREIGN-COPY und nach Schritt 3 die Anweisung END-FOREIGN-COPY ab.
Beispielprozedur
In der folgenden Prozedur wird mit dem Kommando COPY-FILE eine Kopie der Datenbank erzeugt:
/ASSIGN-SYSDTA TO-FILE=*SYSCMD /START-SESADM //START-DBH-ADMINISTRATION ... //BEGIN-LOCK-SEQUENCE //PREPARE-FOREIGN-COPY SELECT=*LOGICAL(CATALOG-NAME=...) //HOLD-PROGRAM /COPY-FILE ... /RESUME-PROGRAM //END-FOREIGN-COPY SELECT=*LOGICAL(CATALOG-NAME=...) //END-LOCK-SEQUENCE //END
Die kopierten Datenbankdateien können jetzt gesichert werden.