Aufgeblähte Datenbank durch "wcf1_package_update_"

  • Affected Version
    WoltLab Suite 3.1

    Hallo!


    Wollte von 3.1 auf 5.2 updaten und vorher etwas aufräumen. Dabei ist mir aufgefallen, dass die Datenbank ziemlich aufgebläht ist.

    Insbesondere mit "wcf1_pckage_update_xxxx":



    Das führt unter anderem auch dazu, dass bei dem Pluin "Fremdschlüssel-Überprüfung" beim Klick auf "wcf1_package_update_version" eine leere Seite kommt (vermutlich weil zu viele Daten drin sind):



    Frage: Ist das normal, das diese Tabellen so voll sind? Was kann man dagegen tun?


    Gruß,

    Udo

  • Finger weg von der Datenbank!


    Am besten stellst du das Backup von vor deinen manuellen Änderungen wieder her.

    Da gibt es nichts wiederherzustellen, weil ich nichts manuell verändert habe.

    Bin nur drauf aufmerksam geworden, weil Strato eine Wanung gibt, dass die Datenbank über 1GB groß ist, dann hab ich mir die anzeigen lassen und nach Größe sortiert.


    Verwunderlich ist ja, dass diese "update" Tabellen zusammen größer sind, als das Forum selbst.


    Gruß

  • Bin nur drauf aufmerksam geworden, weil Strato eine Wanung gibt, dass die Datenbank über 1GB groß ist,

    Und dies ist dir bei den regelmäßigen Backups der Datenbank zuvor nicht aufgefallen?

    Gruß Markus


    WoltLab Suite 5.3.14

  • Und dies ist dir bei den regelmäßigen Backups der Datenbank zuvor nicht aufgefallen?

    Habe mich da schon länger nicht mehr drum gekümmert, weil ja alles prima lief und für Notfälle Strato ja Backups anlegt (nur die letzten Tage). :rolleyes:

  • Hast du mal ein Backup (unvollständig) wiederhergestellt und dabei Fremdschlüssel nicht angelegt?

    Ich gehe davon aus, dass durch die fehlenden Fremdschlüssel die Einträge nicht mit-gelöscht werden.

    Sind die beiden oben angeführten Schlüssel die einzigen fehlenden Schlüssel?

    Es gab' vor ein paar Jahren mal Probleme, weil ich ein, durch ein ehemaliges Mitglied vermurkstes, WBB 3.x Forum umziehen musste. Danach wurde aber noch ein Update auf WBB4.x und zuletzt Woltlab Suite 3.1 erfolgreich durchgeführt. Wahrscheinlich sind die Probleme Altlasten, die immer mitgenommen wurden und erst jetzt auffallen. Frage ist, was ich da am besten mache.

  • Wahrscheinlich sind die Probleme Altlasten, die immer mitgenommen wurden und erst jetzt auffallen. Frage ist, was ich da am besten mache.

    Ich denke es ist am sinnvollsten du haust jemanden an, der sich gut auskennt und weiß, was er/sie oder du erstellst ein Ticket direkt bei WoltLab.


    Falls du es selbst versuchen willst:

    Vorher aber unbedingt ein vollständiges Backup von Datenbank und Dateisystem anlegen. Die Abfragen sind einfach mal ein wild guess, was bei dir vermutlich an Schlüsseln fehlt. Die letzten vier Befehle sind absolut geraten, da die Tabellen bei dir nicht im Screenshot zu sehen sind und entsprechend nicht ersichtlich ist, ob die Datensätze plausibel sind.

  • Die letzten vier Befehle sind absolut geraten, da die Tabellen bei dir nicht im Screenshot zu sehen sind und entsprechend nicht ersichtlich ist, ob die Datensätze plausibel sind.

    Danke, werde ich mich wohl morgen mal mit beschäftigen müssen...


    Hier sind alle Tabellen mit "update" sind die "geratenen" dabei? :) :


    Gruß,

    Udo

  • Hier sind alle Tabellen mit "update" sind die "geratenen" dabei? :) :

    Wenn das so ist, vergiss die Zeilen 10 bis 13. ;)

    Ich persönlich würde einfach mal (nach einem Backup natürlich) Zeilen 7 & 8 ausführen und dann nach Updates suchen lassen und schauen, was passiert. Wenn du Glück hast, war es nur der eine Schlüssel, der den Rest mit sich zieht. :)

  • Stellt man nicht meist nur einzelne Dinge wieder her

    Kann man schon machen, ist aber deutlich mehr Aufwand. Wenn ein Datensatz in wcf1_user verloren geht, weiß ich ehrlich nicht, was sich dabei alles noch geändert hat. Es ist ja nicht so, dass es nur direkt verknüpfte Datensätze betrifft; die Verknüpfungen können sich über diverse Tabellen weiter ziehen.


    Wie erkennt man, dass man Fremdschlüssel anlegen müsste, und wie macht man das?

    Wenn sie fehlen; sieht man z.B. oben im Screenshot.

    Am besten stellt man ein korrektes Backup vollständig in eine leere Datenbank wieder her. Und vor allem mit sicheren Werkzeugen; bei PHP-Skripten kann hier oder da mal ein Timeout oder Verbindungsabbruch dazwischen kommen und schon hast du evtl. nur unvollständige Daten importiert.

  • Und vor allem mit sicheren Werkzeugen; bei PHP-Skripten kann hier oder da mal ein Timeout oder Verbindungsabbruch dazwischen kommen und schon hast du evtl. nur unvollständige Daten importiert.

    Hi!


    Hast du vielleicht einen Tipp für "sichere Werkzeuge"?


    Gruß,

    Udo

  • Ich persönlich würde einfach mal (nach einem Backup natürlich) Zeilen 7 & 8 ausführen und dann nach Updates suchen lassen und schauen, was passiert. Wenn du Glück hast, war es nur der eine Schlüssel, der den Rest mit sich zieht.

    Habe eine Datenbank-Kopie angelegt und die Zeilen 7+8 ausgeführt, mit folgendem Ergebnis:



    Gruß,

    Udo

  • So...

    Habe jetzt in der Datenbankkopie, aus Tabelle "wcf1_package_update_version", alle Datensätze mit (alten) packageUpdateID, die nicht (mehr) in der Tabelle "wcf1_package_update" enthalten sind, gelöscht.

    Danach noch die Fremdschlüsselüberprüfung den Rest machen lassen und es funktioniert einwandfrei. Datenbank ist auch wieder "schön". ;)



    Nebeneffekt: Die originale Datenbank war noch MySQL 5.6, die bereinigte Kopie ist MySQL 5.7.


    Gruß,

    Udo