eigene datenbank-backup-funktion erstellen - welche befehle?

abend,

für open x-news (s. signatur) möchte ich den benutzern eine datenbank-backup-funktion zur verfügung stellen. da es umständlich wirkt (vorallem bei denen, nicht mit phpMyAdmin nichts zu tun haben) immer per PMA ein backup zu erstellen, soll die funktion im adminbereich ausführbar sein. ich bräuchte dazu lediglich ansätze, die mir eine solche funktion erläutern (speichern una andere sachen kann ich selber programmieren).
könnte mir da einer behilflich sein?
thx schonmal

Nils aka XraYSoLo

eine eigene Funktion dafür gibt es leider nicht.
Ich habe auch mal so eine Frage gestellt und eitl. keine Antwort bekommen.
Das einzige was ich dir vorschlagen könnte wäre sehr umständlich

Vorschlag:
gib durch [COLOR=„Blue“]mysql_list_tables die tabellen aus.
Dann hohlst du dir z.b. in einer Whileschleife für jede Tabelle
mit [COLOR=„blue“]SHOW TABLE STATUS alle infos die du brauchst.

Jetszt liest du alle Daten der Tabelle aus und packst sie in entsprechede Mysql-anweisung.
Sowas wie:

CREATE TABLE '$tbl_name' (
bla int(20) ............
........
)
INSERT INTO '$tbl_name' ('$spalte') VALUES ('$val')
INSERT INTO '$tbl_name' ('$spalte') VALUES ('$val')
INSERT INTO '$tbl_name' ('$spalte') VALUES ('$val')

So ein Code erstellst du dann halt für jede Tabelle mit den jeweiligen Datensätzen.

Wenn damit fertig für alles diesen Code zu generieren, speicherst du ihn in einer *.sql datei und bietest dem user es zum download an

Nun ja, was willst du denn genau speichern? Die Strukturen der Tabellen mit Inhalt oder die komplette DB? Oder doch nur den Inhalt der Tabellen?

MFG
Alti

tabellen und inhalt.

Nils aka XraYSoLo

[LEFT][INDENT]Vielleicht hilft dir das. Funktioniert so wie Frank gesagt hat:
http://www.gandc.de/download/dump.rar
[/INDENT][/LEFT]

Ich würde das so angehen:
Ich würde wenn das Projekt fertig is, die Namen alle Tabellen in einer Extra Tabelle speichern.
Diese wird dann abgefragt.
Nun hast du die Namen aller Tabellen.
Nun benutzt du die Funktion DESC um die Struktur zu bekommen. Dann fragst du alle Datensätze ab und lässt sie in eine Textdatei? eintragen.
Das nun für jede Tabelle machen.
Prinzip dürfte denk ich, klar sein.

MFG
Alti

Sicherung auf Systemebene (Linux)
(mit tar, cpio, cp -R o.ä)

Kopiere den gesamten Verzeichnisbäume, in dem sich
a) das MYSQL-System
b) die eigentlichen Daten befinden

auf eine andere Platte (am besten auf ein anderes System) bzw. auf CD-Rom / DVD

geht am schnellsten - auch das Wiederherstellen der Daten geht schnell.
Mach es am besten im Batch (als cron-Job).

das nutzt aber den nichts-checkern auch nicht, weil viele nicht mal wissen, was eine datenbank ist.
es sollte so komfortabel gehalten werden, dass der größte trottel ein backup machen kann.

Nils aka XraYSoLo

XraYSoLo

Wenn du das in ein Script packst und dann als cronjob startest, braucht Mr. Normaluser nicht einmal das Backup-Script zu starten.

Du brauchst für das Recovery ebenfalls ein Script. In diesem werden die gesicherten Dateien (aber nur die jeweils jüngste Version) auf die gleiche Weise zurückgespielt. Viel einfacher geht es nicht. Der User braucht dann nur so etwas wie „dbrecovery“ (oder wie das Script sonst heißen soll) einzugeben, und schon läuft die Sache.

Wenn du Hilfe beim Erstellen brauchst: PN/ Mail an mich:
kratzbaum(at)gmx.info

Auch ein relativ unbedarfter User kann so etwas starten.

P.S. Ich würde nicht unbedingt den größten Trottel für derartige Aufgaben nehmen. Etwas Erfahrung im Unix/Linux-Bereich sollte er schon mitbringen. Es reicht nicht, wenn er sich
unfallfrei einloggen kann. Du läßt doch auch nicht einen Erstklässler deinen PC „reparieren“.

P.P.S: Ich bin seit 17 Jahren im Unix-Umfeld tätig und habe einige Zeit selbst Datenbanken (Informix, Ingres) administriert.

@kratzbaum: Nicht jedes Hostingpaket unterstützt cronjobs

Na gut, dann muss sich Mr. Normaluser eben die Namen von 2 Prozeduren merken.
Aberdas Prinzip ist gut. So arbeitet mein Arbeitgeber schon seit Jahren.
Sicherung der Produktionsumgebung (hier:Mysql) und Sicherung der Daten.(Ich selbst bevorzuge cpio im Script - geht sehr schnell)

ok, danke mal für alles.
im grunde genommen sollte es so einfach wie möglich sein:

  1. tabellen und inhalte anzeigen
  2. SQL-datei erstellen und irgendwo abspeichern

Nils aka XraYSoLo