RS DB-Analyzer

Hallo Raketenschnecke,

zum Daten löschen habe ich hier aus dem Forum auch schon ein Script.
Was mir noch nicht ganz klar ist, was dann?

  1. Datenbank komprimieren? Wenn ja, wie? (sqllite?)

  2. Reagregieren? (wie heißt es noch richtig?) Dafür gibt es ja ein Script in der Doku.

Wäre es so richtig?

GeTapatalk(t) mit meinem Galaxy Tab 10.1N

ok, dann muss ich meine ergüsse zum Thema ergänzen

Auf die Schnelle:

zu 1.: das bleibt dir überlassen, die Datenstruktur ändert sich dadurch nicht, nur die File-Größe auf der Platte, wie:

Zitat

Als Tool zum komprimieren/verdichten empfiehlt sich z.B. “sqlite shell” (Kommandozeilen-Tool) oder das Firefox-PlugIn “SQLite Manager“. Bei letzterem verbindet man sich mit der IPS-Logging-DB (IPS vorher runterfahren!) und führt den Menüpunkt “Database/Compact Database” aus, fertig!:wink:

zu 2.: ganz korrekt müsste man wohl nach jeder manuellen Datenmanipulation (Löschung) reaggregieren. Dann käme mein IPS aber nicht mehr zum luftholen. Daher reaggregiere ich nur dann, wenn mittendrin (also irgendwo zwischen erstem und letztem Datensatz) Datensätze gelöscht werden. Lösche ich hingegen den Anfangszeitraum (sagen wir z.B. die ersten 2 Wochen der Aufzeichnung), reaggregiere ich nicht. Sauber ist das wohl nicht. Ich hab ne Vermutung, was DB intern passiert, aber hier weiß ich zu wenig über die DB-Internas und will nicht wild spekulieren. Negative Auswirkungen durch nicht ausgeführte Reaggregation habe ich in diesem Kontext noch nicht erlebt.

Danke, damit kann ich schon mal was anfangen.

GeTapatalk(t) mit meinem Galaxy Tab 10.1N

Wenn ich dein Installationsscript starte, leg er was an und dann kommt:

Zugriffsverletzung bei Adresse blabla in Modul
‚ips_console.exe‘ Lesen von Adresse 000000E

sieht nach nem Problem mit deiner Konsole oder deinem IPS-Service aus. Ein Script-Problem dürfte es nicht sein. Starte mal die Konsole neu, wenn das nicht hilft: IPS neu.

Heute nimma… Mach ich morgen, gebe Rückmeldung.

+1 - Tolle Arbeit Raketenschnecke :slight_smile: :loveips:

prima, freut mich, wenns läuft :wink:

Beim manuellen starten des Skriptes wird mein gesamtes IPS blockiert, das Skript läuft länger als 60s, es passiert aber nichts. Meine DB ist 1,8GB gross. Alle PHP threads gehen auf rot.

Hi Wupperi,

die AC-Abfrage ist schon ein Ressourcen-Killer (deswegen läuft das Script auch nur einmal am Tag) - aber IPS wird nicht blockiert… Ist genau das Selbe wie beim Abruf der Daten im AH.

Setz mal die Script-Laufzeit (im Script oben) hoch. Wenn Du einen Wert gefunden hast, mit dem das Script durchläuft, würde ich die ermittelte Scriptlaufzeit nochmal verdoppeln.

Doch, wird blockiert. Wird kein thread mehr ausgeführt. Meine CPU dümpelt bei 5%…

hm…sowas ähnliches ist bei Werner neulich auch passiert. Nachdem er neugestartet hat, lief es dann. Ich vermute hier irgend ein Defekt in der DB.

Ich entwickle gerade (1,3GB Filegröße) und habe heute bestimmt schon 100mal die Abfragen gestartet. Laufzeit konstant bei 12 Sekunden, keine weiteren probleme.

Super Arbeit.:smiley:
Installiert und läuft direkt ohne Probleme.

Grüße, Jürgen

 pragma integrity_check; 

ergab ein fettes ok. Zumindest sqlite3 meint, die DB ist in Ordnung.
Neu gestartet hatte ich gestern auch 3x…

Sehr schoene Arbeit.
Habs jetzt auch in Betrieb. Installation ohne Probleme :slight_smile:

Nur ein kleiner Schoenheitsfehler , das mit 6 Uhr morgens stimmt nicht.
Es wird zwar alle 24 Stunden ausgefuehrt aber um 23:43 Uhr.
Ein Problem mit dem Project-Exporter?

hi 007,
na ja, ich hab die Zeiten zwischendurch hin- und her geändert und die Doku nicht nachgehalten. Ist eine simple Einstellung im Script selbst. Wichtig ist am Ende nur, dass alle 24h ein Run erfolgt :wink:

Nochmals ein paar nicht mehr vorhandene Instanzen aus dem Archive Handler entfernt. Aber gleicher Effekt. Skript bleibt einfach auf „Ausführung“ stehen und IPS blockiert. Dabei hat IPS.EXE eine Last von 3-4% auf der CPU.

Hi wupperi,

ich hab keine Idee, woran es liegt. Sicher bin ich nur, dass es nicht das Script ist.

Die gegenprobe kannst du machen, in dem Du die im Script verwendete DB-Abfrage only machst (Testscript). Ich wette, da passiert das Selbe.


<?
// Auslesen der DB-Records ein/ausschalten
$readRecords            = true; // default "false", "true" zeigt Anzahl Records, ersten und letzten Record in "Details" an, erzeugt aber hohe Systemlast

$ah_ID 						= IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}')[0]; // Archive Handler

// IPS-DB Daten einlesen
$AggeratedVars 			= AC_GetAggregationVariables($ah_ID, $readRecords);
print_r($AggeratedVars);
?> 

m.E. steckt das Problem irgendwo im IPS.

Leider bringt auch ein Neustart nix :frowning:

ABER es funktioniert :wink:

Mist.JPG

Hallo Andreas,

nach etlichen Anlaufschwierigkeiten habe ich dein Skript auch ans laufen gebracht.

Nachdem ich meine Datenbank erst einem Check unterzogen habe und glatt auch ein Fehler vorhanden war habe ich die Datenbank wiederhergestellt.

Anleitung wie hier beschrieben.

http://www.ip-symcon.de/service/dokumentation/modulreferenz/archive-control/datenbankwiederherstellung/

@wupperi: Vielleicht solltest Du einfach einmal den 2. Schritt „Datenbank-Wiederherstellung“ testen. Dauert zwar eine Weile, aber wenn es hilft.