Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Benutzeravatar
shadowcat
Administrator
Beiträge: 5283
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Beitrag von shadowcat »

SyncData hat eine lange Historie, auch wenn es im BC-Umfeld vermutlich kaum einer kennt. Der leider verstorbene Ralf Hertsch hatte zunächst ein Modul für WB geschrieben (SyncData1), dieses dann später aber aus dem CMS komplett ausgelagert, um unter anderem Probleme mit in Benutzung befindlichen Dateien zu umgehen. Das war bzw. ist SyncData2, zu dem es in unserem Wiki auch eine Anleitung gibt, wie man es für "Staging" verwenden kann.

Schon lange wollte ich auf Basis meiner Erkenntnisse mit den beiden Versionen - ich habe SyncData2 sozusagen von Ralf geerbt - ein neues Modul bauen. Zum einen sind die Komponenten in SyncData2 mittlerweile veraltet - da werden unter anderem Teile des Symfony bzw. Silex Frameworks verwendet, da Ralf ganz bewußt NICHT auf CMS-Komponenten aufsetzen wollte. Zum anderen gibt es keine Admin-GUI, man muß alles von Hand in diversen Konfigurationsdateien einstellen und auch das Log ist zwar extrem umfangreich und aussagekräftig, man muss es aber lesen können. Kurz: Es ist ein Tool für Profis.

Da auch bei unserem "Nachbar-CMS" WBCE Bedarf an einem neuen Backup-Tool besteht, habe ich mal angefangen, ein Hybrid-Modul zu bauen, also ein Modul, das sowohl mit BC1/BC2, als auch mit WBCE funktioniert. Ich als Programmierer muss da zwar einige Abstriche machen, da ich die Luxus-Funktionen von BC nicht nutzen kann - bzw. für WBCE nachbauen muss. Das hat aber für den Anwender keine sichtbaren Auswirkungen.

Und so sieht es (derzeit) aus:
2020-01-03 16_40_57-BlackCat CMS Backend _ Admin Werkzeuge.png
2020-01-03 16_40_57-BlackCat CMS Backend _ Admin Werkzeuge.png (31.8 KiB) 4885 mal betrachtet

Das (geplante) Verfahren:

Man hakt einfach an, was man sichern möchte. Dazu klappt man über den Link "Create new backup job" (an einigen Stellen fehlen noch die Übersetzungen) ein kleines Formular auf.

2020-01-03 16_54_01-BlackCat CMS Backend _ Admin Werkzeuge.png
2020-01-03 16_54_01-BlackCat CMS Backend _ Admin Werkzeuge.png (9.87 KiB) 4884 mal betrachtet

Mit Klick auf [Sicherung starten] (der muss noch umbenannt werden, seht Ihr gleich) erstellt man dann zunächst mal einen Job in der Datenbank. Dieser wird (zumindest derzeit) nicht automatisch gestartet. Grundproblem: Server Timeout. Gerade die Sicherung des media-Verzeichnisses kann ja sehr lange dauern, da reichen die standardmäßigen 30 Sekunden für Scripten nicht aus. Es gibt da diverse Tricks, die Details lassen wir mal beiseite.

Die so erstellten Jobs sieht man dann in der Liste. Man sieht auch, ob ein Job schon gestartet wurde, ob er noch läuft, bzw. wenn er fertig ist, ob das erfolgreich war. Das sind alles Funktionen, die es noch nicht gibt, aber so soll es dann werden. ;)

Einen Job im Status "neu" kann man dann über das Icon rechts daneben starten. Läuft bereits ein anderer Job, muss dieser erst beendet sein bzw. beendet werden. Ob es überhaupt Sinn macht, dass man dann einen neuen Job erzeugen kann, ist eine Frage, die ich später mal beantworte, das hängt auch davon ab, was ich bei der Entwicklung noch so an Ideen habe. Momentan gibt es z.B. auch noch keinen Ansatz dafür, einen Sicherungsjob z.B. per Cronjob regelmäßig zu wiederholen. Erst mal muss das Sichern grundsätzlich funktionieren, dann kann man sich mit solchen Details befassen.

"Endziel" ist, dass man neben der manuellen Sicherung und Wiederherstellung Daten an eine andere Installation (Instanz) schicken kann, damit beide gleich aussehen. Somit kann ich dann in einer lokalen Installation - z.B. in einer Portable - meine Änderungen machen und nach Fertigstellung an meine Live-Instanz senden. Das ist die eigentliche Kernfunktion von SyncData2. Logisch, dass das die Sache extrem komplex macht - angefangen bei einem unterschiedlichen Tabellen-Präfix über den Erhalt von Änderungen, die auf dem Ziel möglicherweise stattgefunden haben, bis hin zu eventuell unterschiedlichen Datenbank- und PHP-Versionen. Das wird insbesondere bei BC2 eine echte Herausforderung, da wir dort ja mit einer Engine-Installation diverse Sites betreiben können und aufpassen müssen, dass wir mit dem Sync einer Site nicht die komplette Installation plätten. Da krieg ich, gelinde gesagt, Kopfschmerzen bei dem Gedanken. :-?
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
Morpheus
Beiträge: 1050
Registriert: Do 8. Aug 2013, 10:49
Kontaktdaten:

