[Cronjob] MySQL- und Daten-Backup?

Suchfunktion

Erfahrenes Mitglied
Hi!

Ich suche ein Script, welches ich per Cronjob ausfuehren lassen kann, zum Sichern von Dateien & Datenbank-Daten. Welches wuerdet ihr mir empfehlen?

Es gibt extrem viele Scripts und Techniken zum Sichern, aber da muss es ja z.B. Performance-Unterschiede geben, oder Aehnliches.

Es handelt sich bei dem Projekt, fuer die das automatische Backup benoetigt wird, um eine stark besuchte Seite mit enorm viel Datenbank-Traffic & Besuchern, daher sollte das Script moeglichst schnell durchlaufen, um den MySQL-Server moeglichst kurz auszulasten und die Ladezeiten nicht (bzw. moeglichst wenig) zu beeintraechtigen.

Die Seite ist 24h am Tag sehr gut besucht, daher kann ich es nicht nur "einfach Nachts machen", wo normalerweise nicht viel los ist. Also klar, ich werde den Cronjob nachts durchlaufen lassen, allerdings muss, wie schon erwaehnt, auch zu spaeter Stunde alles moeglichst schnell ausgefuehrt sein.

Also, ich benoetige keine grafisch besonders huebsche oder mit Funktionen ueberfuellte Applikation, sondern einfach nur eine moeglichst schnelle Moeglichkeit, Dateien und Datenbanken zu sichern.
(Anmerkung: Es geht hier nicht um das "was gibt es", sondern "was empfehlt ihr" ;) )

Hatte bisher nichts bzgl. "Backups via Cronjob" & Geschwindigkeitsunterschiede gefunden.
(Und Google spuckt auch nichts anstaendiges aus...)

Wie gesagt:
Es geht um Datenbank- und Dateien-Backup.

mfg
Suche



P.S.:
Es handelt sich dabei um einen Strato Managed Server, also mit Linux als OS.
Soll heissen: Datenbankserver, Webspace, usw. alles auf dieser einen Linux-Installation, falls das von Belang ist.
 
Zuletzt bearbeitet:
Der Schnellste weg die Datenbank zu sichern ist die FRM Dateien der Tabellen zu kopieren. Diese können auch sehr einfach wiederhergestellt werden solang es sich um eine MyIsam tabelle handet. Bei Innodb ist wohl das importieren wieder ein wenig schwieriger.

Aber so kann man einfach *mysqld -stop* *copy* *mysql -start* machen und nach 10 sekunden sind 900 MB oder mehr Daten wiederhergestellt oder so
 
Zuletzt bearbeitet:
Alternativ kann man auch das Tool "mysqldump" verwenden, welches man mit diversen Parametern aufruft. Kommt drauf an, wie du die Backups benötigst!
 
Alternativ kann man auch das Tool "mysqldump" verwenden, welches man mit diversen Parametern aufruft. Kommt drauf an, wie du die Backups benötigst!

Naja, ueber "selbstgeschriebene Scripts" wollte ich es nicht umbedingt arbeiten lassen,
da ich schon gerne einen grafischen Output haben moechte. (In etwa so wie beim MySqlDumper, phpMyAdmin, oder wo auch immer :) Vor allem muss da ja auch noch ein Script her, welches sich um das Sichern der Dokumente auf dem Server kuemmert... Gibt es da keine "all in one"-Loesung? :-( )

Momentan bastle ich aber noch dran, mir ein Shellscript fuer mysqldump zurecht zu "fummeln". (Bin nicht so der Linux-Kenner. Daher dauert das bei mir immer ewig^^ Aber ich bin ja lernwillig :suspekt: )
Aber ein fertiges Script, am Besten noch inkl. grafischer Weboberflaeche waer natuerlich ultimativ :)
 
Zuletzt bearbeitet:
Aber so kann man einfach *mysqld -stop* *copy* *mysql -start* machen und nach 10 sekunden sind 900 MB oder mehr Daten wiederhergestellt oder so

Jop. Werd ich mir mal merken, fuer den Fall, dass ich doch selber ein Script schreiben "muss" :rolleyes:
Aber vermutlich brauch ich dann leider doch ein Dump, nicht nur eine Kopie der Tabellen-Dateien...
 
Zuletzt bearbeitet:
Öhm, "mysqldump" und dein genanntes "mysqldumper" ist das gleiche. phpMyAdmin verwendet auch mysqldump!

An deiner stelle würde ich ein Bash-Script oder Perl-Script schreiben, welches mit einem Programm wie 7zip den wwwroot Ordner Packt, die MySQL-Dateien in einen Ordner kopiert und den Ordner dem Archiv hinzufügen. Das Archiv sollte dann einen Namen haben wie "Backup_Web_DB_2007-08-03.7z" oder so in der Art. Dann das noch von cron ausführen lassen und gut ist. Wobei ich cron noch nicht benutzt habe, da ich grade mal nen Monat mit Linux arbeite (auf der Arbeit) und mich noch nicht so gut auskenne. Aber das sollte eigentlich recht einfach sein!

Alternativ kannst du anstatt die MYD-Dateien etc. zu speichern halt mysqldump ausführen, den Output umlenken in eine Datei und ab ins Archiv damit.

Falls du nen Mail-Server installiert hast, könntest du sogar das Backup direkt als Mail-Anhang an dich schicken (z.B. ne eigene GMail-Adresse für die Backups, da man GMail-Accounts einbinden kann wie ne "Festplatte" -> Google). Also so würde ich das machen.


Gruß Radhad
 
Er sprach ja von großen Datenmengen... ich würde keine millionen Datensätze so Backupen weil das einfach den Rechner für die Zeit hart blockiert. Und Traffic erzeugt wenn er nen paar Gigabyte übers ein veraltetes smtp protokoll jagen muss :>

Ob der Dump oder die Tabellenkopie besser ist, hängt davon ab wie du die daten im Notfall wiederherstellen möchtest. *schwubb* in sekunden wieder drauf aber ein wenig älter. Und ein paar wenige sachen dann nachpflegen. Oder den Rechner eine Stunde lang mysql inserts machen lassen willst bis er sie wieder nachgebaut hat.

Vor nich allzulanger Zeit hatte ich zum ersten mal ein Backup gebraucht von ca 3 GB und >15.000.000 Einträgen, weil beim Query bauen ein Where fehlte *schocked* recht schnell gemerkt und die PID abgebrochen... so jetzt waren aber schon einige tausend datensätze kaputt... und nicht herauszufinden was vorher drin stand.

Als erstes hatten wir ein Backup anhand von einem SQL Dump zu machen der vorher angelegt wurde.. ne stunde später kahm der admin und hat innerhalb von 2 min das Tabellenfiles backup aufgespielt :> Ich wusste bis dato nicht das unsere Server so etwas machen ^^

Und dann haben wir in ca 15 min die neuen einträge nachtragen lassen. Vielleicht ist eine Combination aus beiden wegen das richtige für dich... durch die Tabellenfiles kopieren kann man sehr schnell die website (etwas veraltet) wieder online nehmen... Wenn du sagst deine Tabellen sind nicht sooo groß dann geht sicherlich auch ein mysql dump sehr schnell. Du kannst ja testweise austesten wie lange ein backup mit deiner braucht indem du die befehle auf der konsole eingibst. alla

Code:
mysqldump -c -C -Q --result-file=/backup/exportfile.sql -u web1 --password=PASS usr_web1_1
 
Hm okay, ihr habt ja gewonnen.
Ich mach's via Shellscript ;-)

Werde mich mal etwas mehr mit dem shell-scripting auseinandersetzen (-> Upload der Backups auf externe Backup-Storageserver, usw..)

Danke nochmal @ all.
Wer weitere Info's / Hinweise / WasAuchImmer hat -> Weiterposten!
Ich lasse den Thread hier mal "offen", bis ich endgueltig eine Loesung habe, wenn es recht ist.

mfg
Suche
 
Auf den Backup Server könntest du ja dann auch per FTP zugreifenm denke mal, dass man das auch über ein Shell-Script machen kann. So könntest du den Transfer einfach halten.

Wir tauschen hier auch Daten aus (weiß aber nicht genau wie das geht) über SSH. Ich glaube das heißt SCP (bin mir da nicht sicher). Wenn der Backup-Server nicht im lokalen Netz ist, wäre das wohl die vermutlich sicherste Variante, wenn er im lokalen Netzwerk ist, dürft FTP reichen. Mich würd das mal so interessieren, was es da für Möglichkeiten gibt, die Backups auf nen Backup-Server / File-Server zu transferieren.
 
Ich glaube das heißt SCP (bin mir da nicht sicher).

Jop, SCP haben wir auch im Einsatz. (Wird aber "nur" fuer gesicherte FTP-Transfer misshandelt ^^)

Naja, dann werde ich mich mal dransetzen und ein entsprechendes Script schreiben, welches die komplette Sicherung uebernimmt. Bleibt mir ja anscheinend nix anderes ueber.

Endlich wieder mit unix arbeiten ... *freu, schwaerm*
 

Neue Beiträge

Zurück