Befehlszeilenoptionen
gstat
sollte entweder als Root oder als Firebird-Benutzer ausgeführt werden.Dies liegt daran, dass die Standardberechtigungen des Betriebssystems beim Erstellen einer neuen Datenbank so sind, dass nur der Eigentümer — firebird — Zugriff auf die Datenbankdatei(en) hat.Selbst Mitglieder der Firebird-Gruppe haben standardmäßig keinen Lesezugriff.
gstat
wird normalerweise wie folgt aufgerufen:
gstat database_name [switches]
In einigen Dokumentationen wird empfohlen, gstat
wie folgt aufzurufen:
gstat [switches] database_name
Obwohl dies auf diese Weise funktioniert, treten Probleme auf, wenn der Schalter -t[able]
verwendet wird.
Der Datenbankname kann keine entfernte Datenbank sein, er muss lokal sein, er kann jedoch ein Alias für eine lokale Datenbank sein.Der Grund, warum es lokal sein muss, ist, dass gstat
auf der Ebene der physischen Datei funktioniert, anstatt eine Datenbankverbindung zum Server herzustellen — es liest die Datenbankdatei direkt.
Wenn gstat
mit einem ungültigen Schalter oder mit dem neuen Schalter -?
ab Firebird 2.5 aufgerufen wird, wird Folgendes angezeigt, um Sie an die gültigen zu erinnern.Leider wird nur die Kurzform der Schalter angezeigt.
./gstat -? usage: gstat [options] <database> or gstat <database> [options] Available switches: -a analyze data and index pages -d analyze data pages -h analyze header page ONLY -i analyze index leaf pages -s analyze system relations in addition to user tables -u username -p password -fetch fetch password from file -r analyze average record and version length -t tablename <tablename2...> (case sensitive) -z display version number option -t accepts several table names only if used after <database>
Note
|
In Firebird-Versionen vor 2.0 kann auch der Schalter |
Note
|
Der |
Diese Schalter werden unten beschrieben.
-a[ll]
-
Dies ist der Standardschalter und entspricht
-h[eader] -d[ata] -i[index]
.In Abwesenheit von-d[ata]
und-i[ndex]
wirdgstat
so ausgeführt, als ob beide neben-h[eader]
angegeben worden wären. -d[ata]
-
Wenn Sie diesen Schalter angeben, analysiert
gstat
jede Benutzertabelle in der angegebenen Datenbank.Benutzerindizes, Systemtabellen und Systemindizes werden nicht analysiert. -h[eader]
-
Dieser Schalter zeigt Statistiken über die Datenbank selbst an und wird dann beendet.Die Header-Informationen werden auch angezeigt, wenn ein anderer Schalter verwendet wird. So erhalten Sie in Ihrer Ausgabe immer Details zum Datenbank-Header.
-i[ndex]
-
Wenn Sie diesen Schalter angeben, analysiert
gstat
jeden Benutzerindex in der angegebenen Datenbank.Benutzertabellen, Systemindizes und Systemtabellen werden nicht analysiert. -s[ystem]
-
Dieser Schalter ist ein Modifikator und ändert die Ausgabe der Schalter
-d[ata]
oder-i[ndex]
, indem die Systemtabellen (oder Indizes) zusätzlich zu den benutzerdefinierten Tabellen (oder Indizes) eingeschlossen werden.Die alleinige Verwendung dieses Schalters entspricht dem Aufruf von gstat mit dem angegebenen-a[ll] -s[ystem]
.Bei der Ausführung listet dieser Schalter Statistiken für die verschiedenen RDB$-Tabellen und -Indizes auf, und wenn er gegen Firebird 2 ausgeführt wird, auch für die verschiedenen MON$-Tabellen und -indizes.
-r[ecord]
-
Der Schalter
-r[ecord]
ist ein Modifikator für die Schalter-d[ata]
und-s[ystem]
.Es werden Daten zu den durchschnittlichen Datensatz- und Versionslängen für alle analysierten Datentabellen (Benutzer und / oder System) hinzugefügt.Dieser Schalter hat keine Auswirkung auf den Schalter-i[ndex]
. -t[able]
-
Mit diesem Schalter können Sie eine Tabelle oder eine Liste von Tabellen sowie alle zu den angegebenen Tabellen gehörenden Indizes analysieren.Im Abschnitt << gstat-caveats,Fallstricke>> unten finden Sie einige mögliche Probleme mit diesem Schalter und ein Beispiel für dessen Verwendung.
Dem Schalter
-t[able]
sollte eine Liste der Tabellennamen folgen, die Sie analysieren möchten.Die Liste muss in Großbuchstaben geschrieben sein und jede Tabelle ist durch ein Leerzeichen getrennt.Es ist auch möglich, doppelte Anführungszeichen zu verwenden, umgstat
zu veranlassen, eine Tabelle zu analysieren, deren Name nicht in Großbuchstaben geschrieben ist.Es ist nicht erforderlich, den Schalter
-i[ndex]
anzugeben, da alle Indizes in den angegebenen Tabellen analysiert werden.Die Datenbankheaderinformationen werden ebenfalls angezeigt. -u[sername]
-
Ermöglicht die Angabe des Benutzernamens des SYSDBA- oder Datenbankeigentümers.Dies muss nicht angegeben werden, wenn die Umgebungsvariable
ISC_USER
vorhanden ist und einen korrekten Wert für den Benutzernamen hat oder wenn Sie als privilegiertes Konto am Server angemeldet sind.NoteEin privilegiertes Konto ist eines der folgenden:
-
Wurzel
-
Feuervogel
-
Interbase
-
interbas (ohne das letzte 'e')
Wenn Sie sich mit einem dieser Konten beim Server anmelden, erhalten Sie automatisch SYSDBA-Berechtigungen.Wenn Sie ein anderes Konto verwenden, müssen Sie möglicherweise einen Benutzernamen und ein Kennwort angeben, um
gstat
auszuführen. -
-p[assword] <password>
-
Liefert das Passwort für den oben angegebenen Benutzernamen.Dies muss nicht angegeben werden, wenn die Umgebungsvariable
ISC_PASSWORD
vorhanden ist und den richtigen Wert hat oder wenn Sie mit einem privilegierten Konto am Server angemeldet sind. -fetch <password file name> | stdin | /dev/tty
-
Dieser Schalter bewirkt, dass das Kennwort für den entsprechenden Benutzer aus einer Datei gelesen wird und nicht in der Befehlszeile angegeben wird.Der angegebene Dateiname ist not in Anführungszeichen und muss für den Benutzer lesbar sein, der
gstat
ausführt.Wenn der Dateiname alsstdin
angegeben ist, wird der Benutzer zur Eingabe eines Kennworts aufgefordert.Auf POSIX-Systemen führt der Dateiname/dev/tty
auch zu einer Aufforderung zur Eingabe des Kennworts.HINWEIS: Ab Firebird 2.5.
-z
-
Dies ist ein Modifikatorschalter.Mit
-z
wird die Versionsnummer des Dienstprogrammsgstat
und der Firebird-Installation angezeigt.Sie müssen einen gültigen Datenbanknamen und möglicherweise einen weiteren Schalter angeben.Dieser Schalter fügt die Details der Versiongstat
undFirebird
zum Ausgang des anderen von Ihnen bereitgestellten Schalters hinzu — oder die Standardeinstellung, wenn Sie keinen angegeben haben.Die kürzeste Ausgabe würde von einem-t non_existent_tablename
stammen, wenn Sie nur die Versionsdetails wie folgt benötigen:tux> gstat -t non_existing_tablename -z employee gstat version LI-V2.1.3.18185 Firebird 2.1 Database "/opt/firebird/examples/empbuild/employee.fdb" Database header page information: ... Database file sequence: File /opt/firebird/examples/empbuild/employee.fdb is the only file Firebird/linux Intel (access method), version "LI-V2.1.3.18185 Firebird 2.1" Firebird/linux Intel (remote server), version "LI-V2.1.3.18185 Firebird 2.1/tcp (greenbird)/P11" Firebird/linux Intel (remote interface), version "LI-V2.1.3.18185 Firebird 2.1/tcp (greenbird)/P11" on disk structure version 11.1 Analyzing database pages ...
HINWEIS: Die obige Ausgabe wurde geringfügig geändert, damit sie der Seitenbreite eines PDF-Dokuments entspricht.
Die Ausgabe beginnt mit der Anzeige der gstat
-Version, gefolgt von den Details des Datenbank-Headers.Als nächstes werden die Datenbankdatei und die Firebird-Details angezeigt und schließlich die Details für den angegebenen Tabellennamen, die natürlich nicht gefunden werden.