Re: Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Beitrag von Morpheus »

Das klingt echt super. Ich bin sehr gespannt. :daumen:
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen!
Benutzeravatar
shadowcat
Administrator
Beiträge: 5283
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Beitrag von shadowcat »

Tabellensicherung klappt schon mal, ob da beim Wiederherstellen später was Sinnvolles rauskommt, steht auf einem anderen Blatt. :D Dank der umfangreichen Vorarbeit von Ralf kann ich mir zum Glück viel abschauen. (Und bin mal wieder traurig, weil er nicht mehr da ist.)
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
shadowcat
Administrator
Beiträge: 5283
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Beitrag von shadowcat »

Hier mal ein Screenshot aus WBCE. Jobdetails ansehen klappt auch schon.
Dateianhänge
2020-01-06 15_58_50-WBCE»Verwaltung-Admin-Tools.png
2020-01-06 15_58_50-WBCE»Verwaltung-Admin-Tools.png (31.62 KiB) 4869 mal betrachtet
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
shadowcat
Administrator
Beiträge: 5283
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Beitrag von shadowcat »

Access files (nur WBCE bzw. BC1) und Medien können auch schon gesichert werden. Die Zahlen sind echt. ;)
Dateianhänge
2020-01-06 17_55_04-WBCE»Verwaltung-Admin-Tools.png
2020-01-06 17_55_04-WBCE»Verwaltung-Admin-Tools.png (33.21 KiB) 4866 mal betrachtet
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
shadowcat
Administrator
Beiträge: 5283
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Beitrag von shadowcat »

Funzt natürlich dann auch in BC1.x, ich hab nur grad ein Problem mit dem Font für die Icons, das mir noch etwas Rätsel aufgibt. :mrgreen:
Dateianhänge
2020-01-09 12_35_24-BlackCat CMS » Administration - ADMINTOOLS.png
2020-01-09 12_35_24-BlackCat CMS » Administration - ADMINTOOLS.png (29.13 KiB) 4854 mal betrachtet
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
shadowcat
Administrator
Beiträge: 5283
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Beitrag von shadowcat »

Hier gibt's auch schon ein wenig zum Nachlesen...
https://bc2.blackcat-cms.org/page/modul ... ncdata.php
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
shadowcat
Administrator
Beiträge: 5283
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Beitrag von shadowcat »

Es geht voran... :mrgreen:

1. Bei Erstellen eines Backup-Jobs kann man die Voreinstellungen (die unter [Einstellungen] gemacht wurden) anpassen. Das sind z.B. die Namen von Tabellen, die nicht mit gesichert werden sollen, oder die Namen von Verzeichnissen, die nicht mit ins ZIP sollen.
Das Formular sieht in BC 1.3 noch etwas optimierungsbedürftig aus...
Das Formular sieht in BC 1.3 noch etwas optimierungsbedürftig aus...
2020-01-21 10_22_10-BlackCat CMS » Administration - ADMINTOOLS.png (43.24 KiB) 4831 mal betrachtet

2. Während der Sicherung wird von der Seite alle 15 Sekunden nachgeschaut, wie weit der Job gekommen ist. Man muß aber nicht warten, die Sicherung läuft im Hintergrund weiter.

Screenshot aus WBCE 1.4.x
Screenshot aus WBCE 1.4.x
2020-01-21 10_04_16-WBCE»Verwaltung-Admin-Tools.png (39.11 KiB) 4833 mal betrachtet
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
Morpheus
Beiträge: 1050
Registriert: Do 8. Aug 2013, 10:49
Kontaktdaten:

Re: Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Beitrag von Morpheus »

:daumen:
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen!
Benutzeravatar
shadowcat
Administrator
Beiträge: 5283
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Modul: syncData - Daten sichern, wiederherstellen, synchronisieren

Beitrag von shadowcat »

Hier mal ein aktueller Screenshot von den "Job Details" eines Sicherungsjobs. Man kann jetzt auch den "Core" sichern ("Power"- oder "Blitz"-Symbol).

Ein Recover - Datenbank und "pages"-Verzeichnis - habe ich mal mit einer WBCE-Portable getestet, das hat schon ganz gut geklappt. Allerdings muss man sich da einiger Dinge bewußt sein, etwa der Tatsache, dass man wirklich den vollständigen Stand der Sicherung wiederherstellt - also mit allen Benutzern, deren Kennworten, den Seiteninhalten zum Zeitpunkt der Sicherung, usw. Wenn man dann z.B. Seiten mit Modulen dabei hat, die auf der wiederhergestellten Instanz fehlen, wird das natürlich zu Problemen führen.

Insofern macht eine Sicherung am meisten Sinn, wenn man alles sichert.
Dateianhänge
2020-02-04 12_00_27-BlackCat CMS Backend _ Admin Werkzeuge.png
2020-02-04 12_00_27-BlackCat CMS Backend _ Admin Werkzeuge.png (28.57 KiB) 4561 mal betrachtet
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Gesperrt