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
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
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.
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<s<?
Datenbank herunterfahren
Active users (Aktive Benutzer)
englischsprachig:
Firebird Database Housekeeping Utility
zurück zum Seitenanfang
<< Datenbanken | Firebird 2 Administrations-Handbuch | Datensicherung >>