Seite 1 von 1

PHP MySql Tabelle kopieren von DB zu DB

Verfasst: 10.12.2006, 15:28
von Ice Man
Ich hab bei All-Inkl verschiedene Webspace Pakete, die auf verschiedenen Servern liegen.

Nun wollte ich Teile von DB1 auf einem anderen Projekt nutzen, und diese von DB1 nach DB2 kopieren.

ich wollte es mit diesem Code Schnippsel machen

Code: Alles auswählen

INSERT INTO tabelle (spalte1, spalte2) SELECT (spalte1, spalte2) FROM tabelle2;
Problem ist ja, das es 2 Verschiedene Datenbank Tabellen sind.
Über eine Schleife wollte ich es eigentlich nicht machen (über 1000 einzelne Inserts)

Geht das so einfach mit 2 DBs, oder muss ich es doch über die Schleife machen ?

thx für den Input :)

Verfasst:
von

Verfasst: 10.12.2006, 16:08
von Michael1967
Du kannst die doch auch einzelne Tabellen als Backup speichern. Und dann kannst du das Backup von Tabelle 1 nach Tabelle 2 einspielen.

Da musst du nur auf den Prefix achten, wenn diese bei beiden Tabellen nicht gleich ist.

Oder verstehe ich deine Frage falsch?

Verfasst: 10.12.2006, 16:10
von Ice Man
Könnte man ;)
Man ist aber faul, und will es per Script machen, da es alle 3-4 Tage gemacht werden soll, damit die Preise auch auf der anderen Seite stimmen :)

Verfasst: 10.12.2006, 18:20
von Kralle
Warum greifst du von der anderen Seite dann nicht gleich direkt auf die Original-DB zu?

Verfasst: 10.12.2006, 19:53
von Ice Man
ganz einfach, weil es so über 5000 externe zugriffe täglich Server geben würde, was natürlich gleich mehrere Nachteile hat.

1. Serverbelastung
2. langsamer
3. Sollte der Server der 1. Seite down sein, dann lädt die Seite 2 ewig

wenn man die daten aus der DB holt, die auf auf dem gleichen Server ist, gehts nun mal viel schneller :)

Und wir sind doch alles optimirer :D

Verfasst: 11.12.2006, 01:07
von net(t)worker
hmm... lässt sich doch mit 2 cronjobs und etwas shellscript lösen:

1. DB:

cronjob der täglich einen mysqldump der entsprechenden tabellen erstellt und in einem homeverzeichnis ablegt.

2.DB:

cronjob, der täglich einmal per ftp den dump abholt und in die lokale db einspielt...

wäre erstmal vollautomatisch und im grunde die elleganteste Lösung, da kein externer Zugriff auf die db nötig ist....

Verfasst: 11.12.2006, 09:54
von SloMo
Würde ich auch so wie net(t)worker machen. Sehr wichtig ist, dass beide Datenbanken absolut gleich sind. Kollationen und Indizes könnten sonst knifflig werden.

Verfasst: 11.12.2006, 11:04
von Ice Man
Beim Webxxl Tarif hat man keine Cronjobs ;)
Leider.

Das Update kann ich auch manuell per Klick alle 3-4 Tage starten.

Verfasst: 11.12.2006, 14:46
von net(t)worker
Ice Man hat geschrieben:Beim Webxxl Tarif hat man keine Cronjobs ;)
Leider.

Das Update kann ich auch manuell per Klick alle 3-4 Tage starten.
anstatt shellscripte lassen sich natürlich auch phpscripte verwenden, und man könnte jeden Datensatz auch direkt von einem server zum anderen übertragen, also 2 php scripte, das eine liest die db aus und schickt die daten zum anderen, das andere phpscript nimmt die daten entgegen und schreibt sie in eine temporäre tabelle, und wenn alle daten korrekt übertragen wurden wird die originaltabelle durch die temporäre ersetzt....

hier wäre es dann evtl. sogar geschickter bei jedem Datensatz den timestamp der letzten änderung mitzuspeichern, so müssten dann nur die geänderten Datensätze upgedatet werden... je nachdem wie die daten in die erste db kommen, könnte man diesen updateprozess automatisch nach jeder änderung durchführen lassen....

oder noch geschickter.... einfach mal beim support anfragen ob die dir diese Tabelle per mysql-replikation auf den 2. server spiegeln... :wink:

das wäre wirklich die Königslösung...