Datenbankbereinigung: Einrichtung und Hilfe
Schnellstart
- Laden Sie die ZIP-Datei von mprdatabasecleanup über "Module Manager" hoch, installieren Sie sie und klicken Sie auf "Configure".
- Wählen Sie den gewünschten Shopkontext und prüfen Sie die unten beschriebenen Mitarbeiterrechte und den privaten Sicherungsspeicher.
- Prüfen Sie unter Konfiguration die Optionen Aktiviert und Archivaufbewahrung in Stunden und öffnen Sie dann die Richtlinie Ihrer ersten Bereinigungsaufgabe.
- Öffnen Sie Bereinigungsbereich, wählen Sie unter Aufgaben eine Aufgabe und klicken Sie auf Bereinigung vorschauen.
- Prüfen Sie die gespeicherten Werte Lauf-ID und Plan-Prüfsumme, betroffene Shops, Kandidatenzahlen, Schutzmaßnahmen, Schätzungen und Konflikte.
- Führen Sie bei Aufgaben mit erhöhtem oder hohem Risiko Sicherung prüfen und Diesen Plan genehmigen vor Genehmigten Plan ausführen aus. Prüfen und bestätigen Sie bei einer Aufgabe mit geringem Risiko die Ausführung.
- Prüfen Sie Verlauf und den Abschlussbericht. Bestätigen Sie Abgeschlossen und prüfen Sie übersprungene oder fehlgeschlagene Zeilen, bevor Sie einen weiteren Lauf planen.
Erfordert PrestaShop 1.6 oder neuer und PHP 7.1 oder neuer.
Einrichtungsanleitung
Installation und erste Konfiguration
Folgen Sie den Schritten im Schnellstart.
Zugriff und Speicher vorbereiten
Das Modul ergänzt "Configure" > Database Cleanup mit Bereinigungsbereich, Verlauf, Sicherungen und Wiederherstellung und Einstellungen. Einstellungen > Konfiguration öffnet das Konfigurationsformular. Integrität, Lizenz, Support und Aktualisieren sind Wartungsseiten.
Wählen Sie den gewünschten Shopkontext. Das Modul prüft die nativen Mitarbeiterprofilrechte und zugelassenen Shops. Es hat separate Berechtigungseinträge für Bereinigung vorschauen, Statistikbereinigung, Bereinigung personenbezogener Daten, Katalogbereinigung, Destruktive Läufe genehmigen, Sofortausführung und Planung, Verschlüsselte Sicherungen exportieren, Sicherungen wiederherstellen und Tabellen optimieren. Geben Sie Mitarbeitern nur die benötigten Aufgaben- und Operationsrechte. Fehlende Rechte deaktivieren oder verweigern die entsprechende Aktion.
Die Aufgabenprüfung verwendet Leserechte; die Datenlöschung im Rahmen einer Aufgabe erfordert Löschrechte für deren Aufgabenkategorie. Genehmigung, Sicherungsprüfung, Planung, Wiederherstellung, Sicherungsexport und Optimierung erfordern die jeweils passende Bearbeitungsberechtigung. Auch CLI-Ausführung prüft einen tatsächlichen Mitarbeiter und dessen Shopzugriff.
Verschlüsselte Zeilenarchive benötigen OpenSSL mit AES-256-GCM und privaten beschreibbaren Speicher. Standardmäßig verwendet das Modul ein verborgenes Verzeichnis .mprdatabasecleanup-... neben dem Shop-Stammverzeichnis. Die Serverkonfigurationskonstante MPRDBCLEAN_STORAGE_ROOT kann ein anderes privates Stammverzeichnis wählen. Das Stammverzeichnis und archives müssen private Rechte 0700 haben; die erzeugte Datei archive.key muss 0600 haben. Das Modul lehnt Symlink-Verzeichnisse oder unsichere Rechte ab. Schützen Sie den Schlüssel und bewahren Sie ihn mit Ihren Wiederherstellungsunterlagen auf. Exportierte verschlüsselte Archive enthalten ihn nicht.
Bewahren Sie vor dem ersten destruktiven Lauf eine separate vollständige Datenbanksicherung auf. Die Zeilenarchive des Moduls decken den Bereinigungsablauf ab und sind keine vollständige Shopsicherung.
Ausführung und Aufgabenrichtlinien konfigurieren
Öffnen Sie Konfiguration. Das erste Formular enthält:
| Einstellung | Standard | Wirkung |
|---|---|---|
| Aktiviert | Erben; effektiv Ja, wenn kein Wert existiert | Wählen Sie Ja oder Nein für den gewählten Geltungsbereich oder Erben, um den übergeordneten Wert zu verwenden. Der wirksame Wert wird vor destruktiven Stapeln einschließlich Wiederherstellung und Optimierung geprüft. |
| Archivaufbewahrung in Stunden | 720 | Lebensdauer der Archive, entsprechend 30 Tagen. Geben Sie einen positiven Wert bis 87600 ein. Bei einem Mehrshoplauf gilt die längste wirksame Aufbewahrung. |
Wählen Sie eine Aufgabe aus der Richtlinienliste. Ihr Formular bietet:
| Einstellung | Standard | Wann ändern |
|---|---|---|
| Aktiviert | Ja außer bei den unten genannten optionalen Aufgaben | Aktivieren Sie eine standardmäßig deaktivierte Aufgabe nur, wenn Sie sie einbeziehen möchten. Dies ist vom allgemeinen Ausführungsschalter getrennt. |
| Aufbewahrungstage | Aufgabenspezifisch, siehe unten | Ändert die Altersgrenze. Geben Sie eine positive ganze Zahl ein; 0 bedeutet hier nicht unbegrenzte Aufbewahrung. |
| Stapelgröße | 1000 | Verringern Sie die Stapelgröße, wenn einzelne Operationen den Server zu stark belasten. Höchstens 10000. |
| Zeilenlimit pro Lauf | 50000 | Begrenzen Sie die Anzahl verarbeiteter Zeilen mit dem gespeicherten Richtlinienbudget. |
| Zeitlimit pro Lauf in Millisekunden | 1000 | Begrenzt die Arbeitsdauer. Geben Sie einen positiven Wert bis 3600000 ein. |
| Maximales Sicherungsalter in Stunden | 24 | Höchstzulässiges Alter der erforderlichen Sicherungsprüfung. Erneuern Sie die Prüfung, wenn sie veraltet ist. Höchstens 87600. |
| Aufgabenzeitplan | Leer | Cron-Ausdruck mit fünf Feldern für die Aufgabe, zum Beispiel 0 3 * * *. Lassen Sie das Feld leer, um die Planung zu deaktivieren. Erfordert den unten beschriebenen Server-Cron-Worker. |
| Zeitzone | UTC | Zeitzone zur Auswertung des Aufgabenzeitplans. Verwenden Sie eine anerkannte Zeitzonenkennung. |
Jeder Verarbeitungsschritt verwendet die kleinsten geltenden Zeilen- und Zeitlimits. Ein gespeicherter Lauf kann mehrere Schritte bis zum Abschluss benötigen.
Speichern Sie die bearbeitete Richtlinie. Einstellungen sind bereichsbezogen und werden vererbt; die Tabelle der wirksamen Richtlinien zeigt Quelle und aufgelöste Werte für jede Aufgabe und jeden Shop. Eine gespeicherte Vorschau enthält ihren Richtlinienschnappschuss. Erstellen Sie nach einer Änderung an Richtlinie oder Geltungsbereich eine neue Vorschau, statt die Genehmigung eines alten Plans wiederzuverwenden.
Verfügbare Aufgaben
Die Tabelle zeigt mitgelieferte Aufbewahrungswerte und anfangs deaktivierte Aufgaben. Die Aufbewahrungsfrist ist eine Auswahlbedingung; Verweise, Zugehörigkeit und Shoprichtlinien können weitere Zeilen schützen.
| Aufgabe | Schlüssel | Tage | Anfangs aktiviert |
|---|---|---|---|
| Abgebrochene Warenkörbe | old_carts |
30 | Ja |
| Verwaiste Warenkorbverknüpfungen | orphan_cart_children |
30 | Ja |
| Suchstatistiken | search_stats |
90 | Ja |
| Abgelaufene Sonderpreise | expired_specific_prices |
30 | Ja |
| Alte Protokolle | old_logs |
90 | Ja |
| Alte Besuche | old_connections |
90 | Ja |
| Abgelaufene Gastbeobachtungen | old_guests |
90 | Ja |
| E-Mail-Protokolle | mail_logs |
30 | Ja |
| Verwaiste Besuchsseiten | orphan_connection_pages |
90 | Ja |
| Verwaiste Besuchsquellen | orphan_connection_sources |
90 | Ja |
| Statistiken fehlender Seiten | missing_pages |
90 | Ja |
| Abgelaufene Warenkorbregeln | expired_cart_rules |
30 | Nein |
| Verwaiste Varianten | orphan_combinations |
90 | Ja |
| Verwaiste Variantenverknüpfungen | orphan_combination_relations |
90 | Ja |
| Ausgewählte Händlervarianten | selected_combinations |
90 | Nein |
| Verwaister Suchindex | orphan_search_index |
90 | Nein |
| Unbenutzte Suchwörter | unused_search_words |
90 | Nein |
| Verwaiste Adressen | orphan_addresses |
90 | Nein |
| Verwaiste Katalogverknüpfungen | orphan_catalogue |
90 | Nein |
Mit Bestellungen verknüpfte verlassene Warenkörbe sind geschützt. Die Gästebereinigung schützt Kunden-, Warenkorb- und Verbindungsverweise. Ist das Alter eines Gastes unbekannt, beginnt die Aufbewahrung mit der Beobachtung durch das Modul, statt einen alten Gast als sicher entfernbar anzusehen. Das Modul beobachtet Hinzufüge-/Aktualisierungsereignisse für Gäste, Warenkörbe und Verbindungen.
Abgelaufene spezifische Preise berücksichtigen Enddatum und Aufbewahrung, nicht einfach jeden gerade abgelaufenen Preis. Tatsächliche Händlervarianten verwenden Ausgewählte Händlervarianten mit expliziten IDs, Vorschau und Genehmigung. Sie sind von Aufgaben für verwaiste Kombinationen getrennt. Verweisprüfungen können Zeilen ausschließen, die von Bestellungen, Warenkörben, Bestand, Lieferanten, Paketen, Lagern, Aktionen oder Modulen verwendet werden.
Bereinigung in der Vorschau prüfen und ausführen
Öffnen Sie Bereinigungsbereich. Wählen Sie unter Aufgaben einen oder mehrere Einträge. Einmalige Aufbewahrungstage überschreibt optional die Aufbewahrung für diese Vorschau. Ausgewählte Varianten-IDs, durch Kommas getrennt liefert explizite IDs für die Bereinigung von Händlervarianten. Bestätigte Modulnamen, durch Kommas getrennt erfasst Bestätigungen von Abhängigkeiten. Lassen Sie diese optionalen Felder leer, sofern Ihre Aufgabe sie nicht benötigt.
Klicken Sie auf Bereinigung vorschauen. Warten Sie, bis die Planung abgeschlossen ist. Prüfen Sie Lauf-ID, Plan-Prüfsumme, Shopumfang, Kandidatenzahlen, geschützte/übersprungene Zeilen, Abhängigkeiten, Risiko und Schätzungen. Schätzungen sind logische Bytes. Engine-Zuweisung und wiederverwendbarer Platz sind separate Speichermaße; gelöschte Zeilen bedeuten keine gleich große Verringerung der Datenbankdatei.
Klicken Sie für Aufgaben mit erhöhtem und hohem Risiko auf Sicherung prüfen, warten Sie auf den Abschluss und dann auf Diesen Plan genehmigen. Die Genehmigung ist an den genauen Plan-Hash und den authentifizierten Mitarbeiter gebunden. Sie genehmigt keinen geänderten Plan. Verwenden Sie Genehmigten Plan ausführen und prüfen Sie die Bestätigung.
Verwenden Sie bei einer Aufgabe mit geringem Risiko nach der Vorschauprüfung die Ausführungsbestätigung. Jetzt ausführen beginnt mit den gewählten Aufgaben und verwendet dieselben Planungs- und Berechtigungsprüfungen. Die Sicherungs- und Genehmigungspflichten für riskantere Aufgaben werden nicht umgangen.
Der Browser führt die Arbeit in begrenzten Anfragen weiter. Prüfen Sie einen gespeicherten Lauf mit Status aktualisieren, beantragen Sie mit Lauf abbrechen einen Abbruch und verwenden Sie Lauf fortsetzen, wenn der Bericht die Fortsetzung erlaubt. Beim Ergebnis Teilweise oder "Failed" prüfen Sie zuerst die Gründe. Das blinde Wiederholen der ursprünglichen Aufgabe ersetzt nicht die Prüfung eines gespeicherten Laufs.
Die Reparaturen veralteter Daten auf Integrität erstellen Bereinigungsvorschauen über diesen Arbeitsbereich. Sie verwenden nicht die alten direkten Löschabfragen.
Verlauf prüfen und wiederherstellen
Öffnen Sie Verlauf und filtern Sie nach Shop, Datumsbereich, Aufgabe, Auslöser, Mitarbeiter-ID oder Ergebnis. Öffnen Sie einen gespeicherten Lauf und prüfen Sie seine Zahlen und Ergebnisse. "Export report JSON" und "Export report CSV" exportieren Berichte.
Öffnen Sie Sicherungen und Wiederherstellung, laden Sie die Lauf-ID und prüfen Sie archivierte Elemente. Verwenden Sie Sicherungselement-ID mit Verschlüsselte Sicherung exportieren, um ein Element bei entsprechender Berechtigung zu exportieren. Bewahren Sie den privaten Verschlüsselungsschlüssel separat auf; der Export enthält ihn nicht.
Verwenden Sie Wiederherstellung vorschauen und prüfen Sie Konflikte. Geprüfte Sicherung wiederherstellen verwendet den Hash der Wiederherstellungsvorschau und lehnt konfliktierende Live-Zeilen ab. Neue Wiederherstellungsvorschau erstellen erstellt die Vorschau bei Bedarf neu. Die Wiederherstellung hängt von Archivverfügbarkeit, Integrität, Ablauf, passendem Geltungsbereich und Berechtigungen ab. Sie ist keine bedingungslose Rückgängig-Schaltfläche.
Für die Tabellenwartung geben Sie Zu optimierende Tabellen, durch Kommas getrennt ein und verwenden dann Tabellenoptimierung vorschauen, Optimierungssicherung prüfen, Tabellenoptimierung genehmigen und Tabellen optimieren. Prüfen Sie diese separate Vorschau vor der Ausführung. Nicht jede Bereinigung optimiert automatisch Tabellen.
Abgelaufene Archive löschen bereinigt Archive und benötigt den passenden globalen Geltungsbereich und Ausführungsstatus. Prüfen Sie die Aufbewahrung vor dem Löschen. Ein abgelaufenes Archiv oder ein Archiv mit verlorenem Verschlüsselungsschlüssel kann vom Modul nicht wiederhergestellt werden.
Die Befehlszeile verwenden
Der CLI-Einstiegspunkt ist modules/mprdatabasecleanup/bin/cleanup.php. Er verweigert HTTP-Ausführung. Verwenden Sie die PHP-Binärdatei des Shops und ersetzen Sie Mitarbeiter-/Shop-IDs in diesen Beispielen durch berechtigte IDs.
Vorschau einer Aufgabe:
php modules/mprdatabasecleanup/bin/cleanup.php --employee=1 --shops=1 --task=search_stats --preview
Die Ausgabe ist ein JSON-Bericht. Speichern Sie seine tatsächliche Lauf-ID und seine Plan-Prüfsumme. Für einen Lauf, der Sicherung und Genehmigung benötigt, führen Sie separate Befehle aus:
php modules/mprdatabasecleanup/bin/cleanup.php --employee=1 --shops=1 --run-id=RUN_UUID --verify-backup
php modules/mprdatabasecleanup/bin/cleanup.php --employee=1 --shops=1 --run-id=RUN_UUID --approve --plan-hash=PLAN_HASH
php modules/mprdatabasecleanup/bin/cleanup.php --employee=1 --shops=1 --run-id=RUN_UUID --execute
Verwenden Sie --restore-preview und danach --restore --plan-hash=RESTORE_PREVIEW_HASH für den Wiederherstellungsablauf. --verify-backup --renew-backup erneuert die Prüfung und macht gegebenenfalls vorherige Genehmigungen ungültig. --batches=N speichert einen Zwischenstand und beendet nach einer begrenzten Anzahl von Fortschrittsschritten.
Für eine neue Vorschau werden unter anderem --retention-days=N, --batch-size=N, --row-budget=N, --time-budget-ms=N, --combination-ids=ID[,ID] und --acknowledged-modules=NAME[,NAME] als Überschreibungen unterstützt. Mit einer gespeicherten --run-id werden Richtlinien-/Aufgabenüberschreibungen abgelehnt. --global fordert den globalen Geltungsbereich an und benötigt weiterhin berechtigten Shopzugriff. Lesen Sie mit --help die aktuelle Verwendung.
Exit 0 bedeutet, dass die angeforderte Phase ein akzeptiertes Ergebnis erreicht hat, einschließlich einer erfolgreichen Vorschau. Exit 2 bedeutet eine unvollständige Operation; prüfen Sie den Bericht. Exit 1 bedeutet einen verweigerten Befehl oder Fehler. Betrachten Sie einen erfolgreichen Vorschau-Exit nicht als Nachweis einer ausgeführten Löschung.
Speichern Sie für die geplante Bereinigung den Aufgabenzeitplan und die Zeitzone. Richten Sie anschließend auf dem Server einen Cronjob ein, der php modules/mprdatabasecleanup/bin/cleanup.php --employee=1 --shops=1 --scheduled jede Minute aufruft. Ersetzen Sie die IDs durch berechtigte Mitarbeiter- und Shop-IDs. Verwenden Sie einen Shop pro Worker oder ergänzen Sie für gemeinsame Datensätze --global und alle Shop-IDs in --shops. Das Speichern eines Aufgabenzeitplans richtet keinen Server-Cronjob ein.
Der Worker startet fällige, aktivierte Aufgaben und setzt ihre gespeicherten Läufe in begrenzten Schritten fort. --batches=N legt für jede geplante Aufgabe die maximale Anzahl der Fortschrittsschritte ihres Laufs pro Worker-Aufruf fest; der Standard ist eins. Bei einem globalen Lauf müssen alle wirksamen Shoprichtlinien und die globale Richtlinie aktiviert und in ihrer gespeicherten Zeitzone fällig sein. Mitarbeiterrechte, Shopzugriff und der allgemeine Ausführungsschalter gelten weiterhin. Läufe mit erhöhtem oder hohem Risiko warten auf eine geprüfte Sicherung und die ausdrückliche Genehmigung des genauen gespeicherten Plans. Öffnen Sie den Lauf über Verlauf, prüfen Sie seine Sicherung und genehmigen Sie ihn; spätere Worker-Aufrufe können ihn fortsetzen.
Prüfen und Fehler beheben
Bestätigen Sie nach einem kleinen Testlauf Abgeschlossen, lesen Sie die Gründe für übersprungene/fehlgeschlagene Zeilen und vergleichen Sie betroffene Daten mit der Vorschau. Prüfen Sie Verlauf und bei Bedarf den verifizierten Sicherungsstatus. Der Shop hat kein Bereinigungswidget; der sichtbare Arbeitsbereich des Moduls befindet sich im Backoffice.
Ist eine Aktion nicht verfügbar, prüfen Sie den allgemeinen Wert Aktiviert, Aktiviert der Aufgabe, Mitarbeiterrechte für die Aufgabe, Operationsberechtigung und gewählten Shopkontext. Schlägt die Sicherungsprüfung fehl, prüfen Sie OpenSSL, Eigentümer des privaten Speichers, Verzeichnisrechte und Schlüsseldatei. Erstellen Sie nach Einstellungsänderungen eine neue Vorschau. Ist ein anderer Worker beschäftigt, verwenden Sie den Wiederholungs-/Statusablauf des gespeicherten Laufs, statt konkurrierende Läufe zu starten.
Die Bereinigung arbeitet mit Datenbankdaten. Dateiinventar und Messungen berechtigen nicht zum Löschen von Bild- oder Anpassungsdateien. Ersetzen Sie den Ablauf nicht durch die veralteten direkten Beispiele DELETE ... LIMIT.
Deaktivieren oder deinstallieren
Setzen Sie das allgemeine Aktiviert im wirksamen Geltungsbereich auf Nein, um destruktive Stapel zu stoppen. Brechen Sie ausstehende Läufe ab oder prüfen Sie sie. Deaktivieren Sie das Modul im "Module Manager", wenn alle Hooks inaktiv sein sollen.
Die Deinstallation entfernt Konfiguration und Verwaltungsmenü dieses Moduls. Ihre Methode löscht weder Bereinigungsverlauf/Schema noch das externe private Archivverzeichnis samt Schlüssel. Bewahren Sie diese Wiederherstellungsmaterialien auf, bis alle erforderlichen Wiederherstellungen abgeschlossen sind. Eine Deinstallation stellt bereits gelöschte Daten nicht wieder her.
Fragen
Noch keine Fragen zu diesem Modul
Fragen Sie alles zu Installation, Kompatibilität oder Einrichtung. Die Antworten erscheinen hier.
Bekannte Probleme
14
Wartungsrückstand als unvollständige Einrichtung gemeldet
Bestätigung benannte Aufgabe nicht klar
Aufgabenbeschriftungen zeigten maskierte Zeichen
Bedienfeld für Bereinigungsaufgaben fehlte
Einrichtungsstatus blieb veraltet
Übersetzte Beschriftungen blieben auf Englisch
Bereinigung entfernt Gastkonten mit aktiven Warenkörben
Die Gastkonten-Bereinigung löscht Gasteinträge, die älter als der konfigurierte Schwellenwert sind, prüft aber nicht, ob diese Gäste noch nicht abgelaufene Warenkorbinhalte haben. Dadurch gehen potenzielle Daten zur Rückgewinnung abgebrochener Warenkörbe verloren.
Hinweis zur Lösung
Eine Warenkorbaktivitätsprüfung hinzugefügt, die Gastkonten mit weniger als 30 Tage alten Warenkorbinhalten von der Bereinigung ausschließt.
Bereinigung betraf Shops außerhalb der Auswahl
Aktive Gastdaten konnten entfernt werden
Deaktivierte Bereinigung lief weiterhin
Warenkorb- und Gastbereinigung nicht abgeschlossen
Modul ließ sich unter PHP 7.1 nicht laden
Verwaltung ließ sich nicht immer öffnen
Bereinigungseinstellungen nicht verfügbar
Funktionsanfragen
8
Implementiert
Bereinigungsübersicht mit Zeilenanzahl und Aufgabensteuerung
Datenbank-Bereinigungsaufgaben
Updates mit einem Klick
Mehrsprachige Verwaltung
Geprüfte Bereinigungspläne
Verschlüsselte Sicherungen und Wiederherstellung
Bereinigungsverlauf und Berichte
Shop-Richtlinien und Befehlszeilenausführung
Änderungsprotokoll
v1.1.162026-08-14
- AddedRestore database cleanup config page
- Addedcomplete FR/DE/ES/IT/PL translations
Ältere Versionen
v1.3.02026-04-20
- Addedadmin menu management via MenuInstaller for streamlined module setup
v1.2.02026-01-15
- AddedPrestaShop 9 and Hummingbird theme compatibility
- Addedcleanup for PS 9 Symfony message queue stale records and failed dispatch logs
- Improveddry-run mode to display exact SQL row counts per cleanup category before execution
- Fixedcleanup of expired cart rules incorrectly skipping valid multi-currency rules
- Addedscheduled auto-cleanup mode with configurable frequency and post-run email summary
v1.1.02025-08-04
- Addedcleanup for stale page-not-found log entries older than configurable number of days
- Addedcleanup for connection log entries exceeding a configurable maximum row count
- Improvedcleanup UI with progress indicator for large table operations
- Fixedorphaned search stat entries not detected when an Elasticsearch module is installed
v1.0.02025-05-10
- Initialrelease of Database Cleanup
- InitialRemoves abandoned carts older than a configurable number of days
- InitialRemoves expired cart rules that have passed their validity end date
- InitialClears accumulated search query statistics from ps_search_word and related tables
- InitialClears connection log and page-not-found log tables
- InitialDry-run mode previews exactly what will be removed before any changes are committed
Demo
Testen Sie das vollständige Modul
- Fertiger Demo-Shop Entdecken Sie einen fertigen Demo-Shop im Browser.
- Ohne Registrierung Kein Konto, keine E-Mail-Adresse und keine Shop-Domain nötig.
Mit dem Öffnen dieser Demo akzeptieren Sie die Demo-Nutzungsbedingungen und die Datenschutzerklärung.