Lösung für WIRKLICH große Backups

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Lösung für WIRKLICH große Backups

    Gibt es hier jemanden, der Erfahrungen hat mit wirklich großen Backups unter einer eingeschränkten PHP-/IIS-Umgebung.

    Die Situation.

    - Eine regelmäßig aktualisierte Website mit CMS muß alle paar Monate gesichert werden. Das Datenvolumen (Site, Inhalte, mSQL-Dumps aus 5 Datenbanken) beträgt ca. 500-600 MB.

    - Die Sicherung muß ohne professionelle Unterstützung laufen, und auf dem Webserver produziert werden. Gehostet wird auf einer Windows-Shared-Maschine mit normalen Gegebenheiten, einzige Ausnahme, die max_execution_time ist auf 90 erhöht.

    - Das ganze muß LAUFEN. So zuverlässig wie möglich. Es darf nicht abrauchen wegen max_execution_time oder kaputten Files.

    - Zugriff mit externer FTP-Backupsoftware kommt nicht in Frage, außer, jemand kennt ein Programm, das wirklich auf EINEN Klick sichern kann und mit nachvollziehbarem Aufwand von einem Laien neu aufsetzbar ist.

    - zlib zum Erzeugen von ZIPs ist vorhanden.

    - exec() und Konsorten sind deaktiviert.

    - Es ist wurscht, wie lange der Backupvorgang dann dauert. Er muß nur funktionieren.

    An diesen Gegebenheiten ist wenig zu rütteln, ansonsten wärs locker per Shellskript + Cron o.ä. zu machen.

    Im Grunde fällt mir nur eine aufgesplittete Skriptlösung ein, die alle Dateien in einzelne ZIPs sichert und kurz vor dem Erreichen der max_execution_time den Stecker zieht, den aktuellen Stand in eine Datei abspeichert und via header() oder Javascript-Redirect (um noch kurz den aktuellen Stand ausgeben zu können) auf das nächste "Häppchen" weiterleitet.

    Das habe ich bereits alles stehen - ein Skript, das die Daten erstmal ermittelt und dann ZIPs mit maximal 80 MB Eingangsdaten erzeugt, da kommen dann halt 12 Häppchen-ZIPs á 50 MB bei raus und es dauert im Schnitt 30-40 Sekunden.
    Das penetrante ist nun aber, daß schon der rekursive glob(), den ich aufrufen muß, um alle zu sichernden Dateien erstmal überhaupt gelistet zu kriegen, je nach Serverauslastung schon die max_execution_time sprengt.

    Muß ich den glob() jetzt auch noch splitten anfangen, oder hat/kennt jemand eine praxiserprobte Lösung, die unter solch widrigen Bedingungen zuverlässig funktioniert?

    Denkanstöße sind natürlich auch willkommen, aber ich kann mir grad nichts besseres vorstellen als die Splitterei... Lasse mich natürlich gern eines Besseren belehren

    Wenn mir jemand so eine Fragestellung präsentieren würde, würde ich ihm raten, das ganze in den Wind zu schießen und einen dedicated server zu holen. Das kommt aber aus Budget- (Bindung an Provider mit gutem Admin (!) bereits vorhanden) und Handlinggründen (Ich will keinen Umzug machen) nicht in Frage. Also eine echte Nuß zu knacken.
    Es dreht sich um ein Projekt mit im Moment wenig Budget, das mir sehr am Herzen liegt.

    EDIT:
    @ die Teilnehmer des letztjährigen Treffens im Volksgarten: Nein, das hat nichts mit der damals besprochenen Idee zu tun ist aber eine super Übung...
    Zuletzt geändert von pekka; 24.01.2007, 16:25.

  • #2
    Also um die Datenbanken zu sichern kann ich nur den mysqldumper empfehlen.

    http://www.mysqldumper.de/

    Mit dem sicher ich jetzt etwa 200MB (Gezipt) Datenbanken, mit zusätzlichem transfer auf einem Backup-Space, Cronjob gesteuert.
    Absolut das beste was ich in dieser Richtung bisher gesehen habe.
    Die Backups laufen alle viertel Stunde durch, und belasten die CPU nur zu 10-20%

    Meine Domainverzeichnisse sichere ich normalerweise mit einem in Webmin gesteuerten Coronjob, weiß nicht ob das auch auf Windows läuft? Meine Verzeichnisse haben bis zu 500MB, zusammen etwa 2GB
    Das ganze kann auch per FTP auf einen externen Space (zusätzlich) übertragen werden.

    Kommentar


    • #3
      Re: Lösung für WIRKLICH große Backups

      OffTopic:
      Wow - also ein echtes "Geiz ist geil"-Projekt.

      Na dann viel Spass ... hoffentlich bekommt der Kunde dann auch eines Tages die Rechnung dafür präsentiert, in dem ihm doch mal alles abschmiert.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Original geschrieben von Andy2006
        Also um die Datenbanken zu sichern kann ich nur den mysqldumper empfehlen.

        http://www.mysqldumper.de/

        Mit dem sicher ich jetzt etwa 200MB (Gezipt) Datenbanken, mit zusätzlichem transfer auf einem Backup-Space, Cronjob gesteuert.
        Absolut das beste was ich in dieser Richtung bisher gesehen habe.
        Die Backups laufen alle viertel Stunde durch, und belasten die CPU nur zu 10-20%

        Meine Domainverzeichnisse sichere ich normalerweise mit einem in Webmin gesteuerten Coronjob, weiß nicht ob das auch auf Windows läuft? Meine Verzeichnisse haben bis zu 500MB, zusammen etwa 2GB
        Das ganze kann auch per FTP auf einen externen Space (zusätzlich) übertragen werden.
        Erst dachte ich, du hast die Bedingungen einfach nicht gelesen, aber dann fiel mir auf, dass du doch einfach tatsächlich ganz genau das Gegenteil vorgeschlagen hast, von dem was pekka wollte
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Kommentar


        • #5
          Na dann viel Spass ... hoffentlich bekommt der Kunde dann auch eines Tages die Rechnung dafür präsentiert, in dem ihm doch mal alles abschmiert.
          Mit "Geiz ist Geil"-Kunden arbeite ich nicht.

          Kommentar


          • #6
            Original geschrieben von unset
            Erst dachte ich, du hast die Bedingungen einfach nicht gelesen, aber dann fiel mir auf, dass du doch einfach tatsächlich ganz genau das Gegenteil vorgeschlagen hast, von dem was pekka wollte

            Ich muss zugeben dass ich nicht alles komplett gelesen habe.


            Aber der Satz

            Lösung für WIRKLICH große Backups?
            stand für mich im Vordergrund.

            Ich frage mich auch, wieso man sich so einen Stress antuen will was anderes zu suchen, wenn es mit einem Cronjob, TAR, ZIP und z.B. dem mysqldumper alsolut prima läuft. Und das steht ihm ja offensichtlich zur Verfügung. Wenn er nicht will, dann soll er es halt anders machen.

            Kommentar


            • #7
              Böse Frage: Der liebe Admin, zu dem dein König Kunde eine gute Bindung hat, hat der set_time_limit und Freunde verboten?

              Wenn das nicht geht, und du keine großartigen Kunststücke vollführen willst: Hast du mal nach "Makrorekorder" und ähnlichen Begriffen gesucht?

              Ein Kollege von mir hat mal ein Tool auf seine Tauglichkeit für automatisierte Tests untersucht, das hat - so wie ein Makrorekorder - Maus- und tastatureingaben aufgezeichnet.
              Damit könntest du doch einmal das komplette Downloaden von allem inkl. Zippen aufzeichnen und es evtl. deinem Kunden als Shortcut auf den Desktop knallen.
              Download der Dateien erfolgt dann per aufgezeichneter FTP-Session, Download der DB per aufgezeichnter phpmyadmin-Session (beispielhaft)
              Wenn's dich interessiert, frag' ich ihn morgen mal, was für Programme er da angeschaut hat und was dabei rausgekommen ist?

              OffTopic:
              Gute Übung für die Idee, die ich nicht kenne, weil ich nicht kommen konnte?
              Nicht dass ich neugierig wäre...
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar

              Lädt...
              X