Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Interbase Statistiken abfragen? (https://www.delphipraxis.net/112242-interbase-statistiken-abfragen.html)

Sascha-L 17. Apr 2008 12:35

Datenbank: Interbase • Version: 5.X • Zugriff über: ? gstat.exe ?

Interbase Statistiken abfragen?
 
Guten Tag Delphi-Praxis Team

Ich habe eine Problem bezüglich der Abfrage von Statistiken alter Interbase 5.X Datenbanken.
Ich schreibe gerade ein Tool, mit dem ich verschiedene Interbase und Firebird Datenbanken überwachen kann.
Bei den Firebird Datenbanken benutze ich den Servicemanager zum abfragen der Datenbankstatistiken, jedoch gibt es da ein kleines Problem mit den alten Interbase Datenbanken, die diesen manager noch nicht haben.
Lokal kann ich diesem Problem mit aufruf der gstat.exe entgegenkommen, diese ignoriert jedoch (anders als die gfix.exe z.B) jegliche Art von Remotebefehlen, gebe ich also den Befehl:

gstat -u sysdba -p masterkey "[IP vom Remote PC]:[Datenbankpfad]" -h

so sucht gstat einfach nach dem Pfad auf dem lokalen PC und ignoriert die vorher angegebene IP.

Jetzt wollte ich fragen ob es eine Möglichkeit gibt die Headerstatistiken auch bei Interbasedatenbanken von einem RemotePC auslesen zu lassen und mir die Ergebnisse irgendwie auf meinem Rechner anzeigen zu lassen.

Ich hoffe auf schnelle Antwort

MfG

Sascha Lütkemeier

PS: Es ist keine hilfe mir zu sagen wie alt diese Datenbanken doch sind oder so. Die Datenbanken können aus Wirtschaftlichen Gründen leider nicht Portiert werden. Danke!

hoika 17. Apr 2008 13:05

Re: Interbase Statistiken abfragen?
 
Hallo,

gstat geht leider nur lokal.
Eine Möglichkeit wäre, auf dem betreffenden Server
ein Programm laufen zu lassen, was das gstat ausführt
und mit dem duper tcp-ip kommunizierst.
Bsp zu tcp-ip gibt es bei Indy.

Zum Umstellen ... ;)
Hast du mal probiert, einfach ein transportables Backup->Restore zur FB1.5 zu machen ?
Solange du bei Dialect 1 bleibst, sollte es doch keine Probleme geben.

Ich hatte mal eine IB4 (die freie unter Linux) gehabt,
die habe ich so nach IB6 und jetzt FB1.5 "portiert".


Heiko

Sascha-L 17. Apr 2008 13:53

Re: Interbase Statistiken abfragen?
 
Hmhm...

Vorab nochmal zum portieren...
Eine Datenbank mal eben so zu portieren ist ja kein Thema, gebe ich dir recht, jedoch alle Clients neu zu schrieben udn alle Rechner umzukonfigurieren wäre ein Betriebswirtschaftlicher Selbstmord...

Ich habe jetzt ein Tool names PsExec gefunden, was "fast" meine erwartungen erfüllt.
Problem bei diesem Tool ist:

Es meldet sich an dem RemotePC an -> gut
Es kopiert die gds32.dll (falls nicht vorhanden) -> gut
Es kopiert die gstat.exe -> gut
Es führt die gstat.exe aus -> schlecht
Es löscht die gstat.exe -> gaaaanz schlecht
Es kopiert meine Bat Datei -> gut
Es führt meine Bat Datei aus -> Wäre gut, wenn vorher nicht die gstat.exe geköscht worden wäre...
Es löscht meine Bat Datei-> egal...

Das blöde ist, dass alles macht dass Tool mit folgenden 2 Zeilen...

-> psexec \\10.1.22.24 -u administrator -p XXXXXX -c -f gstat.exe
-> psexec \\10.1.22.24 -u administrator -p XXXXXX -c -f meine.bat

Ich brächte ein Tool, dass mir die Dateien (GDS32.dll,gstat.exe,eigene.bat) in ein Verzeichniss auf dem Remoterechner verschiebt und sie dann von dort aus ausführt, allerdings nur wenn ich dass auch sage ^^

Vlt kennt ihr ja so ein Tool oder euch fällt noch eine andere Lösung ein.



MfG Sascha

hoika 17. Apr 2008 15:26

Re: Interbase Statistiken abfragen?
 
Hallo,


< alle Clients neu zu schrieben >
hm, wieso, der Client merkt doch nichts davon.
gds32.dll würde ich aber auf jeden Fall ersetzen.


< und alle Rechner umzukonfigurieren wäre ein Betriebswirtschaftlicher Selbstmord... >
hm ?
Ausser der gds32.dll ändert sich nichts.


Heiko

Sascha-L 17. Apr 2008 15:34

Re: Interbase Statistiken abfragen?
 
Wie gesagt, solche Diskussionen wollte ich eigentlich vermeiden.

Fällt dir sonst wirklich nichts mehr ein, oder gibt es sonst keinen der etwas dazu zu sagen hat ?

hmhm... naja

Hatte mir mehr Hilfe erhofft :-/

Sascha-L 21. Mai 2008 14:38

Re: Interbase Statistiken abfragen?
 
Guten Tag erstmal,

Habe das oben genannte problem soweit im Griff, mit PS-exec funktioniert soweit alles wunderbar auch den Servicemanager für die Firebirddatenbanken habe ich im Griff, allerdings habe ich nun noch ein paar Fragen zu den Statistiken, wie kann es sein, dass egal ob bei Interbase oder Firebirddatenbanken es vorkommt, dass manche Werte in der Statistik einfach nicht auftauchen oder den Wert 0 haben??

z.B. Steht bei den Meisten unserer Datenbanken am Ende der Statistik der Sweepintervall, wiederum bei manchen Datenbanken nicht.
Bei manchen ist es so, dass einfach eine 0 als Sweepintervall angegeben ist, und manchmal kommt es vor, dass wenn ich den Sweepintervall setze dieser Wert auch in der Statistik auftaucht, bei anderen Datenbanken ändert sich wiederum nichts?

Wie kann dass sein, mein Programm geht immer gleich vor, die Datenbanken funktionieren alle und im IB-Expert habe ich die selben ergebnisse bei der Statistikabfrage ?!?!

Es wäre super, wenn Ihr mir weiterhelfen könntet, vlt müssen wir bei der Erstellungen der Datenbank auf irgendwas achten oder so, also ich schwirre komplett im dunkeln was das Thema betrifft.

Nachtrag: Es handelt sich hierbei um *.gdb Dateien.


MfG Sascha

hoika 21. Mai 2008 17:58

Re: Interbase Statistiken abfragen?
 
Hallo,

ich glaube,
der sweep-Intervall wird nur dann "wirklich" geändert,
wenn alle Connections zu der DB gelöst werden.


Heiko

Sascha-L 23. Mai 2008 07:10

Re: Interbase Statistiken abfragen?
 
Hm, ich teste mein Programm meist mit Datenbanken, die gerade nicht in Benutzung sind, also auf denen keine Verbindungen zur Zeit sind. Jedoch ist die Richtigkeit und die Ausführlichkeit von Datenbank zu Datenbank unterschiedlich. Ebenso wie die Reaktion der Datenbank auf meine Befehle was das ändern der Einstellung angeht. (Forcewrites, Sweepintervall, etc.)

Ich kann mir dieses Verhalten auch in keinster Weise erklären.
Vlt fällt euch noch etwas ein.

Nachtrag:
Ich habe hier mal Beispiele der Statistiken:

Database header page information:
Flags 0
Checksum 12345
Generation 76561
Page size 4096
ODS version 10.1
Oldest transaction 76549
Oldest active 76541
Oldest snapshot 76541
Next transaction 76555
Bumped transaction 1
Sequence number 0
Next attachment ID 0
Implementation ID 16
Shadow count 0
Page buffers 4096
Next header page 0
Database dialect 1
Creation date Feb 9, 2006 12:01:21
Attributes force write

Variable header data:
*END* <--- Sehr informativ ???

Database header page information:
Flags 0
Checksum 12345
Generation 195037
Page size 4096
ODS version 10.1
Oldest transaction 195023
Oldest active 182563
Oldest snapshot 182563
Next transaction 195029
Bumped transaction 1
Sequence number 0
Next attachment ID 0
Implementation ID 16
Shadow count 0
Page buffers 4096 <--- Solche Werte kann ich auswerten!
Next header page 0
Database dialect 1
Creation date Jan 20, 2006 17:06:41

Variable header data:
Sweep interval: 10000 <--- Warum nicht immer so ?
*END*

Database header page information:
Flags 0
Checksum 12345
Generation 3355
Page size 4096
ODS version 10.1
Oldest transaction 3306
Oldest active 3265
Oldest snapshot 3265
Next transaction 3312
Bumped transaction 1
Sequence number 0
Next attachment ID 0
Implementation ID 16
Shadow count 0
Page buffers 0 <----- ???
Next header page 0
Database dialect 1
Creation date Jan 11, 2008 10:27:52
Attributes force write

Variable header data:
Sweep interval: 20000
*END*

MfG Sascha


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz