Datenbank-Konfiguration

<< Datenbanken | Firebird 2 Administrations-Handbuch | Datensicherung >>

Datenbank-Konfiguration

Schreibmodus

Schreiboperationen auf der Datenbank-Datei können zwischengepuffert werden. Die Pufferung ist schneller, aber im Fall eines Absturzes auch unzuverlässiger. Daher sollte bei Produktivsystemen die Pufferung ausgeschaltet werden.

Das Setzen der Pufferung geschieht über das GFIX-Tool oder über ein Administrations-Tool wie IBExpert. Als Benutzername muss SYSDBA oder der Eigner angegeben werden.

GFIX: Allgemeine Syntax

 gfix <datenbank> -user <benutzername> -password <passwort>
    -write {sync|async}

Forced Writes einschalten (keine Pufferung)

 gfix c:\mydb.fdb -user SYSDBA -password masterkey -write sync

Forced Writes ausschalten (Pufferung)

 gfix c:\mydb.fdb -user SYSDBA -password masterkey -write async

zurück zum Seitenanfang

Datenbank-Sweeps

Firebird führt in unregelmäßigen Abständen eine Garbage Collection ("Sweep") durch, bei der nicht abgeschlossene Transaktionen aufgeräumt werden. Dies ist erforderlich aufgrund der Multi-Generations-Architektur. Hierbei werden für jeden Datensatz ggf. mehrere Generationen gehandhabt, damit alle offenen Transaktionen eine konsistente Datensicht bekommen.

Der automatische Sweep wird nach einer bestimmten Anzahl nicht vollständig abgeschlossener Transaktionen ausgeführt. Diese Anzahl ist das „Sweep-Intervall“. Das Sweep-Intervall kann auf einen beliebigen Wert eingestellt werden.

Bei einem Sweep-Intervall von 0 (null) werden keine automatischen Sweeps durchgeführt.

Ein Sweep kann auch zu einem gewünschten Zeitpunkt erzwungen werden (z. B. nachts).

Als Benutzername muss SYSDBA oder der Eigner angegeben werden.

Einstellen des Sweep-Intervalls

Beispiel für das Einstellen des Sweep-Intervalls auf 20.000 Transaktionen:

 gfix c:\test.fdb -user SYSDBA -password masterkey -housekeeping 20000

Abschalten des automatischen Sweep

 gfix c:\test.fdb -user SYSDBA -password masterkey -housekeeping 0

Erzwingen eines Sweep

 gfix c:\test.fdb -user SYSDBA -password masterkey -sweep

zurück zum Seitenanfang

SQL-Dialekt

Firebird ist aus der Datenbank Borland InterBase® hervorgegangen. Aus historischen Gründen werden zwei SQL-"Dialekte" gepflegt, die sich geringfügig unterscheiden (Dialect 1, Dialect 3).

Zu bevorzugen ist dabei für neue Datenbanken der Dialect 3. Hierbei gibt es getrennte Datentypen für DATE, TIME und TIMESTAMP (nur TIMESTAMP ist eine Kombination aus Datum und Uhrzeit).

Datenbanken werden durch einen CREATE DATABASE allerdings standardmäßig als Dialect-1-Datenbanken angelegt. Sie müssen nachträglich auf Dialect 3 umgestellt werden:

 gfix c:\test.fdb -user SYSDBA -password masterkey -sql_dialect 3

Zum Feststellen des aktuell eingestellten SQL Dialect kann ISQL verwendet werden:

 isql
 SQL> connect mydb.fdb user SYSDBA password masterkey;
 SQL> show sql dialect;
         Client SQL dialect is set to: 3 and database SQL dialect is: 3

Multi-Datei Datenbanken

Eine Datenbank kann über mehrere Dateien verteilt werden. Hierbei kann allerdings nicht gesteuert werden, welche Teile der Datenbank in welche Datei kommen. Da außerdem die alte 4 GB-Grenze von InterBase® 6.0 und früher aufgehoben ist, halten wir ein Verteilen auf mehrere Dateien nicht mehr für sinnvoll. Eine weiter gehende Dokumentation dieses Features erfolgt daher hier nicht.

Siehe InterBase® 6.0 Operations Guide oder die entsprechende Firebird-Dokumentation.

zurück zum Seitenanfang

Datenbank-Shutdown

Eine Datenbank kann sich auf verschiedenen Stufen befinden:

  • NORMAL: Die Datenbank ist aktiv und online: der Normalzustand, um mit der Datenbank zu arbeiten.
  • MULTI: Nur Verbindungen vom SYSDBA und dem Eigner werden zugelassen.
  • SINGLE: Es wird nur eine einzige Verbindung durch den SYSDBA zugelassen.
  • FULL: Exklusiver Shutdown: Die Datenbank ist komplett offline, es werden keine Verbindungen zugelassen. In diesem Zustand kann die Datenbank-Datei (.fdb-Datei) auf Datei-Ebene angefasst (z. B. kopiert) werden.

Über das GFIX-Tool kann eine Datenbank auf diese Stufen hoch- bzw. heruntergefahren werden. Damit angemeldete Benutzer beim Herunterfahren nicht einfach "hinausgeworfen" werden, gibt es verschiedene Optionen, über die eine gewisse Herunterfahr-Zeit definiert werden kann.

Herunterfahren

Zum Herunterfahren auf eine tiefere Stufe geben Sie die GFIX-Option –shut, gefolgt vom Namen der Stufe an.

Beim Herunterfahren wird über die Option –force angegeben, wieviele Sekunden der Dienst warten soll, bis sich alle anderen Benutzer getrennt haben. Sollte nach dieser Zeit noch Verbindungen bestehen, werden diese getrennt. Ihre Transaktionen erfahren einen Rollback.

Alternativ kann über die Option –attach eine bestimmte Anzahl Sekunden gewartet werden, bis alle Benutzer sich getrennt haben. Sollten nach dieser Zeit immer noch nicht alle Benutzer getrennt sein, wird der Shutdown mit einer Fehlermeldung abgebrochen.

Herunterfahren von NORMAL auf SINGLE

 gfix-user sysdba -password masterkey localhost:mydb -shut single -force 0

Die Option –force 0 sorgt hier dafür, dass sofort (0 Sekunden Wartezeit) alle Benutzer bis auf SYSDBA getrennt werden.

Hochfahren

Zum Hochfahren verwenden Sie statt –shut die Option –online. Auch hier wird der Name der Stufe angegeben. Die Optionen –force oder –attach können hier nicht verwendet werden, das Hochfahren geschieht unmittelbar.

 gfix -user sysdba -password masterkey localhost:mydb -online normal

Siehe auch:
deutschsprachig:
Forced Writes
Datenbank herunterfahren
Active users (Aktive Benutzer)
englischsprachig:
Firebird Database Housekeeping Utility

zurück zum Seitenanfang
<< Datenbanken | Firebird 2 Administrations-Handbuch | Datensicherung >>