FirebirdSQL logo

Ein shadow ist eine exakte, seitenweise Kopie einer Datenbank.Sobald ein Schatten erstellt wurde, werden alle in der Datenbank vorgenommenen Änderungen sofort im Schatten widergespiegelt.Wenn die primäre Datenbankdatei aus irgendeinem Grund nicht verfügbar ist, wechselt das DBMS zum Shadow.

In diesem Abschnitt wird beschrieben, wie Sie Schattendateien erstellen und löschen.

CREATE SHADOW

Verwendet für

Schatten für die aktuelle Datenbank erstellen

Verfügbar in

DSQL, ESQL

Syntax
CREATE SHADOW <sh_num> [{AUTO | MANUAL}] [CONDITIONAL]
  'filepath' [LENGTH [=] num [PAGE[S]]]
  [<secondary_file> ...]

<secondary_file> ::=
  FILE 'filepath'
  [STARTING [AT [PAGE]] pagenum]
  [LENGTH [=] num [PAGE[S]]]
Table 1. CREATE SHADOW-Anweisungsparameter
Parameter Beschreibung

sh_num

Schattennummer – eine positive Zahl, die den Schattensatz identifiziert

filepath

Der Name der Schattendatei und der Pfad zu ihr gemäß den Regeln des Betriebssystems

num

Maximale Schattengröße in Seiten

secondary_file

Sekundärdateispezifikation

page_num

Die Nummer der Seite, bei der die sekundäre Schattendatei beginnen soll

Die Anweisung CREATE SHADOW erstellt einen neuen Schatten.Der Shadow beginnt sofort mit dem Duplizieren der Datenbank.Es ist einem Benutzer nicht möglich, sich mit einem Shadow zu verbinden.

Wie eine Datenbank kann ein Schatten aus mehreren Dateien bestehen.Die Anzahl und Größe der Dateien eines Shadows hängt nicht von der Anzahl und Größe der Dateien der Datenbank ab, die er beschattet.

Die Seitengröße für Schattendateien ist gleich der Seitengröße der Datenbank und kann nicht geändert werden.

Wenn eine Katastrophe mit der Originaldatenbank auftritt, konvertiert das System den Schatten in eine Kopie der Datenbank und wechselt zu dieser.Der Schatten ist dann unverfügbar.Was als nächstes passiert, hängt von der Option MODE ab.

docnext count = 7

AUTO | MANUAL-Modus

Wenn ein Schatten in eine Datenbank konvertiert wird, ist er nicht verfügbar.Alternativ kann ein Schatten nicht mehr verfügbar sein, weil jemand seine Datei versehentlich löscht oder der Speicherplatz, auf dem die Schattendateien gespeichert sind, erschöpft oder selbst beschädigt ist.

  • Wenn der AUTO-Modus ausgewählt ist (Standardwert), wird das Spiegeln automatisch beendet, alle Verweise darauf werden aus dem Datenbankheader gelöscht und die Datenbank funktioniert normal weiter.

    Wenn die Option CONDITIONAL gesetzt wurde, versucht das System, einen neuen Schatten zu erstellen, um den verlorenen zu ersetzen.Es gelingt jedoch nicht immer, und möglicherweise muss manuell ein neues erstellt werden.

  • Wenn das MANUAL-Modusattribut gesetzt ist, wenn der Shadow nicht verfügbar ist, werden alle Versuche, eine Verbindung zur Datenbank herzustellen und sie abzufragen, Fehlermeldungen erzeugen.Auf die Datenbank kann nicht zugegriffen werden, bis entweder der Shadow wieder verfügbar ist oder der Datenbankadministrator ihn mit der DROP SHADOW-Anweisung löscht.MANUAL sollte gewählt werden, wenn kontinuierliches Shadowing wichtiger ist als ein unterbrechungsfreier Betrieb der Datenbank.

Optionen für CREATE SHADOW

LENGTH

Gibt die maximale Größe der primären oder sekundären Schattendatei in Seiten an.Der Wert LENGTH hat keinen Einfluss auf die Größe der einzigen Schattendatei oder der letzten, wenn es sich um eine Menge handelt.Die letzte (oder einzige) Datei wächst automatisch weiter, solange es notwendig ist.

STARTING AT

Gibt die Schattenseitennummer an, bei der die nächste Schattendatei beginnen soll.Das System beginnt mit dem Hinzufügen neuer Daten zur nächsten Schattendatei, wenn die vorherige Datei bis zur angegebenen Seitenzahl mit Daten gefüllt ist.

Tip

Sie können die Größe, die Namen und den Speicherort der Schattendateien überprüfen, indem Sie mit isql eine Verbindung zur Datenbank herstellen und den Befehl SHOW DATABASE; . ausführen

Wer kann einen Schatten erstellen

Die CREATE SHADOW-Anweisung kann ausgeführt werden durch:

Beispiele für die Verwendung von CREATE SHADOW

  1. Erstellen eines Schattens für die aktuelle Datenbank als “Schattennummer 1”:

    CREATE SHADOW 1 'g:\data\test.shd';
  2. Erstellen eines Schattens mit mehreren Dateien für die aktuelle Datenbank als “Schattennummer 2”:

    CREATE SHADOW 2 'g:\data\test.sh1'
      LENGTH 8000 PAGES
      FILE 'g:\data\test.sh2';

DROP SHADOW

Verwendet für

Löschen eines Schattens aus der aktuellen Datenbank

Verfügbar in

DSQL, ESQL

Syntax
DROP SHADOW sh_num
  [{DELETE | PRESERVE} FILE]
Table 1. DROP SHADOW-Anweisungsparameter
Parameter Beschreibung

sh_num

Schattennummer – eine positive Zahl, die den Schattensatz identifiziert

Die DROP SHADOW-Anweisung löscht den angegebenen Schatten für die aktuelle Datenbank.Wenn ein Shadow gelöscht wird, werden alle damit verbundenen Dateien gelöscht und das Shadowing auf die angegebene sh_num wird beendet.Die optionale DELETE FILE-Klausel macht dieses Verhalten explizit.Im Gegensatz dazu entfernt die PRESERVE FILE-Klausel den Schatten aus der Datenbank, aber die Datei selbst wird nicht gelöscht.

Wer kann einen Schatten löschen

Die DROP SHADOW-Anweisung kann ausgeführt werden durch:

Beispiel für DROP SHADOW

Löschen von “Schatten mit der Nummer 1”.
DROP SHADOW 1;