Firebird Documentation IndexFirebird 2.5 SprachreferenzStatements der Data Definition (DDL) → DATABASE
Firebird Home Firebird Home Zurück: Statements der Data Definition (DDL)Firebird Documentation IndexNach oben: Statements der Data Definition (DDL)Weiter: SHADOW

DATABASE

Inhaltsverzeichnis

CREATE DATABASE
ALTER DATABASE
DROP DATABASE

In diesem Abschnitt wird beschrieben, wie Sie eine Datenbank erstellen, eine Verbindung zu einer vorhandenen Datenbank herstellen, die Dateistruktur einer Datenbank ändern und löschen. Außerdem wird erläutert, wie Sie eine Datenbank auf zwei verschiedene Arten sichern können und wie Sie die Datenbank in den „kopiersicheren“ Modus umwandeln können, um ein externes Backup sicher durchzuführen.

CREATE DATABASE

Benutzt für: Erstellen einer neuen Datenbank

Verfügbar in: DSQL, ESQL

Syntax: 

       CREATE {DATABASE | SCHEMA} '<filespec>'
       [USER 'username' [PASSWORD 'password']]
       [PAGE_SIZE [=] size]
       [LENGTH [=] num [PAGE[S]]
       [SET NAMES 'charset'] 
       [DEFAULT CHARACTER SET default_charset
         [COLLATION collation]] -- not supported in ESQL
       [<sec_file> [<sec_file> ...]]
       [DIFFERENCE FILE 'diff_file']; -- not supported in ESQL

       <filespec> ::= [<server_spec>]{filepath | db_alias}

       <server_spec> ::= servername [/{port|service}]: | \\servername\

       <sec_file> ::= FILE 'filepath'
       [LENGTH [=] num [PAGE[S]] [STARTING [AT [PAGE]] pagenum]
        

Tabelle 5.1. CREATE DATABASE Statement-Parameter

Parameter Beschreibung
filespec Dateispezifikation für primäre Datenbankdatei
server_spec Spezifikation des Remoteservers im TCP / IP- oder Windows-Netzwerkstil. Enthält optional eine Portnummer oder einen Servicenamen
filepath Vollständiger Pfad und Dateiname einschließlich seiner Erweiterung. Der Dateiname muss gemäß den Regeln des verwendeten Plattformdateisystems angegeben werden.
db_alias Datenbank-Alias, der zuvor in der Datei aliases.conf definiert wurde.
servername Hostname oder IP-Adresse des Servers, auf dem die Datenbank erstellt werden soll.
username Benutzername des Eigentümers der neuen Datenbank. Es kann aus bis zu 31 Zeichen bestehen. Groß- / Kleinschreibung ist vernachlässigbar.
password Kennwort des Benutzers oder Datenbankeigentümers. Die maximale Länge beträgt 31 Zeichen; es werden jedoch nur die ersten 8 Zeichen berücksichtigt. Groß- / Kleinschreibung beachten.
size Seitengröße der Datenbank in Bytes. Mögliche Werte sind 4096 (Standard), 8192 und 16384
num Maximale Größe des primären Datenbankdatei, oder einer sekundären, in Seiten (pages).
charset Legt den Zeichensatz der Verbindung fest, die von einem Client verwendet wird, nachdem die Datenbank erfolgreich erstellt wurde. Einfache Anführungszeichen sind zu verwenden.
default_charset Legt den Standardzeichensatz für String-Datentypen fest.
collation Standard-Collation für den Standardzeichensatz
sec_file Dateispezifikation für eine sekundäre Datei
pagenum Startseitenzahl für eine sekundäre Datenbankdatei
diff_file Dateipfad und -name für DIFFERENCE-Dateien (.delta-Dateien)


Das Statement CREATE DATABASE erstellt eine neue Datenbank. Sie können sowohl CREATE DATABASE wie auch CREATE SCHEMA verwenden. Dies sind Synonyme füreinander.

Eine Datenbank besteht aus einer oder mehrerer Dateien. Die erste (Haupt-) Datei wird auch als die primäre Datei bezeichnet, folgende als sekundäre Datei[en].

Multi-Datei-Datenbanken

Heutzutage gelten Multi-File-Datenbanken als rückschrittlich. Es ist sinnvoll, Datenbanken mit mehreren Dateien auf alten Dateisystemen zu verwenden, bei denen die Größe einer Datei begrenzt ist. Sie können beispielsweise keine Datei mit mehr als 4 GB auf FAT32 erstellen.

Die primäre Dateispezifikation ist der Name der Datenbankdatei und ihrer Erweiterung mit dem vollständigen Pfad zu den Regeln des verwendeten Betriebssystemplattformdateisystems. Die Datenbankdatei darf zum Zeitpunkt der Datenbankerstellung nicht vorhanden sein. Wenn dies der Fall ist, erhalten Sie eine Fehlermeldung und die Datenbank wird nicht erstellt.

Wenn der vollständige Pfad zur Datenbank nicht angegeben ist, wird die Datenbank in einem der Systemverzeichnisse erstellt. Das bestimmte Verzeichnis hängt vom Betriebssystem ab. Geben Sie daher immer den absoluten Pfad an, wenn Sie entweder die Datenbank oder einen Alias dafür erstellen, es sei denn, Sie haben einen guten Grund, diese Situation zu bervorzugen.

Einen Datenbank-Alias verwendenUsing a Database Alias

Sie können Aliasnamen anstelle des vollständigen Pfads zur primären Datenbankdatei verwenden. Aliase sind in der Datei aliases.conf im folgenden Format definiert:

       alias = filepath
          

Eine Datenbank remote erstellen

Wenn Sie eine Datenbank auf einem Remoteserver erstellen, sollten Sie die Spezifikation des Remoteservers angeben. Die Spezifikation des Remoteservers hängt vom verwendeten Protokoll ab. Wenn Sie das TCP / IP-Protokoll zum Erstellen einer Datenbank verwenden, sollte die primäre Dateispezifikation wie folgt aussehen:

servername[/{port|service}]:{filepath | db_alias}
          

Wenn Sie das Named Pipes-Protokoll verwenden, um eine Datenbank auf einem Windows-Server zu erstellen, sollte die primäre Dateispezifikation wie folgt aussehen:

\\servername\{filepath | db_alias}
          

Optionale Parameter für CREATE DATABASE

Optional von USER und PASSWORDKlauseln zur Angabe des Benutzernamens bzw. des Passworts eines vorhandenen Benutzers in der Sicherheitsdatenbank security2.fdb. Sie müssen den Benutzernamen und das Kennwort nicht angeben, wenn die Umgebungsvariablen ISC_USER und ISC_PASSWORD festgelegt sind. Der Benutzer, der beim Erstellen der Datenbank angegeben wird, wird ihr Eigentümer sein. Dies ist wichtig, wenn Sie Datenbank- und Objektberechtigungen berücksichtigen.

Optional PAGE_SIZEKlausel zum Festlegen der Seitengröße der Datenbank. Diese Größe wird für die primäre Datei und alle sekundären Dateien der Datenbank festgelegt. Wenn Sie die Datenbankseitengröße unter 4.096 angeben, wird diese automatisch auf die Standardseitengröße 4.096 geändert. Andere Werte, die nicht 4.096, 8.192 oder 16.384 entsprechen, werden in den nächst kleineren unterstützten Wert geändert. Wenn die Größe der Datenbankseite nicht angegeben ist, wird der Standardwert auf 4.096 gesetzt.

Optional LENGTHKlausel, die die maximale Größe der primären oder sekundären Datenbankdatei in Seiten angibt. Wenn eine Datenbank erstellt wird, belegen ihre primären und sekundären Dateien die Mindestanzahl an Seiten, die zum Speichern der Systemdaten erforderlich sind, unabhängig vom in der LENGTH-Klausel angegebenen Wert. Der Wert der LENGTH wirkt sich nicht auf die Größe der einzigen (oder zuletzt in einer Datei mit mehreren Dateien) Datei aus. Die Datei wird bei Bedarf automatisch vergrößert.

Optional SET NAMESKlausel, die den Zeichensatz der Verbindung angibt, die verfügbar ist, nachdem die Datenbank erfolgreich erstellt wurde. Der Zeichensatz NONE wird standardmäßig verwendet. Beachten Sie, dass der Zeichensatz in einem Apostroph-Paar eingeschlossen sein sollte (einfache Anführungszeichen).

Optional DEFAULT CHARACTER SETKlausel, die den Standardzeichensatz zum Erstellen von Datenstrukturen von String-Datentypen angibt. Zeichensätze werden auf Datentypen CHAR, VARCHAR und BLOB TEXT angewendet. Der Zeichensatz NONE wird standardmäßig verwendet. Es ist auch möglich, den Standardwert COLLATION für den Standardzeichensatz festzulegen, wodurch diese Sortierfolge zum Standardwert für den Standardzeichensatz wird. Der Standardwert wird für die gesamte Datenbank verwendet, es sei denn, ein alternativer Zeichensatz mit oder ohne eine angegebene Collation wird explizit für ein Feld, eine Domain, eine Variable, einen Ausdruck usw. verwendet.

STARTING ATKlausel, die die Datenbankseitennummer angibt, bei der die nächste sekundäre Datenbankdatei gestartet werden soll. Wenn die vorherige Datei vollständig mit Daten gemäß der angegebenen Seitennummer gefüllt ist, fügt das System neue Daten zur nächsten Datenbankdatei hinzu.

Optional DIFFERENCE FILEKlausel, die den Pfad und den Namen für das Datei-Delta angibt, das Änderungen in der Datenbankdatei speichert, nachdem es durch die Anweisung ALTER DATABASE BEGIN BACKUP auf den „kopiersicheren“ Modus gestellt wurde. Eine detaillierte Beschreibung dieser Klausel finden Sie unter ALTER DATABASE.

SET SQL DIALECTDatenbanken werden standardmäßig in Dialekt 3 erstellt. Damit die Datenbank in SQL-Dialekt 1 erstellt wird, müssen Sie die Anweisung SET SQL DIALECT 1 aus dem Skript oder der Clientanwendung, z.B. isql, ausführen, noch vor der Anweisung CREATE DATABASE.

Beispiele zur Verwendung von CREATE DATABASE

  1. Erstellen einer Datenbank in Windows auf der Festplatte D mit einer Seitengröße von 8.192. Der Besitzer der Datenbank ist der Benutzer wizard. Die Datenbank befindet sich in Dialekt 1 und verwendet als Standardzeichensatz WIN1251.
    SET SQL DIALECT 1;
    CREATE DATABASE 'D:\test.fdb'
    USER 'wizard' PASSWORD 'player'
    PAGE_SIZE = 8192 DEFAULT CHARACTER SET WIN1251;
                
  2. Erstellen einer Datenbank im Linux-Betriebssystem mit einer Seitengröße von 4.096. Der Besitzer der Datenbank ist der Benutzer wizard. Die Datenbank befindet sich in Dialekt 3 und verwendet UTF8 als Standardzeichensatz, wobei UNICODE_CI_AI als Standardsortierung verwendet wird.
    CREATE DATABASE '/home/firebird/test.fdb'
    USER 'wizard' PASSWORD 'player'
    DEFAULT CHARACTER SET UTF8 COLLATION UNICODE_CI_AI;
                
  3. Erstellen einer Datenbank auf dem entfernten Server „baseserver“ mit dem angegebenen Alias „test“, der zuvor in der Datei aliases.conf definiert wurde. Das TCP / IP-Protokoll wird verwendet. Der Besitzer der Datenbank wird der Benutzer wizard sein. Die Datenbank befindet sich in Dialekt 3 und verwendet UTF8 als Standardzeichensatz.
    CREATE DATABASE 'baseserver:test'
    USER 'wizard' PASSWORD 'player'
    DEFAULT CHARACTER SET UTF8;
                
  4. Erstellen einer Datenbank in Dialekt 3 mit UTF8 als Standardzeichensatz. Die primäre Datei enthält bis zu 10.000 Seiten mit einer Seitengröße von 8.192. Sobald die primäre Datei die maximale Anzahl an Seiten erreicht hat, beginnt Firebird, Seiten der sekundären Datei test.fdb2 zuzuweisen. Wenn diese Datei ebenfalls maximal gefüllt ist, wird test.fdb3 zum Empfänger aller neuen Seitenzuweisungen. Als letzte Datei hat Firebird kein Seitenlimit. Neue Zuweisungen werden so lange fortgesetzt, wie es das Dateisystem zulässt, oder bis das Speichergerät keinen freien Speicher mehr hat. Wenn für diese letzte Datei ein LENGTH-Parameter angegeben wurde, wird dieser ignoriert.
    SET SQL DIALECT 3;
    CREATE DATABASE 'baseserver:D:\test.fdb'
    USER 'wizard' PASSWORD 'player'
    PAGE_SIZE = 8192
    DEFAULT CHARACTER SET UTF8
    FILE 'D:\test.fdb2'
    STARTING AT PAGE 10001
    FILE 'D:\test.fdb3'
    STARTING AT PAGE 20001;
                
  5. Erstellen einer Datenbank in Dialekt 3 mit UTF8 als Standardzeichensatz. Die primäre Datei enthält bis zu 10.000 Seiten mit einer Seitengröße von 8.192. In Bezug auf die Dateigröße und die Verwendung von Sekundärdateien verhält sich diese Datenbank genau wie im vorherigen Beispiel.
    SET SQL DIALECT 3;
    CREATE DATABASE 'baseserver:D:\test.fdb'
    USER 'wizard' PASSWORD 'player'
    PAGE_SIZE = 8192
    LENGTH 10000 PAGES
    DEFAULT CHARACTER SET UTF8
    FILE 'D:\test.fdb2'
    FILE 'D:\test.fdb3'
    STARTING AT PAGE 20001;
                

Siehe auch: ALTER DATABASE, DROP DATABASE

ALTER DATABASE

Inhaltsverzeichnis

Parameter für ALTER DATABASE

Benutzt für: Ändern der Dateiorganisation einer Datenbank oder um diese in den „kopiersicheren“ Modus zu setzen

Verfügbar in: DSQL—beide Funktionen. ESQL—nur Dateireorganisation

Syntax: 

ALTER {DATABASE | SCHEMA}
[<add_sec_clause> [<add_sec_clause> ...]]
[ADD DIFFERENCE FILE 'diff_file' | DROP DIFFERENCE FILE]
[{BEGIN | END} BACKUP];

<add_sec_clause> ::= ADD <sec_file> [<sec_file> ...]

<sec_file> ::= FILE 'filepath'

ADD FILE <sec_file>

          [STARTING [AT [PAGE]] pagenum]
          [LENGTH [=] num [PAGE[S]]
        

Anmerkung

Mehrere Dateien können mit einer ADD-Klausel hinzugefügt werden:

  ALTER DATABASE
    ADD FILE x LENGTH 8000
        FILE y LENGTH 8000
        FILE z
          

Mehrere ADD FILE-Klauseln sind erlaubt; und eine ADD FILE-Klausel, die mehrere Dateien hinzufügt (wie im obigen Beispiel), kann mit anderen gemischt werden, die nur eine Datei hinzufügen. Die Aussage wurde in der alten InterBase 6 Language Reference falsch dokumentiert.

Tabelle 5.2. ALTER DATABASE Statement-Parameter

Parameter Beschreibung
add_sec_clause Hinzufügen einer sekundären Datenbankdatei
sec_file Dateispezifikation für sekundäre Datei
filepath Vollständiger Pfad und Dateiname der Delta-Datei oder der sekundären Datenbankdatei
pagenum Seitennummer, von der aus die sekundäre Datenbankdatei gestartet werden soll
num Maximale Größe der sekundären Datei in Seiten
diff_file Dateipfad und Name der .delta-Datei (Differenzdatei)


Das Statement ALTER DATABASE kann

  • sekundäre Dateien zu einer Datenbank hinzufügen
  • eine Ein-Datei-Datenbank in und aus dem Modus „kopiersicher“ schalten (nur DSQL)
  • festlegen und entfernen des Pfades und der Namen der Delta-Dateien für physikalische Backups (nur DSQL)

Nur Administratoren haben die Berechtigung das Statement ALTER DATABASE auszuführen.

Parameter für ALTER DATABASE

Die ADD FILE-Klausel: fügt eine sekundäre Datei zur Datenbank hinzu. Es ist erforderlich, den vollständigen Pfad zur Datei und den Namen der sekundären Datei anzugeben. Die Beschreibung für die sekundäre Datei ähnelt der für die Anweisung CREATE DATABASE.

Die ADD DIFFERENCE FILE-Klausel: gibt den Pfad und den Namen der Delta-Datei an, die Änderungen in der Datenbank speichert, wenn diese auf den Modus „kopiersicher“ umgestellt wird. Diese Klausel fügt tatsächlich keine Datei hinzu. Sie überschreibt nur den Standardnamen und den Standardpfad der Delta-Datei. Um die vorhandenen Einstellungen zu ändern, sollten Sie die vorher angegebene Beschreibung der .delta-Datei mit der DROP DIFFERENCE FILE-Klausel vor der Angabe der neuen Beschreibung der Deltadatei löschen. Wenn Pfad und Name der .delta-Datei nicht überschrieben werden, hat die Datei denselben Pfad und denselben Namen wie die Datenbank, jedoch mit der Dateierweiterung .delta .

Achtung

Wenn nur ein Dateiname angegeben ist, wird die .delta-Datei im aktuellen Verzeichnis des Servers erstellt. Unter Windows wird dies das Systemverzeichnis sein — ein sehr unkluger Speicherort für flüchtige Benutzerdateien und entgegen den Windows-Dateisystemregeln.

DROP DIFFERENCE FILEDies ist die Klausel, die die Beschreibung (Pfad und Name) der zuvor in der ADD DIFFERENCE FILE-Klausel angegebenen Deltadatei löscht. Die Datei wird nicht gelöscht. DROP DIFFERENCE FILE löscht den Pfad und den Namen der .delta-Datei aus dem Datenbank-Header. Beim nächsten Umschalten der Datenbank auf den „kopiersicheren“ Modus werden die Standardwerte verwendet (d.h. derselbe Pfad und Name wie die Datenbank, jedoch mit der Erweiterung .delta).

BEGIN BACKUPDies ist die Klausel, die die Datenbank in den „kopiersicheren“ Modus umschaltet. ALTER DATABASE friert mit dieser Klausel die Hauptdatenbankdatei ein und ermöglicht die sichere Sicherung mithilfe von Dateisystemtools, selbst wenn Benutzer verbunden sind und Operationen mit Daten ausführen. Bis der Sicherungsstatus der Datenbank auf NORMAL zurückgesetzt wird, werden alle an der Datenbank vorgenommenen Änderungen in die .delta (Differenz)-Datei geschrieben.

Wichtig

Trotz seiner Syntax startet eine Anweisung mit der Klausel BEGIN BACKUP keinen Sicherungsprozess, sondern erstellt lediglich die Bedingungen für die Ausführung einer Aufgabe, für die die Datenbankdatei nur vorübergehend schreibgeschützt sein muss.

END BACKUPist die Klausel, mit der die Datenbank vom „kopiersicheren“ Modus in den normalen Modus umgeschaltet wird. Eine Anweisung mit dieser Klausel fügt die .delta-Datei mit der Hauptdatenbankdatei zusammen und stellt den normalen Betrieb der Datenbank wieder her. Sobald der END BACKUP-Prozess gestartet wird, sind die Bedingungen für das Erstellen sicherer Backups mit Dateisystemtools nicht mehr vorhanden.

Warnung

Die Verwendung von BEGIN BACKUP und END BACKUP und das Kopieren der Datenbankdateien mit den Dateisystemtools ist nicht sicher mit Mehrdateiendatenbanken! Verwenden Sie diese Methode nur für Datenbanken mit einer einzigen Datei.

Ein sicheres Backup mit dem Dienstprogramm gbak ist jederzeit möglich, wenn auch nicht empfohlen, solange sich die Datenbank im Zustand LOCKED oder MERGE befindet.

Beispiele zur Verwendung von ALTER DATABASE

  1. Hinzufügen einer sekundären Datei zur Datenbank. Sobald in der vorherigen primären oder sekundären Datei 30000 Seiten gefüllt sind, fügt die Firebird-Engine Daten zur sekundären Datei test4.fdb hinzu.
    ALTER DATABASE
    ADD FILE 'D:\test4.fdb'
    STARTING AT PAGE 30001;
              
  2. Pfad und Name der Delta-Datei angeben:
    ALTER DATABASE
    ADD DIFFERENCE FILE 'D:\test.diff';
              
  3. Beschreibung der Delta-Datei löschen:
    ALTER DATABASE
    DROP DIFFERENCE FILE;
              
  4. Wechseln der Datenbank in den „kopiersicheren“ Modus:
    ALTER DATABASE
    BEGIN BACKUP;
              
  5. Umschalten der Datenbank vom „kopiersicheren“ Modus in den normalen Betriebsmodus:
    ALTER DATABASE
    END BACKUP;
              

Siehe auch: CREATE DATABASE, DROP DATABASE

DROP DATABASE

Benutzt für: Löschen der Datenbank, mit der Sie gerade verbunden sind

Verfügbar in: DSQL, ESQL

Syntax: 

DROP DATABASE
        

Die Anweisung DROP DATABASE löscht die aktuelle Datenbank. Bevor Sie eine Datenbank löschen, müssen Sie eine Verbindung herstellen. Die Anweisung löscht die primäre Datei, alle sekundären Dateien und alle Schattendateien.

Nur Administratoren haben die notwendigen Rechte zum Ausführen der Anweisung DROP DATABASE.

Beispiel: Löschen der Datenbank, mit der der Client verbunden ist.

DROP DATABASE;
          

Siehe auch:  CREATE DATABASE, ALTER DATABASE

Zurück: Statements der Data Definition (DDL)Firebird Documentation IndexNach oben: Statements der Data Definition (DDL)Weiter: SHADOW
Firebird Documentation IndexFirebird 2.5 SprachreferenzStatements der Data Definition (DDL) → DATABASE