Statusinformationen zum Zustand und den Aktionen eines DBS ermitteln.
yardstat { -s | -t [a] | -u [ s | c | a | p | l | w ] | -P | -b | -I | -f | -l | -L | -D | -S | -m | -d | -i | -r | -B | -A }
Das Programm yardstat zeigt Statusinformationen zu einem DBS an. Es kann nur im Maintenance und Online Mode verwendet werden.Über die einzelnen Optionen können die folgenden Informationen ermittelt werden:
- -s
- Die Konfiguration sowie die Werte interner Statusflags im Shared-Memory wird wie folgt ausgegeben:
- Total Size
- Gesamtgröße des Haupt Shared-Memory Segments in Byte
- Buffers
- Maximale Anzahl Buffer
- Maxuser
- Maximale Anzahl Benutzer
- Maxlocks
- Maximale Anzahl Sperren
- txabort
- Dieses Flag wird auf 1 gesetzt, wenn bei einem Benutzer eine long-transaction auftrat. Es bleibt solange auf 1, bis dieser Benutzer seine Transaktion beendet hat.
- Licence
- Maximale Anzahl Benutzer (lizenzmäßig)
- SHM-base
- Shared-Memory Base-Address
- cplock
- Dieses Flag steht auf 1, wenn gerade ein Checkpoint ausgeführt wird
- Backuplog
- Id des Logfiles, das bei der letzten Vollsicherung das aktuelle war
- Last CP
- Id des Logfiles, das beim letzten Checkpoint das aktuelle war
- cpforce
- Über dieses Flag wird der Dämon aufgefordert, einen Checkpoint auszuführen. Es wird von Serverprozessen gesetzt, die einen Checkpoint benötigen, um ihre Transaktion fortsetzen zu können.
- Buffered
- Dieses Flag gibt an, ob ein gepuffertes oder ungepuffertes Transaktionslogging verwendet wird.
- Magic
- Magic-Number des Shared-Memory Segments
- mode
- Aktueller Betriebsmodus des DBS
- Pagesize
- Pagegröße für dieses DBS (i.d.R. 2048 Bytes)
- time
- Die aktuelle vom DBS verwendete Uhrzeit
- Timeout
- Zeitintervall, nach dem inaktive Serverprozesse vom Dämonprozeß yardd das Signal SIGTERM erhalten.
- blobpart
- Anteil in Prozent der Shared-Memory Buffer, die für BLOB I/O verwendet werden.
Es folgt eine Aufstellung der internen Shared-Memory Strukturen mit ihrer Position und Größe sowie eine Aufstellung der dynamischen Shared-Memory Segmente. Zu jedem dieser Segmente wird die Größe und der gerade verwendete Bereich angegeben.
- -t[a]
- Zu den zur Zeit ins Shared-Memory geladenen Tabellen werden folgende Informationen angezeigt:
- Tabellenname
- Zähler, wie oft diese Tabelle von Serverprozessen geöffnet ist
- Rootpage (nur in Verbindung mit der Suboption a)
- Status
- Anzahl der Änderungen der Tabellenstruktur (kumuliert)
- S
- Tabelle ist im shared Zugriff
- X
- Tabelle ist im exklusivem Zugriff
- P
- Tabelle hat Pagelocking
- R
- Tabelle hat Rowlocking
- L
- Tabelle hat Logging
- N
- Tabelle hat kein Logging
In Verbindung mit der Suboption a werden zusätzlich die folgenden Informationen ausgegeben:
Bei Verwendung der Option -ta wird statt des Tabellennamens der Tabellenslot der Tabelle angegeben. (Spalte TABSLOT in SYSTABLES).
- Anzahl augenblicklicher Lese- und Schreibzugriffe
- Gesamtzahl Kollisionen auf dieser Tabelle. Kollisionen werden durch Prozesse ausgelöst, die gleichzeitig in eine Tabelle schreiben wollen.
- Version der Tabelle
- -u
- Alle zur Zeit aktiven Benutzer werden angezeigt. Zu jedem Benutzer wird sein Benutzername (vom CONNECT), der Zeitpunkt seines CONNECT, seine UNIX Prozeßnummer, die Id seiner aktuellen Transaktion und sein Status angezeigt.
Die Statusflags bedeuten: Position 1:
- A
- Benutzer ist zur Zeit schreibend aktiv
- a
- Benutzer ist zur Zeit lesend aktiv
Position 2:
- T
- Benutzer befindet sich in einer Transaktion
- R
- ROLLBACK wird ausgeführt
Position 3:
- W
- Prozeß wartet auf Ressourcen. In der rechten Spalte wird gleichzeitig angezeigt, auf welche Ressource der Prozeß wartet. Ein solcher Wartezustand kann beim Anwender zum Eindruck eines hängenden Prozesses führen. In diesem Fall muß untersucht werden, wodurch die angeforderte Ressource belegt ist, anstatt den Prozeß abzubrechen.
Position 4:
- U
- Der Benutzer hat keine ordnungsgemäße Abmeldung durchgeführt. Der Dämon setzt die letzte Transaktion zurück
Position 5:
- X
- Der Benutzer verursachte eine Lange Transaktion (Long Transaction). Er muß diese Transaktion über ROLLBACK oder COMMIT beenden. Während dieser Zeit sind alle anderen Benutzer blockiert.
- T
- Der Prozeß hat ein Timeout Signal erhalten
Wenn sich ein Prozeß im Wartezustand befindet, kann in der rechten Spalte erkannt werden, auf welche Ressource der Prozeß wartet. Es gibt die folgenden Möglichkeiten:
- C
- warten auf das Ende eines Checkpoints
- c
- warten auf den Beginn eines Checkpoints
- P
- warten auf freie Bufferpage
- F
- warten auf ein freies Logfile. In diesem Fall ist es erforderlich, über yardarch die Logfiles zu sichern.
- X
- warten auf das Ende einer langen Transaktion eines anderen Benutzers
- L
- warten auf einen Lock (zusätzlich wird die Adresse des Locks angegeben)
- S
- warten auf einen Semaphor
- T
- warten auf eine Tabelle
- B
- warten auf einen archive buffer
- f
- warten auf yardflush
- I
- warten auf ein Before Image
In der Spalte Act wird die Anzahl Aktivitäten des Benutzers innerhalb der aktuellen Transaktion angegeben.
- -us
- Zu den aktiven Benutzern wird die im Moment ausgeführte SQL-Anweisung sowie bei ESQLC-Programmen der aktuelle Modulname mit der Zeilennummer des Kommandos angegeben. Die Felder sind nur zu dem Zeitpunkt gefüllt, wenn eine SQL-Anweisung ausgeführt wird.
- -uc
- Zu den aktiven Benutzern wird der UNIX-Benutzername, das Loginterminal, der Hostname des Rechners, auf dem der Client läuft, sowie der Name des Clientprogrammes ausgegeben. Der Programmname muß hierzu in einem ESQLC-Programm in dem Element sqlclient der sqlca Struktur eingetragen werden.
- -ua
- Zu den aktiven Benutzern wird der Zeitpunkt ihrer Anmeldung an das DBS, die aktuelle Transaktionsnummer, der Startzeitpunkt der aktuellen Transaktion, der Zeitpunkt der letzten Datenbankaktivität sowie die Anzahl Aktivitäten innerhalb der aktuellen Transaktion angegeben. Die äußerste rechte Spalte enthält die Nummer des Logfiles, in dem die Transaktion begonnen wurde.
- -up
- Zu den aktiven Benutzern wird ein Profile ausgegeben, aus dem hervorgeht, wie oft ein Benutzer lesend bzw. schreibend auf Platte zugegriffen hat, und wieviele WRITE, REWRITE, DELETE und READ Operationen er auf einzelne Datensätze ausgeführt hat.
- -ul
- Zu den angemeldeten Benutzern werden Lizenzinformationen ausgegeben. Dies sind:
- Die IP-Adresse der Maschine, auf der der Client läuft bzw. "local" bei lokalen Prozessen
- Die Client Seriennummer
- -uw
- Die Waitlist der Benutzer wird ausgegeben. Sie enthält Informationen über auf Ressourcen wartende Prozesse und über Prozesse, die selber wiederum auf wartende Prozesse warten. Diese Liste enthält in der zweiten Spalte die Adresse der Userstruktur des wartenden Prozesses (bzw. eine 0 wenn keiner wartet), sowie in der dritten Spalte die Adresse der Userstruktur des darauf wartenden Prozesses.
- -P
- Das aktuelle Profile wird ausgegeben. Es enthält Statistiken über die Aktivitäten für das aktuelle DBS.
- -b
- Die Stati aller Buffer im Shared-Memory werden ausgegeben.
- Zähler für die augenblicklichen Zugriffe auf diese Page
- Pagenummer (-1 bei einem freien Bufferplatz)
- Status der Bufferpage:
- U
- Page wurde verändert
- R
- Page wird gerade von Platte gelesen
- I
- Das Before-Image der Page ist gesichert
- W
- Page wird gerade auf Platte geschrieben
- N
- Page ist eine neue Page
- L
- Es existiert eine lokale Sicherung der Page
- LRU-Position der Bufferpage
- Sortierung der Bufferpages
- -I pagenr
- Ein Pagedump der Indexpage pagenr wird ausgegeben. Diese Option kann nur für Indexpages verwendet werden.
- -f [ dbspace ]
- Die Größe aller Dbspaces, sowie die Anzahl benutzter und freier Pages wird angezeigt. Wird der Name eines Dbspace angegeben, wird die Freelist dieses Dbspace ausgegeben.
- -l
- Auslastung und Status aller Logfiles anzeigen. Die Statusflags bedeuten:
- R
- Logfile ist leer und kann verwendet werden
- C
- Logfile ist das aktuelle Logfile
- U
- Logfile ist voll und muß gesichert werden
- B
- Logfile wurde gesichert, ist aber noch nicht zur Wiederverwendung freigegeben.
- -L[a]
- Ausgabe aller zur Zeit gesperrten Datenelemente. Dies können Datenbanken, Tabellen, Pages und Rows sein. In der Spalte mode steht der Lockmodus des Elementes:
- S
- Shared Lock
- U
- Update Lock
- X
- Exclusive Lock
- C
- Constant Lock
Bei Tabellensperren ist die Angabe der Rowid immer -1, während sie bei Pagesperren der Pagenummer entspricht. In der Spalte lockid steht eine eindeutige ID des Locks, über die in Verbindung mit der Benutzerausgabe bei yardstat -u ermittelt werden kann, auf welche Sperre ein Benutzer gerade wartet.
Bei Verwendung der Option -La werden statt der Tabellen- bzw. Benutzernamen die entsprechenden Ids der Objekte ausgegeben. Datenbanksperren können an dem Wert 0x7F im linken Byte des Tabellenslots erkannt werden. Ohne Angabe der Suboption a, steht hier der Wert DB. Jeder Benutzer, der eine Datenbank geöffnet hat, hält eine Sperre auf dieser Datenbank, bis er die Datenbank schließt.- -D pagenr
- Ein Pagedump der Page pagenr wird ausgegeben. Diese Option versucht den Pagedump entsprechend dem Pagetyp aufzubereiten. Sie ist nicht für Pages des Physical oder Logical Logs geeignet.
- -S
- Alle gesetzten Semaphoren mit ihrem Eigentümer sowie die Anzahl wartender Prozesse werden angezeigt. In der Regel bleiben Semaphoren nur für einen kurzen Moment gesetzt. Die folgende Liste zeigt alle Semaphoren, ihre Nummer sowie ihren Verwendungszweck.
0 BCK Verwaltung der Onlinesicherung 1 IMG Sichern eines Before-Image 2 IMGD Löschen der Before-Images 3 USR An- und Abmeldung von Benutzern 4 LOG Schreiben von Logfileeinträgen 5 LOCK Setzen und Freigeben von Locks 6 CHECK Synchronisation von Checkpoints 7 FREE Anfordern einer freien Page 8 TABLE Einlesen einer Tabellenstruktur ins Shared-Memory 9 DB Anlegen und Löschen einer Datenbank 10 DYNMEM Dynamische Speicherverwaltung 11 BUILD Anlegen einer Tabelle 12 MAP Dbspace Mappingtabellen 13 HELP Diverses 14 TID Transaktionsidverwaltung 15 LOCIMG Verwaltung lokaler Images
- -m
- Der aktuelle Betriebsmodus des DBS wird über den folgenden Exitcode ausgegeben:
- 0
- Maintenance
- 1
- Online
- 20
- DBS existiert nicht
- 21
- Fehler
- 22
- Offline
- -d pagenr
- Ein Pagedump der Page pagenr wird ausgegeben. Mit dieser Option kann jede Page des DBS ausgegeben werden.
- -i
- Angabe der Größe und der aktuellen Auslastung des Physical Logs.
- -r
- Die Werte des Profiles werden auf 0 zurückgesetzt.
- -B
- Informationen zum Fortgang der Datensicherung werden angezeigt. Dies sind:
- Anzahl der zu sichernden Pages
- Anzahl der bereits gesicherten Pages
- Auslastung des Backup Buffers
- -A
- Die Option entspricht einem Aufruf von yardstat mit den Optionen -s -u -P -b -I -l -L und -t. Zusätzlich werden die letzten 100 Zeilen des ASCII-Logfiles des DBS in $YARDHOME/log ausgegeben.
Zur Verwendung von yardstat siehe auch Kapitel 3, YARD-SQL Datenbankserver.
Die Shellvariable YARDHOME muß gesetzt sein.Die Shellvariable YARDDBS muß gesetzt sein.
Das DBS muß im Maintenance oder Online Mode sein.