misterunknown: MySQL-Datenbanken aus Ordner wiederherstellen

Moin,

kann man aus den Dateien unter /var/lib/mysql alle Datenbanken, auch InnoDB-Daten wiederherstellen? Ich habe ein Backup von dem Ordner und musste MySQL komplett neu installieren. Nachdem ich den Ordner wieder nach /var/lib/mysql kopiert habe sind manche Datenbanken leider leer. Gibts da eine Möglichkeit?

Grüße Marco

--
Ich spreche Spaghetticode - fließend.
  1. Nachdem ich den Ordner wieder nach /var/lib/mysql kopiert habe sind manche Datenbanken leider leer. Gibts da eine Möglichkeit?

    Genau das sollte eigentlich problemlos funktionieren.

    In welchem Zustand war denn die Datenbank beim Backup? readonly? angehalten?
    Du hast auch nicht vergessen, den Server neu zu starten (service mysql restart ... oder so)?

    http://www.thegeekstuff.com/2011/12/mysqlcheck/

    Jörg Reinholz

    1. Moin,

      Genau das sollte eigentlich problemlos funktionieren.

      Stimmt. Es hat jetzt funktioniert. Vorher hatte ich allerdings allerlei Anleitungen im Internet probiert, die plausibel klangen, beispielsweise nur die Ordner von bestimmten Datenbanken zu kopieren. Bei MyISAM-Datenbanken ging das auch problemlos. InnoDB brauchte aber noch mehr Dateien, die direkt unter /var/lib/mysql liegen. Das erste mal nachdem ich den Ordner komplett kopiert hatte, ging es nämlich trotzdem nicht, weil die Dateisystem-Berechtigungen nicht gestimmt haben. Das heißt, die Datenbanken waren sichtbar, aber leer (für MySQL).

      In welchem Zustand war denn die Datenbank beim Backup? readonly? angehalten?

      Keine Ahnung, das war ein krudes Wochenende. Anfangs waren einige Seite nicht durchgehend erreichbar, danach streikte der MySQL-Server komplett. Nach einigem Suchen nach der Ursache fiel mir auf, dass die Festplatte voll war. Und zwar 100%. Ursache: Das Apache-Error-Log hatte >60GB. Nun geht aber alles wieder (ich dachte schon die Daten wären weg; der Adrenalin-Spiegel lag durchweg im kritischen Bereich^^). Jetzt geht die Ursachenforschung im Log weiter... Mal sehn was da verrückt gespielt hat, oder ob es ein Angriff/Hackversuch war.

      Grüße Marco

      --
      Ich spreche Spaghetticode - fließend.
      1. Keine Ahnung, das war ein krudes Wochenende. Anfangs waren einige Seite nicht durchgehend erreichbar, danach streikte der MySQL-Server komplett. Nach einigem Suchen nach der Ursache fiel mir auf, dass die Festplatte voll war. Und zwar 100%. Ursache: Das Apache-Error-Log hatte >60GB. Nun geht aber alles wieder (ich dachte schon die Daten wären weg; der Adrenalin-Spiegel lag durchweg im kritischen Bereich^^). Jetzt geht die Ursachenforschung im Log weiter... Mal sehn was da verrückt gespielt hat, oder ob es ein Angriff/Hackversuch war.

        Grüße Marco

        Klingt
        A) wie ein Hackversuch (Brut Force). Du solltest fail2ban installieren und konfigurieren.
        B) nach einem ungünstig oder nicht für das Error-Log konfiguriertem Logrotate. Hol das nach!

        Wenn die Platte voll war, dann kann die Datenbank nach meinem geringem und unzuverlässigem Wissen durchaus beschädigt sein. So tief bin ich da aber noch nicht eingedrungen.

        Jörg Reinholz

        1. Moin,

          A) wie ein Hackversuch (Brut Force). Du solltest fail2ban installieren und konfigurieren.

          fail2ban ist installiert und eingerichtet. Der "Angriff" kam allerdings von innen. Genauer gesagt ein fehlerhaftes Skript vom Useraccount eines Freundes. Nachdem die Festplatte voll war ging nichts mehr.

          B) nach einem ungünstig oder nicht für das Error-Log konfiguriertem Logrotate. Hol das nach!

          Das ist dennoch richtig. Mit Logrotate habe ich mich bisher nicht beschäftigt; es läuft zwar, aber mit Standardeinstellungen. Werd ich mir auf jeden Fall mit angucken.

          Grüße Marco

          --
          Ich spreche Spaghetticode - fließend.