PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dump und Tabellen ausschließen


fjuli
07.06.2007, 15:22:38
Hallo, ich bin ein Neuling,
sowohl hier im Forum, als auch bei MySQL.
Ich habe folgendes Problem: Local auf meinem Rechner läuft Linux mit Apache, PHP und MySQL. Hier überarbeite ich auch meine Webseite. Nun möchte ich einen automatischen Dump der Datenbank ( sicher nicht das Problem), bei dem ich einzelne Tabellen ausschließen kann, die nicht mit "gedumt" werden sollen, da sie auf dem Webserver nicht benötigt werden.
Ist das per Script machbar?. Da der Dump automatisch erstellt werden soll und als Cron zeitlich gesteuert ablaufen soll. Ebenso soll die Übertragung auf dem Server per SSH automatisch durchgeführt werden.

Ich danke schon jetzt für Eure Antwort

Fjuli

meikel (†)
07.06.2007, 17:59:03
Hallo, ich bin ein Neuling,
Das merkt man:
Ist das per Script machbar?
Ja.

fjuli
07.06.2007, 18:11:11
Hat nicht jeder mal angefangen?
Etwas mehr Hilfe hätte ich schon erwartet als deine Bestätigung Neuling zu sein und der pauschalen Antwort "ja".
Ich meine, ich frage nicht aus langer Weile, sondern weil ich dachte hier sind Leute dabei, die einem wirklich mit ihrem Wissen helfen wollen.

meikel (†)
07.06.2007, 22:10:02
Etwas mehr Hilfe hätte ich schon erwartet als deine Bestätigung Neuling zu sein und der pauschalen Antwort "ja".
Lern lesen! Ich hatte Deine Frage exakt beantwortet.

Heinrich
08.06.2007, 01:18:39
@Meikel,

Mensch, bist u wieder grantig *ggg*

@fjuli

Bisserl konkreter sollte es schon sein. Hast du ein Script? Hat es Fehler? Oder suchst du eins? usw......

Aber schau dir mal das an - könnte helfen:
http://www.phpmybackuppro.net/

meikel (†)
08.06.2007, 08:43:46
@Meikel,
Mensch, bist u wieder grantig *ggg*
Jau. Bei solchen "Fragen" geht mir der Hut hoch.

feuervogel
08.06.2007, 10:38:14
Hat nicht jeder mal angefangen?
Etwas mehr Hilfe hätte ich schon erwartet als deine Bestätigung Neuling zu sein und der pauschalen Antwort "ja".
Ich meine, ich frage nicht aus langer Weile, sondern weil ich dachte hier sind Leute dabei, die einem wirklich mit ihrem Wissen helfen wollen.

kennst du google?

http://www.google.de/search?hl=de&q=mysqldump+cron&btnG=Google-Suche&meta=

fjuli
09.06.2007, 02:30:37
ich war bis jetzt arbeitstechnisch unterwegs und konnte deshalb nicht antworten.
Dennoch, vielen Dank.
Mir ist schon klar, dass es sicher einige gibt, die es sich einfach machen und ohne selber sich die Mühe zu machen vorher zu suchen, Fragen ins Board stellen. Dem ist bei mir nicht so. Ohne vorher gegoogelt zu haben, würde ich mich nicht an ein Forum wenden.

Zu meikel, klar hast Du recht, meine Frage exakt beantwortet zu haben. Sicher blöd von mir, nicht genau nach der Syntax zu fragen. Aber das wollte ich auch nicht, da der Lerneffekt für mich gleich null währe und dass will ich auch nicht. Eins aber habe ich gelernt, wenn schon eine Frage, dann so präzise wie möglich. Ist doch auch schon was, oder?

Nun aber zu mein Problem zurück. Eigentlich wollte ich nur wissen, wie man in einem Script eines Datenbank-Dumps, einzelne Tabellen ausschließt. Alles andere ist ja nicht das Problem. Es währe nett, wenn meikel und all die andern Wissenden mir wirklich etwas unter die "Arme" greifen.

Hallo Heinrich, nein ein fertiges Script suche ich nicht. Wie oben schon erwähnt, ist mir das selber zu einfach. Ein Script, das über ein Cron läuft habe ich mir selber zusammen geschrieben (wie gesagt, Neuling). Allerdings über die gesammte DB. Nun möchte ich aber einige Tabellen auslassen.
Ich suche Anregungen, Links usw. und das auch noch in deutsch, da mein englisch verdammt schlecht ist. Wie gesagt, ich fange gerade erst an mich mit PHP u. MySQL zu beschäftigen. und da ich nicht mehr sooo jung bin, brauche ich sicher für einige Dinge mehr Zeit als andere.

Sollte mir noch jemand antworten, dann wundere Dich nicht, nicht sofort eine Antwort von mir zu bekommen. Bin am WE arbeiten.

fjuli

meikel (†)
09.06.2007, 12:29:48
MySQL Datenbanken synchronisiert man eigentlich per Replikation (siehe Handbuch). Das geht aber nur, wenn der Master (unter Deinem Schreibtisch) eine feste öffentliche IP hat, was ich mal bezweifle.

Plan B:
Ein Backup einer Datenbank erledigt man nicht mit PHP sondern mit dem Tool mysqldump. Im Ergebnis erhälst Du ein File, welches Zeilen mit INSERT INTO enthält. Mit dem Tool kannst Du allerdings keine Tabellen ausschließen, aber Du kannst Datenbank und auch die gewünschte Tabelle angeben. Falls Du als Spaltenbezeichner reservierte Namen verwendest hast, dann nimm die Option -Q, damit alle Bezeichner mit Backticks eingerahmt werden.

Übertragung kannst Du ebenfalls in der Shell mit SCP erledigen. Auf dem Zielrechner kannst Du dieses File dann mit
mysql -h localhost -u root -pROOTPASSWORT datenbankname < /pfad/zum/sqlfile
importieren.

Sollte Dir die Shellprogrammierung zu hoch sein, kannst Du das auch mit PHP CLI erledigen. Die shebang Zeile für PHP sieht dann so aus:
#!/usr/bin/php -q
Beachte, daß nach dem -q zwingend ein Linux Zeilenumbruch stehen muß!

In der 2. Zeile beginnt dann Dein PHP Script mit dem PHP Tag. Natürlich mußt Du dann für das Scriptfile das Execute Flag setzen.

fjuli
13.06.2007, 00:45:16
Danke meikel,

leider war ich bis heute nur am arbeiten und hatte noch nicht mal Zeit hier mal rein zu schauen.

was ich suchte ist so glaube ich "ignore-table". Da ich aber mehrere Tabellen ausschließen möchte würde der Befehl "--replicate-wild-ignore-table" lauten. Ist das richtig?