Datenbank-Backup automatisch
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
anbieter
aufwand
aussehen
befehl
bringen
code
dank
datum
export
karpfen
mache
nutzen
programm
rechner
statement
system
systemfehler
tabelle
text
-
Hi!
Ich möchte für meine Website ein Datenbank-Backup erstellen. Klingt erstmal einfach, is es aber nicht, denn es täglich zu einer bestimmten zeit automatisch geschehen, und es soll dann der mysql-string in einer datei gespeichert werden. weiß jemand, wie man so etwas mach?
grüße, dd -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du erstellst unter Linux einen Cronjob oder unter Windows einen geplanten Task.
Dann schreibst du dir eine SH bzw BAT Datei und in der steht dann der SQL Befehl. AFAIK kann man auf Lima von außen auf die eigene Datenbank zugreifen, dann hilft dir ein Skript wie folgt dein Backup zu lösen.
mysqldump -C -l -h mysql_adresse_von_lima -u benutzername -ppasswort -B Datenbankname > zielverzeichnis bei dir lokal auf dem rechner
Hierbei ist zu sagen das dieses Beispiel davon ausgeht, dass du mysql lokal auf deinem Rechner installiert hast. Andernfalls hast du keinen Zugriff auf das mysql dump Programm.
Hoffe das hilft dir weiter.
-
Mit PHP ist das sicherlich zu realisieren, wenn dein Anbieter Cronjob anbietet. Das ist hier aber nicht der Fall. Ich erinnere mich aber, dass irgendwer mal von einem Onlinedienst-Anbieter geschrieben hat, der sowas laufen lässt. Damit konnte man, soweit ich mich erinnere, auch externe Datenbanken sichern.
-
Du kannst einen Cronjob auch simulieren. ;)
Wenn eine hinreichend große Besucherfrequenz auf der Homepage vorhanden ist, einfach im Script der Startseite den benötigten Code hinterlegen. Ein Datenbankfeld enthält den Zeitpunkt der letzten Ausführung und nur wenn der gewünschte Wiederholungszeitraum überschritten ist, wird der Code ausgeführt.
FF -
und wenn ich es so mache, das, wenn sich ein neuer user registriert und wenn neue forenbeiträge gepostet werden ein backup erstelle? oder überlaste ich dann das system?
und frage 2: wie muss die db-abfrage aussehen, wenn alle tabellen gesichert werden sollen? so wie beim export von phpmyadmin, das ich dann einfach den text habe, den ich dann, bei einem "systemfehler" wieder ausführen kann mit php? -
karpfen schrieb:
Ich erinnere mich aber, dass irgendwer mal von einem Onlinedienst-Anbieter geschrieben hat, der sowas laufen lässt. Damit konnte man, soweit ich mich erinnere, auch externe Datenbanken sichern.
Der Cronjobanbieter, den du meinst, dürfte dieser hier sein. Der wurde hier auf Lima bereits des öfteren zitiert
ne, hilft leider nicht weiter, oder wir bringen die admins von lima dazu, das zu machen!
Was zu machen!? Es ist möglich, von außen auf den Datenbankserver von Lima zuzugreifen, habe ja selbst schon mit einem Delphi-Programm sowas versucht. Von daher sollte der Vorschlag von evil-devil funktionieren! -
dynamic-designs schrieb:
und wenn ich es so mache, das, wenn sich ein neuer user registriert und wenn neue forenbeiträge gepostet werden ein backup erstelle? oder überlaste ich dann das system?
Man kann es auch übertreiben.
Stell Dir vor, es werden täglich nur 20 Beiträge geschrieben. -> 20 Backups.
Selbst ein tägliches Backup ist übertrieben, solange in deinem Forum nicht viel los ist.
und frage 2: wie muss die db-abfrage aussehen, wenn alle tabellen gesichert werden sollen? so wie beim export von phpmyadmin, das ich dann einfach den text habe, den ich dann, bei einem "systemfehler" wieder ausführen kann mit php?
Wenn Du es wirklich zu Fuß machen willst, reicht ein Befehl nicht. Dann wirst Du nicht umhinkommen, alle Tabellen und deren Daten einzeln auslesen zu lassen und gemeinsam mit den, für eine Wiederherstellung notwendigen Anweisungen, zu einem Dumpfile zusammenzu setzen.
Ansonsten sind die bereits empfohlenen Wege mit dem ext. Cronjob vorzuziehen.
FF -
evil-devil schrieb:
Der einfachste Weg ist der den ich aufgezeigt habe. Einfacher geht es eigentlich nicht mehr. Mit PHP ist der Aufwand um ein vielfaches höher. Was spricht denn dagegen mysqldump zu nutzen @TE?
es spricht nichts dagegen. ich wollte nur die alternativen wissen -
Mit PHP würdest du halt zunächst mit SHOW TABLES alle Tabellen einlesen und dann auf jede Tabelle die Spalten holen und dir daraus ein SELECT Statement für die Daten sowie ein Statement für die Tabellenstruktur bauen müssen. PHP MyAdmin würde dir da als Quelle dienen können. Aber das steht in keiner Relation zum Aufwand/Nutzen Effekt.
-
Mir gefällt die Variante von fatfreddy sehr gut, auf die Idee muss man erstmal kommen. So brauche ich keinen externen Cronjobsdienst nutzen, wo ich nicht weiss, was dort mit den Daten so abläuft. Und da ich meine Seite mindestens 1 mal am Tag anklicke, sollte der Automatismus auch gegeben sein.
Danke fatfreddy für diesen Gedankengang -
karpfen schrieb:
Danke fatfreddy für diesen Gedankengang
Ist nicht auf meinem Mist gewachsen. Die Blumen geb ich an das Entwicklerteam von phpBB3 weiter. Dort wird genau diese Methode für Wartungsaufgaben genutzt.
FF
-
ich finde die idee auch gut, aber da hab ich ja noch mehr zu coden als jetzt schon!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage