Datenbank-Backup

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

  • Datenbank-Backup

    Hi,
    ich benötige ein Skript, dass jeden Tag um 24 Uhr eine Datenbank auf C:/ speichert.
    Das alte Backup muss überschrieben werden.

    Ist das mit PHP möglich??
    Kennt jemand ein Skript oder Tutorials dafür??
    Könntet ihr mir Tipps geben, wie ich an die Sache ran gehen muss??

    Wie sichert ihr eure Datenbanken??

    Vielleicht ein Beispiel??

    Besten Dank im Voraus

  • #2
    http://www.mysql.com/doc/en/mysqldump.html
    nein?

    Kommentar


    • #3
      .... und das dann einfach via cronjob aufrufen. fertig.
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        Syntax

        Hallo alle zusammen, kann mal jemand kurz die Synax posten, wie ich die db "foo" auf "C:\bar" mysqldumpe?

        Der mehrt mir immer fehler in mein phpmyadmin wenn ich den Befehl da eingebe. Kann man den da eingeben?


        mfg Martin
        Evtl. Rechtschreibfehler sind beabsichtigt und dienen der Belustigung des Lesers

        Kommentar


        • #5
          Dieser Befehl ist nicht für PHPMyAdmin gedacht.

          Ein Shell/Telnet Zugriff auf den Server muss schon vorhanden sein. (Lokal kann man das auch mit der Eingabeauffoderung machen)

          Dann kannst du mit der folgenden Eingabe ein Backup erstellen:

          Code:
          mysqldump --all -e -l --add-drop-table --host=localhost --user=**** --password=**** DATENBANK >PFAD
          Oder auch gleich noch mit GZip komprimieren:

          Code:
          mysqldump --opt --user=BENUTZERNAME --password=PASSWORT --host=HOSTNAME DATENBANKNAME| gzip > /pfad/zum/backup.sql.gz
          Wenn du das Backup täglich erstellen lassen willst solltest du, wie schon gesagt wurde, Cronjobs verwenden.

          Code:
          mysqldump --all -e -l --add-drop-table --host=localhost --user=**** --password=**** foo >C:\dump.sql
          Wenn du noch Unterordner angeben willst müssen diese schon vorhanden sein. (Habs nur unter Win getestet)

          Kommentar


          • #6
            Wenn du das Backup täglich erstellen lassen willst solltest du, wie schon gesagt wurde, Cronjobs verwenden.
            code:
            mysqldump --all -e -l --add-drop-table --host=localhost --user=**** --password=**** foo >C:\dump.sql
            Hallo @Uzimaster,
            Super Antwort, ich hätte allerdings eine oder andere Frage dazu?

            Was bedeuten eigentlich -e und -l und wozu --add-drop-table?? man möchte ja nur ein Backup!

            Wo steht, dass das Backup täglich erstellt wird?

            Könnte man auch die Uhrzeit für das automatische Backup bestimmen??

            Danke nochmal

            Kommentar


            • #7
              Original geschrieben von bigtail
              Was bedeuten eigentlich -e und -l und wozu --add-drop-table?? man möchte ja nur ein Backup!
              mysqldump --help liefert dir die hilfe.

              Original geschrieben von bigtail
              Wo steht, dass das Backup täglich erstellt wird?
              das macht du am besten mit einem cronjob.

              Original geschrieben von bigtail
              Könnte man auch die Uhrzeit für das automatische Backup bestimmen??
              das kannst du auch im cronjob einstellen.
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                --add-drop-table - > Vor jedem CREATE wird ein DROP TABLE gesetzt

                -e -> Mehrzeilige Insertsyntax wird benutzt (ist i.d.R. schneller)

                -l -> Tabellen werden vor dem erstellen des Dumps gesperrt.

                Kommentar


                • #9
                  fantastische Antwort, besten Dank.
                  --add-drop-table - > Vor jedem CREATE wird ein DROP TABLE gesetzt
                  Wozu??

                  Kommentar


                  • #10
                    du willst die Tabelle ja überschreiben. das geht nicht direkt, sondern durch löschen und neu erstellen.

                    Kommentar


                    • #11
                      Damit wird die Tabelle gelöscht um sie dann neu zu erstellen. So kann man Fehler vermeiden die beim einfügen der Daten entstehen könnten. (doppelte Id´s etc.)

                      Kommentar


                      • #12
                        Wiederherstellen

                        Hallo alle zusammen,

                        habs heut morgen gleich getestet und geht einwandfrei.
                        Die direkte anschlussfrage: Wie stelle ich die Daten jetzt wieder her?
                        LOAD_DATA_INFILE müsste gehen, oder gibts eine mysqlinsertdump syntax?

                        mfg MArtin
                        Evtl. Rechtschreibfehler sind beabsichtigt und dienen der Belustigung des Lesers

                        Kommentar


                        • #13
                          mysql -u username -p -d datenbankname < deinfile
                          eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùû䶳Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

                          Kommentar


                          • #14
                            EXEC()

                            Guten Tag alle zusammen,

                            habe das mit dem mysqldumps lokal super hinbekommen. Jetzt wollt ich das alle von einem Script mehren lassen, folgendes ins Script getippelt:

                            //lokal geht das alles super

                            //Die Mysqldatenbank wird gessichert
                            exec('C:/FoxServ/mysql/bin/mysqldump --opt --host='.$sqlhost.' --user='.$sqluser.' --password='.$sqlpass.' '.$database.' > '.$_SERVER['DOCUMENT_ROOT'].'/'.$default['cookie_path'].'/backup/mysql.sql',$mysql,$mysql2);

                            //jetzt fürn Server umgeschrieben

                            //Die Mysqldatenbank wird gessichert
                            exec('/usr/bin/mysqldump --opt -e -l --add-drop-table --host='.$sqlhost.' --user='.$sqluser.' --password='.$sqlpass.' '.$database.' > '.$_SERVER['DOCUMENT_ROOT'].'/'.$default['cookie_path'].'/backup/mysql.sql',$mysql,$mysql2);

                            auf dem Server legt er die Datei nicht an, "backup" ist auf 777 gesetzt

                            es kommt der Fehler "126"
                            nachgeschaut-> 126 = Index file is crashed / Wrong file format

                            also repair table, fehler immer noch da

                            woran kann das liegen?

                            mfg Martin
                            Evtl. Rechtschreibfehler sind beabsichtigt und dienen der Belustigung des Lesers

                            Kommentar


                            • #15
                              verwende myisamchk
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar

                              Lädt...
                              X