06.01.2013 Aufrufe

Migration - Smarthome-Components

Migration - Smarthome-Components

Migration - Smarthome-Components

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Datenbankwiederherstellung<br />

Unter gewissen Umständen, wie z.B. einem Stromausfall, kann die IP-Symcon-Logging-Datenbank aufgrund nicht<br />

abgeschlossener Schreibvorgänge beschädigt werden.<br />

Die folgende Anleitung beschreibt, wie die Datenbank auf Fehler überprüft und eine saubere Datenbankdatei erzeugt<br />

werden kann.<br />

Fehlerüberprüfung<br />

1. IP-Symcon-Dienst beenden: Rechtsklick auf das IPS-Tray-Icon -> Dienst beenden<br />

2. Vorkompilierte Binärversion von SQLite 3 herunterladen: www.sqlite.org/download.html (aktuell:<br />

www.sqlite.org/sqlite-3_6_23_1.zip)<br />

3. sqlite3.exe in C:\IP-Symcon\db entpacken<br />

4. Kommandozeile starten: Start -> Ausführen -> “cmd” -> OK<br />

5. In das IP-Symcon-Datenbankverzeichnis wechseln: cd C:\IP-Symcon\db<br />

6. Datenbank überprüfen: sqlite3.exe logging.db “pragma integrity_check”<br />

7. Ist die Befehlsrückgabe “ok”, ist die Datenbank in Ordnung und es braucht Nichts weiter unternommen zu werden.<br />

Andernfalls ist mit dem nächsten Schritt fortzufahren.<br />

Datenbank-Wiederherstellung<br />

1. Datenbankdatei umbenennen: mv logging.db logging.db.backup<br />

2. Datenbank wiederherstellen: sqlite3.exe logging.db.backup .dump | sqlite3.exe logging.db<br />

3. IP-Symcon-Dienst wieder starten<br />

4. Beschädigte Werte reaggregieren, hierzu kann das folgende Skript benutzt werden<br />

Automatische Reaggregation aller geloggten Variablen<br />

/*****<br />

*<br />

* Automatische Reaggregation aller geloggten Variablen<br />

*<br />

* Dieses Skript reaggregiert automatisch alle geloggten Variablen nacheinander<br />

* automatishert bei Ausführung. Nach Abschluss des Vorgangs wird der Skript-Timer<br />

* gestoppt. Zur erneuten kompletten Reaggregation ist der Inhalt der automatisch<br />

* unterhalb des Skripts angelegten Variable 'History' zu löschen.<br />

*<br />

*****/<br />

$archiveHandlerID = IPS_GetInstanceIDByName("Archive Handler", 0);<br />

$historyID = CreateVariableByName($_IPS['SELF'], "History", 3, "");<br />

$finished = true;<br />

$history = explode(',', GetValue($historyID));<br />

$variableIDs = IPS_GetVariableList();<br />

foreach ($variableIDs as $variableID)<br />

{<br />

}<br />

if (AC_GetLoggingStatus($archiveHandlerID, $variableID) && !in_array($variableID,$history))<br />

{<br />

}<br />

$finished = false;<br />

if (@AC_ReAggregateVariable($archiveHandlerID, $variableID))<br />

{<br />

}<br />

break;<br />

$history[] = $variableID;<br />

SetValue($historyID, implode(',', $history));

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!