Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

PREPARE-FOREIGN-COPY

Logisches und physikalisches Schließen von Spaces einer Datenbank, um die Erzeugung einer Fremdkopie vorzubereiten.

Geltungsbereich

DBH-Administration

Siehe auch

Funktionsbeschreibung

Zum Zeitpunkt der Erzeugung einer Fremdkopie müssen die betroffenen Spaces ordnungsgemäß geschlossen sein. Mit der Anweisung PREPARE-FOREIGN-COPY können Sie die Spaces logisch und physikalisch schließen.

Beim logischen Schließen wird über eine Transaktionssperre der Update auf dem Space unterbrochen. Die Inhalte der Puffer der ausgewählten Datenbank werden in die entsprechenden Dateien geschrieben. Diese Dateien bleiben weiterhin physikalisch geöffnet.

So lange kein Update auf die Datenbank erfolgt, kann jetzt eine Fremdkopie erzeugt werden. Updates müssen mit organisatorischen Maßnahmen oder besser durch Eingabe der Anweisung PREPARE-FOREIGN-COPY innerhalb einer Locksequenz verhindert werden. Ein lesender Zugriff auf die Datenbank ist auch während der Locksequenz möglich. Locksequenzen werden mit BEGIN-LOCK-SEQUENCE eröffnet und mit END-LOCK-SEQUENCE beendet.

Beim physikalischen Schließen bleiben die Inhalte der Puffer der ausgewählten Datenbank erhalten. Damit sind auch Fremdkopien möglich, die erfordern, dass die Datenbankdateien physikalisch geschlossen sind (z.B. SNAP-Dump). Die Datenbank erhält den Status CLOSED. In diesem Zustand werden Zugriffe auf die Datenbank mit SQLSTATE abgelehnt. Dies bleibt für Anwenderprogramme unsichtbar, wenn die Anweisungfolge PREPARE-FOREIGN-COPY (mit CLOSE) und END-FOREIGN-COPY innerhalb einer Locksequenz verwendet wird.

Mit der Anweisung PREPARE-FOREIGN-COPY kann das Logging für einen Space, ein Space-Set oder den ganzen Catalog eingeschaltet werden. Die Logging-Informationen können mit Fremdkopien, die nach der Anweisung PREPARE-FOREIGN-COPY erzeugt wurden, zur Reparatur genutzt werden.

Die Anweisung PREPARE-FOREIGN-COPY kann unabhängig von der Anweisung END-FOREIGN-COPY verwendet werden.

Folgt in derselben Administrations-Session eine Anweisung END-FOREIGN-COPY, so wirkt diese nur auf die in der vorangegangenen Anweisung PREPARE-FOREIGN-COPY angegebenen Spaces.

Wenn nur für einige Spaces das Logging eingeschaltet werden soll, aber weitere Spaces als Space-Set gesichert werden sollen, dann muss zuerst eine Anweisung PREPARE-FOREIGN-COPY für das Einschalten des Logging gegeben werden. Anschließend folgt eine weitere Anweisung PREPARE-FOREIGN-COPY mit allen zu sichernden Spaces. Die abschließende Anweisung END-FOREIGN-COPY wirkt dann auf alle gesicherten Spaces.

PREPARE-FOREIGN-COPY

SELECT = *LOGICAL(...) / *PHYSICAL(...)


*LOGICAL(...)



|

CATALOG-NAME = <filename 1..18 without-cat-user-gen-vers>


*PHYSICAL(...)



|

PHYS-CATALOG-NAME = <filename 1..18 without-cat-user-gen-vers>

,SPACE-NAMES = *ALL(...) / *CATALOG / *FROM-FILE(...)





list-poss(200): <filename 1..18 without-cat-user-gen-vers>


*ALL(...)



|

CLOSE = *NO / *YES


*FROM-FILE(...)



|

FILE-NAME = <filename 1..54>

,LOGGING = *UNCHANGED / *ON

Operandenbeschreibung

SELECT =

Legt fest, über welchen Namen die Datenbank identifiziert wird.

SELECT = *LOGICAL(...)
Auswahl der Datenbank, die logisch geschlossen werden soll.

CATALOG-NAME =
<filename 1..18 without-cat-user-gen-vers>
Logischer Datenbankname.

SELECT = *PHYSICAL(...)
Auswahl der Datenbank, die logisch geschlossen werden soll.

PHYS-CATALOG-NAME =
<filename 1..18 without-cat-user-gen-vers>
Physikalischer Datenbankname.


SPACE-NAMES =

Legt die zu schließenden Spaces fest.

Die Sicherungen der mit dieser Anweisung geschlossenen Spaces können in der Utility-Anweisung RECOVER (mit Fremdkopie) in einer Space-Liste angegeben werden, siehe Handbuch " SQL-Sprachbeschreibung Teil 2: Utilities", Utility-Anweisung RECOVER).

SPACE-NAMES = *ALL(...)
Alle Anwender-Spaces und der Catalog-Space werden logisch geschlossen.

CLOSE = *NO
Die Datenbankdateien bleiben physikalisch göffnet.

CLOSE = *YES
Die Datenbankdateien werden auch physikalisch geschlossen.
Die Datenbank erhält den Status CLOSED. Es muss in derselben DBH-Session eine END-FOREIGN-COPY-Anweisung eingegeben werden.

SPACE-NAMES = *CATALOG
Nur der Catalog-Space wird logisch geschlossen. Nur vom Catalog-Space kann anschließend eine konsistente Fremdkopie erzeugt werden.

SPACE-NAMES = *FROM-FILE(...)
Auswahl der Spaces, die logisch geschlossen werden sollen, durch Auflistung in einer Datei.

FILE-NAME = <filename 1..54>
Dateiname einer SAM-Datei, die in jeder Zeile einen Spacenamen enthält. Bis zu 999 Spaces können so angegeben werden.

Beispiel

Datei mit einer Liste von Spacenamen, die mit dem Editor EDT erstellt wurde:

TABLESPACE
INDEXSPACE
BLOBSPACE
%  SHO0301 WARNING: END OF FILE REACHED                                         
                                                           S*SOF+     1(     1)
________________________________________________________________________________
LTG                                                         TAST

SPACE-NAMES =
list-poss(200): <filename 1..18 without-cat-user-gen-vers>
Die angegebenen Anwender-Spaces werden logisch geschlossen. Nur von diesen Spaces kann anschließend eine konsistente Fremdkopie erzeugt werden.


LOGGING =

Legt fest, ob das Logging für die im Operanden SPACE-NAMES festgelegten Spaces eingeschaltet wird.

LOGGING = *UNCHANGED
Die Einstellungen für das Logging bleiben unverändert.

LOGGING = *ON
Für die im Operanden SPACE-NAMES festgelegten Spaces wird das Logging eingeschaltet. Logging für einzelne Spaces kann nur eingeschaltet werden, wenn sich der Catalog bereits im Logging befindet. Die Sicherungen der Spaces, die mit dieser Anweisung geschlossen werden, bilden den Ausgangspunkt für die Protokollierung.


Administrationskommando im ISP-Format und an der CALL-DML-Schnittstelle

Hier entspricht der Administrationsanweisung PREPARE-FOREIGN-COPY das Administrationskommando FCOPY,PREPARE.

FCOPY,P[REPARE],supplement
       [,{space|CLOSE}][,L[OGGING-ON]] 
supplement ::= {C[ATALOG]=catalog-name|
                P[HYSICAL-NAME]=physical-name}
space ::= S[PACE]={(space-name,...)|C[ATALOG]}

Für space-name können bis zu 999 Anwender-Spaces angegeben werden. Wenn nur ein space-name angegeben wird, dann können die Klammern entfallen. Für catalog-name und physical-name dürfen die zuvor bei den entsprechenden Operanden beschriebenen Werte eingegeben werden.

Bei der Administration über INFORM-PROGRAM müssen Sie auf die zulässige Länge des Kommandos achten (siehe Abschnitt „Administration über INFORM-PROGRAM“).