Dateien von einem Snapset restaurieren
Komponente: | BS2000 |
Funktionsbereich: | Dateiverarbeitung |
Anwendungsbereich: | FILE |
Privilegierung: | STD-PROCESSING |
Funktionsbeschreibung
Das Kommando RESTORE-FILE-FROM-SNAPSET restauriert Dateien eines Pubsets aus einer Pubset-Kopie, die auf einem zugehörigen Snapset erstellt wurde. Beim Restore werden einzelne Dateien von den Snapsets in den laufenden Pubset kopiert. Der Vorgang ist vergleichbar mit einem HSMS-Restore aus einem Backup-Archiv.
Mit der Snapset-Angabe kann ein bestimmter Sicherungsstand (voreingestellt ist die jüngste Snapset-Sicherung) vorgegeben werden oder es soll jede Datei jeweils von dem Snapset mit dem neuesten Dateistand restauriert werden. Vor dem Restaurieren kann sich der Benutzer mit dem Kommando LIST-FILE-FROM-SNAPSET über Dateien informieren, die auf einen Snapset gesichert wurden.
Alle Dateiattribute einer restaurierten Datei werden unverändert von der Originaldatei übernommen (auch Erstellungs- und Änderungsdatum sowie die Schutzattribute). Nur die Allokierung kann von der der Originaldatei abweichen, auch bei Dateien mit physikalischer Allokierung. Dateien auf SM-Pubsets werden auf dem „passendsten“ Volume-Set restauriert. Dieser kann von dem ursprünglichen Volume-Set abweichen.
Einzelne Dateigenerationen können nur mit der gesamten Dateigenerationsgruppe restauriert werden. Dateien auf Privatplatte und auf Net-Storage werden nicht berücksichtigt. Bei migrierten Dateien und Banddateien werden nur die Katalogeinträge restauriert (ohne die Verfügbarkeit der zugehörigen Bänder zu prüfen). Im Falle einer Umbenennung werden diese Dateien ebenfalls nicht berücksichtigt.
Der nichtprivilegierte Benutzer kann die Datei einer fremden Benutzerkennung nur restaurieren, wenn er Miteigentümer ist. In diesem Fall kann er auch eine eigene Datei unter der fremden Benutzerkennung restaurieren.
Für bereits vorhandene Dateien muss das Überschreiben durch das Restaurieren explizit zugelassen werden (Operand REPLACE). Für Dateien, die mit Kennwort gegen unberechtigtes Überschreiben geschützt sind, muss das erforderliche Kennwort in der Kennworttabelle des Aufrufers eingetragen sein (siehe ADD-PASSWORD).
Dateien können auch unter einem neuen Namen restauriert werden (Operand NEW-FILE-NAME). Die Umbenennung erfolgt entweder durch Angabe einer anderen Benutzerkennung oder eines Dateinamenspräfix.
Optional können Dateien, die zum Zeitpunkt der Snapset-Erzeugung schreibgeöffnet waren, restauriert werden (Operand RESTORE-OPEN-FILES). Eine so restaurierte Datei hat einen Zustand wie nach einem Systemabsturz. Für eine ISAM-Datei kann der Aufruf des Kommandos REPAIR-DISK-FILE notwendig werden. Schreibgeöffnete Dateien mit dem Attribut ONLINE-SAVE werden unabhängig von dieser Option restauriert.
Bei Bedarf kann sich der Aufrufer ein Protokoll der Restore-Verarbeitung nach SYSOUT bzw. SYSLST ausgeben lassen (Operand OUTPUT). Das Protokoll kann entweder alle Dateien oder nur die Dateien, die aus bestimmten Gründen nicht restauriert werden konnten, umfassen (Operand REPORTING).
Die Snapsets sind temporär nicht verfügbar, wenn das Subsystem SHC-OSD zum Zeitpunkt des Pubset-Imports noch nicht aktiv war. Das Kommando wird in diesem Fall mit DMS0622 abgebrochen. Sobald SHC-OSD aktiv ist, werden die Snapsets bei Aufruf des Kommandos SHOW-SNAPSET-CONFIGURATION nachträglich aktiviert.
Das Restaurieren von Dateien ist kein explizites SAT-Ereignis. Die SECOS-Komponente SAT kann nur die intern benutzten Aufrufe DELETE-FILE (beim Überschreiben) und CREATE-FILE protokollieren.
Privilegierte Funktionen
Die Systembetreuung (Privileg TSOS) kann als Mit-Eigentümer eine Datei unter ihrer Original-Benutzerkennung oder einer anderen Benutzerkennung restaurieren.
Beim Überschreiben einer noch bestehenden Datei kann die Systembetreuung den Dateischutz mit dem Operanden IGNORE-PROTECTION explizit umgehen.
Format
RESTORE-FILE-FROM-SNAPSET | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Operandenbeschreibung
FILE-NAME = <filename 1..54 without-gen with-wild(80)>
Auswahl der Dateien, die restauriert werden sollen. Die Dateien müssen folgende Voraussetzungen erfüllen:
Sie müssen zum Zeitpunkt der Snapset-Erstellung katalogisiert gewesen sein.
Der Pubset, an dem sie katalogisiert sind, muss lokal importiert sein.
Sie dürfen nicht auf Privatplatte oder auf einem Net-Storage-Volume liegen.
Katalog- und Benutzerkennung müssen eindeutig (also ohne Musterzeichen) angegeben werden. Die Angabe von Aliasnamen (auch teilqualifiziert) ist zulässig. Der Name einer Dateigenerationsgruppe darf angegeben werden (einzelne Dateigenerationen können nur innerhalb der Gruppe restauriert werden).
SNAPSET = *LATEST / *ALL / <name 1..1 with-low> / <integer -52..-1> / *INTERVAL(...)
Gibt an, von welchem Snapset die Dateien restauriert werden sollen. Informationen über alle existierenden Snapsets zu einem Pubset können mit dem Kommando SHOW-SNAPSET-CONFIGURATION eingeholt werden.
SNAPSET = *LATEST
Die Dateien sollen von dem jüngsten Snapset (d.h. von der aktuellsten Pubset-Sicherung) restauriert werden.
SNAPSET = *ALL
Für die Restaurierung werden alle Snapsets des entsprechenden Pubsets als Basis herangezogen. Jede Datei wird jeweils von dem Snapset mit dem neuesten Dateistand restauriert, also mit der letzten Sicherung dieser Datei.
SNAPSET = <name 1..1 with-low>
Bezeichnet den Snapset explizit über die Snapset-Id. Die maximal 52 Snapsets zu einem Pubset werden unterschieden durch Snapset-Ids aus den 26 Kleinbuchstaben a bis z und den 26 Großbuchstaben A bis Z.
SNAPSET = <integer -52..-1>
Bezeichnet den Snapset explizit über das relative Alter. Der Wert -1 entspricht dem jüngsten Snapset.
SNAPSET = *INTERVAL(...)
Die Restaurierung erfolgt wie bei SNAPSET=*ALL. Allerdings werden nur die Snapsets als Basis herangezogen, die in dem angegebenen Altersintervall liegen:
OLDEST = -52 / <integer -52..-1>
Gibt den ältesten Snapset an, mit dem das Intervall beginnt.
NEWEST = -1 / <integer -52..-1>
Gibt den jüngsten Snapset an, mit dem das Intervall endet.
REPLACE = *NO / *YES(...)
Gibt an, ob die zu restaurierenden Dateien bereits existierende Dateien überschreiben dürfen.
REPLACE = *NO
Bereits existierende Dateien werden nicht überschrieben. Das bedeutet, dass Dateien mit Namen bereits existierender Dateien nicht restauriert werden.
REPLACE = *YES(...)
Bereits existierende Dateien dürfen von zu restaurierenden Dateien überschrieben werden, soweit die Schutzattribute dies zulassen. Für Dateien, die mit Kennwort gegen unberechtigtes Überschreiben geschützt sind, muss das erforderliche Kennwort in der Kennworttabelle des Aufrufers eingetragen sein (siehe Kommando ADD-PASSWORD).
IGNORE-PROTECTION = *NO / *YES
Der Operand steht nur dem privilegierten Benutzer (Privileg TSOS) zur Verfügung. Gibt an, ob Dateien ohne Beachtung eines bestehenden Schreibschutzes überschrieben werden sollen.
NEW-FILE-NAME = *SAME / *BY-USER-ID(...) / *BY-PREFIX(...)
Gibt an, ob die Dateien beim Restaurieren umbenannt werden sollen. Bei Umbenennung kann entweder eine andere Benutzerkennung oder ein Dateinamenspräfix angegeben werden.
NEW-FILE-NAME = *SAME
Jede Datei wird unter dem Namen der Originaldatei restauriert.
NEW-FILE-NAME = *BY-USER-ID(...)
Jede Datei soll unter der angegebenen Benutzerkennung restauriert werden.
Nur für den Miteigentümer (bzw. TSOS) besteht hier die Möglichkeit die Datei unter einer anderen als der Original-Benutzerkennung zu restaurieren.
NEW-USER-ID = *SAME / <name 1..8>
Neue Benutzerkennung. Voreingestellt ist *SAME, d.h. die Benutzerkennung der Originaldatei wird beibehalten.
NEW-FILE-NAME = *BY-PREFIX(...)
Jede Datei soll unter einem neuen Namen restauriert werden. Der Name setzt sich zusammen aus dem angegebenen Präfix und dem Originalnamen, getrennt durch einen Punkt.
NEW-PREFIX = *NONE / <filename 1..8 without-cat-gen-user-vers>
Dateinamenspräfix (maximal 8 Zeichen). Voreingestellt ist *NONE, d.h. der Originaldateiname wird beibehalten.
RESTORE-OPEN-FILES = *NO / *YES
Gibt an, ob auch Dateien restauriert werden sollen, die beim Sichern auf den Snapset schreibgeöffnet waren und bei denen das Dateiattribut ONLINE-SAVE nicht gesetzt war.
RESTORE-OPEN-FILES = *NO
Diese Dateien werden nicht restauriert.
RESTORE-OPEN-FILES = *YES
Diese Dateien werden restauriert. Die Konsistenz entspricht der nach einem System-Crash (Schreibzugriffe in korrekter Reihenfolge). Bei ISAM-Dateien kann ein Verify (Kommando REPAIR-DISK-FILE) notwendig werden.
REPORTING = *ERROR / *FULL
Bestimmt den Umfang des Protokolls, wenn im Operanden OUTPUT ein Verarbeitungsprokoll angefordert wurde.
REPORTING = *ERROR
Es werden nur Dateien aufgelistet, die nicht restauriert werden konnten. Die Ursache wird jeweils mit einem Meldungsschlüssel angezeigt.
REPORTING = *FULL
Es werden alle Dateien aufgelistet. Für die nicht restaurierbaren Dateien wird die Ursache jeweils mit einem Meldungsschlüssel angezeigt.
OUTPUT = *NONE / list-poss(2): *SYSOUT / *SYSLST
Gibt an, ob ein Verarbeitungsprotokoll nach SYSOUT und/oder SYSLST ausgegeben werden soll. Voreingestellt ist *NONE, d.h. es wird kein Protokoll ausgegeben.
Kommando-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
---|---|---|---|
0 | CMD0001 | Kommando fehlerfrei ausgeführt | |
1 | CMD0202 | Syntax- oder Semantikfehler im Kommando | |
32 | DMS0584 | Bei der Verarbeitung trat ein Zustand ein, der eine Fortführung nicht erlaubt | |
32 | DMS05C7 | Unerwarteter interner Fehler im DVS | |
64 | CMD0102 | Kommando abgebrochen nach K2-Unterbrechung | |
64 | CMD0216 | Erforderliche Berechtigung nicht vorhanden | |
64 | DMS0501 | Angeforderter Katalog nicht verfügbar | |
64 | DMS0512 | Angeforderter Katalog nicht gefunden | |
64 | DMS051B | Gewünschte Benutzerkennung nicht im Pubset | |
64 | DMS051C | Benutzer hat auf Pubset kein Zugriffsrecht | |
64 | DMS0535 | Angegebene Datei nicht mehrbenutzbar | |
64 | DMS057F | Migrierte Datei kann nicht umbenannt werden | |
64 | DMS0585 | Während der Katalog- oder der Mehrrechner-Verarbeitung wurde ein Fehler festgestellt | |
64 | DMS05FC | Angegebene Benutzerkennung nicht im Home-Pubset | |
64 | DMS0610 | Aktion mit Musterzeichenfolge (Wildcards): Fehler bei Funktionsausführung für einen der selektierten Dateinamen | |
64 | DMS0616 | Volume-Set in SM-Pubset nicht zugreifbar | |
64 | DMS0620 | Keine restaurierbare Datei gefunden | |
64 | DMS0621 | Datei bereits katalogisiert, Restaurierung nicht ausgeführt | |
64 | DMS0622 | Snapset nicht verfügbar | |
64 | DMS0681 | DVS-Fehler bei Auftragsausführung | |
64 | DMS0684 | Datei existiert nicht | |
64 | DMS06CC | Kein Dateiname entspricht der angegebenen Musterzeichenfolge (Wildcards) | |
130 | DMS053C | Im Katalog des Pubsets ist kein Platz | |
130 | DMS0582 | Die Datei ist zur Zeit gesperrt oder in Gebrauch und kann nicht bearbeitet werden | |
130 | DMS0585 | Während der Katalog- oder der Mehrrechner-Verarbeitung wurde ein Fehler festgestellt | |
130 | DMS0588 | Die Plattenspeicher-Zuweisung konnte nicht durchgeführt werden | |
130 | DMS0594 | Nicht genügend virtueller Speicher |
Beispiele
Die folgenden zwei Beispiele zeigen die Snapset-Nutzung aus Sicht eines nichtprivilegierten Benutzers.
Beispiel 1: Restaurieren von gelöschten Dateien
Der nicht-privilegierte Benutzer arbeitet am 21.12.2011 im Dialog unter der Benutzerkennung ARCHIVE8 mit dem Default-Pubset 2OS6.
/show-file-attr d* ———————————————————————————————————————————————————— (1)
% 3 :2OS6:$ARCHIVE8.DO.ERASE.ARCHIVE.8.0A.ST5385 % 3 :2OS6:$ARCHIVE8.DO.ERASE.ARCHIVE.8.0A.ST5406
/show-snapset-conf ———————————————————————————————————————————————————— (2)
% PUBSET = 2OS6 , SAVE-POOL-NAME = *DEFAULT-POOL, REMOTE-COPY = *NO % SNAP-ID CREATION-DATE/TIME SESSION-ID SNAP-ID CREATION-DATE/TIME SESSION-ID % -1 g 2011-12-20 18:00:45 87C968B6 -2 f 2011-12-20 12:00:43 86C968B6 % -3 e 2011-12-19 18:00:50 85C968B6 -4 d 2011-12-19 12:00:46 84C968B6 % -5 c 2011-12-18 18:00:47 83C968B6 -6 b 2011-12-18 12:00:47 82C968B6 % -7 a 2011-12-15 18:00:49 81C968B6 -8 z 2011-12-15 12:01:18 A9C968B6 % -9 y 2011-12-14 18:01:01 A8C968B6 -10 x 2011-12-14 12:01:03 A7C968B6 % -11 w 2011-12-13 18:00:44 A6C968B6 -12 v 2011-12-13 12:00:46 A5C968B6 % -13 u 2011-12-12 18:00:46 A4C968B6 -14 t 2011-12-12 12:00:48 A3C968B6 % -15 s 2011-12-11 18:00:46 A2C968B6
/rest-file-from-snapset f-name=du.,snapset=*all,
report=*full,output=*sysout ————————————————— (3)
%:2OS6:$ARCHIVE8.DU.BIND.FAR RESTORED FROM f %:2OS6:$ARCHIVE8.DU.CG.DIRCONV RESTORED FROM f %:2OS6:$ARCHIVE8.DU.COMP.ALL RESTORED FROM f %:2OS6:$ARCHIVE8.DU.COMP.REST RESTORED FROM f %:2OS6:$ARCHIVE8.DU.COMP.ST RESTORED FROM f %:2OS6:$ARCHIVE8.DU.COMP.ST.ASS RESTORED FROM f %:2OS6:$ARCHIVE8.DU.SYSRME.E RESTORED FROM f %:2OS6:$ARCHIVE8.DU.TF.LIB RESTORED FROM f ———————————————————————— (4)
/show-file-attr du.tf.lib,inf=*par(history=*yes) ————————————————————— (5)
%0000000030 :2OS6:$ARCHIVE8.DU.TF.LIB % ------------------------------- HISTORY ----------------------------- % CRE-DATE = 2012-12-20 ACC-DATE = 2012-12-20 CHANG-DATE = 2012-12-20 % CRE-TIME = 09:55:04 ACC-TIME = 09:55:04 CHANG-TIME = 09:55:04 % ACC-COUNT = 211 S-ALLO-NUM = 0 %:2OS6: PUBLIC: 1 FILE RES= 30 FRE= 5 REL= 3 PAGES
(1) | Der Benutzer lässt sich alle Dateien auflisten, die mit „D“ beginnen. Dabei stellt er fest, dass keine Datei mit dem Präfix „DU.“ existiert. Da diese Dateien vor einer Woche noch da waren, muss sie jemand versehentlich gelöscht haben! |
(2) | Das Kommando SHOW-SNAPSET-CONFIGURATION informiert über alle aktuell verfügbaren Snapset-Sicherungen des Pubsets 2OS6: Es liegen 15 Snapsets mit Sicherungen von 12 und 18 Uhr des jeweiligen Arbeitstages. Die älteste Sicherung wurde am 11.12. um 18 Uhr erstellt. |
(3) | Da der Benutzer nicht genau weiß, wann die vermissten Dateien gelöscht wurden, gibt er SNAPSET=*ALL an, um die Dateien jeweils vom jüngsten Snapset zu restaurieren. |
(4) | Da alle Dateien vom Snapset f restauriert wurden, müssen sie zwischen 18 Uhr am 19.12. und 12 Uhr am 20.12. gelöscht worden sein. Die restaurierten Dateien erhalten die ursprünglichen Zeitangaben, so als wenn sie nicht gelöscht worden wären. |
(5) | Der Benutzer kontrolliert die Zeitangaben im Katalogeintrag der letzten Datei. |
Beispiel 2: Bearbeitungsstand einer Datei zurücksetzen
Der Benutzer will nun unter der Benutzerkennung ARCHIV8B (mit gleichem Standard-Pubset) den Bearbeitungsstand der Datei SM.SS.ARCHIVE.V08.0B03.SRCLIB zurücksetzen, da während der letzten Tage (fehlerhafte) Änderungen vorgenommen wurden. Er überprüft die gesicherten Dateistände so:
/list-file-from-snapset f-name=sm.ss.archive.v08.0b03.srclib,
inf=*all,snapset=*all ————————————————————— (1)
%----------------------------SNAPSET g--------------------------------------% 6906 :2OS6:$ARCHIV8B.SM.SS.ARCHIVE.V08.0B03.SRCLIB % CRE-DATE=2012-12-14 13:35:49 CHANG-DATE=2012-12-20 10:42:12 STATE=CLOSED %----------------------------SNAPSET f--------------------------------------% 6906 :2OS6:$ARCHIV8B.SM.SS.ARCHIVE.V08.0B03.SRCLIB % CRE-DATE=2012-12-14 13:35:49 CHANG-DATE=2012-12-20 10:42:12 STATE=CLOSED %----------------------------SNAPSET e--------------------------------------% 6906 :2OS6:$ARCHIV8B.SM.SS.ARCHIVE.V08.0B03.SRCLIB % CRE-DATE=2012-12-14 13:35:49 CHANG-DATE=2012-12-19 14:16:25 STATE=CLOSED %----------------------------SNAPSET d--------------------------------------% 6906 :2OS6:$ARCHIV8B.SM.SS.ARCHIVE.V08.0B03.SRCLIB % CRE-DATE=2012-12-14 13:35:49 CHANG-DATE=2012-12-14 13:36:19 STATE=CLOSED %----------------------------SNAPSET c--------------------------------------% 6906 :2OS6:$ARCHIV8B.SM.SS.ARCHIVE.V08.0B03.SRCLIB % CRE-DATE=2012-12-14 13:35:49 CHANG-DATE=2012-12-14 13:36:19 STATE=CLOSED %----------------------------SNAPSET b--------------------------------------% 6906 :2OS6:$ARCHIV8B.SM.SS.ARCHIVE.V08.0B03.SRCLIB % CRE-DATE=2012-12-14 13:35:49 CHANG-DATE=2012-12-14 13:36:19 STATE=CLOSED %----------------------------SNAPSET a--------------------------------------% 6906 :2OS6:$ARCHIV8B.SM.SS.ARCHIVE.V08.0B03.SRCLIB % CRE-DATE=2012-12-14 13:35:49 CHANG-DATE=2012-12-14 13:36:19 STATE=CLOSED %----------------------------SNAPSET z--------------------------------------% 6906 :2OS6:$ARCHIV8B.SM.SS.ARCHIVE.V08.0B03.SRCLIB % CRE-DATE=2012-12-14 13:35:49 CHANG-DATE=2012-12-14 13:36:19 STATE=CLOSED %----------------------------SNAPSET y--------------------------------------% 6906 :2OS6:$ARCHIV8B.SM.SS.ARCHIVE.V08.0B03.SRCLIB % CRE-DATE=2012-12-14 13:35:49 CHANG-DATE=2012-12-14 13:36:19 STATE=CLOSED %----------------------------SNAPSET x--------------------------------------% DMS0684 FILE ':2OS6:$ARCHIV8B.SM.SS.ARCHIVE.V08.0B03.SRCLIB' DOES NOT EXIST %----------------------------SNAPSET w--------------------------------------% DMS0684 FILE ':2OS6:$ARCHIV8B.SM.SS.ARCHIVE.V08.0B03.SRCLIB' DOES NOT EXIST %----------------------------SNAPSET v--------------------------------------% DMS0684 FILE ':2OS6:$ARCHIV8B.SM.SS.ARCHIVE.V08.0B03.SRCLIB' DOES NOT EXIST %----------------------------SNAPSET u--------------------------------------% DMS0684 FILE ':2OS6:$ARCHIV8B.SM.SS.ARCHIVE.V08.0B03.SRCLIB' DOES NOT EXIST %----------------------------SNAPSET t--------------------------------------% DMS0684 FILE ':2OS6:$ARCHIV8B.SM.SS.ARCHIVE.V08.0B03.SRCLIB' DOES NOT EXIST %----------------------------SNAPSET s--------------------------------------% DMS0684 FILE ':2OS6:$ARCHIV8B.SM.SS.ARCHIVE.V08.0B03.SRCLIB' DOES NOT EXIST
/rest-file-from-snapset f-name=sm.ss.archive.v08.0b03.srclib,
snapset=d,replace=*yes —————————————————————— (2)
/show-file-attr sm.ss.archive.v08.0b03.srclib,inf=*par(history=*yes) —— (3)
%0000006906 :2OS6:$ARCHIV8B.SM.SS.ARCHIVE.V08.0B03.SRCLIB % ------------------------------- HISTORY ----------------------------- % CRE-DATE = 2012-12-14 ACC-DATE = 2012-12-14 CHANG-DATE = 2012-12-14 % CRE-TIME = 13:35:49 ACC-TIME = 15:37:29 CHANG-TIME = 13:36:19 % ACC-COUNT = 2 S-ALLO-NUM = 0 %:2OS6: PUBLIC: 1 FILE RES= 6906 FRE= 651 REL= 651 PAGES
(1) | Mit LIST-FILE-FROM-SNAPSET lässt sich der Benutzer Informationen über die gesicherten Dateistände der Datei ausgeben. |
(2) | Der Ausgabe entnimmt der Benutzer, dass die Datei am 14.12. erstellt und dann am 19. und 20.12. geändert wurde. Um die Änderungen ab dem 19.12. rückgängig zu machen, muss die Datei also von dem Snapset d restauriert werden. |
(3) | Zur Sicherheit kontrolliert der Benutzer die Zeitangaben im Katalogeintrag der restaurierten Datei: Sie hat jetzt wieder den Stand vom 14.12.2012, d.h. den Bearbeitungsstand vor den Änderungen, die ab dem 19.12. erfolgt sind. |