Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Datentransfer verschiedener Datenbanken [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Datentransfer verschiedener Datenbanken


 
Tobias
17-08-2001, 12:03 
 
Hallo,

Also ich habe folgendes Problem:

Ich muss Daten von einer mysql_db in eine andere transferieren, welche auf einem anderen Server liegen.
Als Handycap haben die DB's noch verschiedene Strukturen, welches das kleinere Problem darstellt.

Es geht nicht darum, das ihr das komplett für mich lößt, aber vielleicht hat ja einer 'nen grundsätzlichen Ansatz für mich wie ich die Datenbankaufrufe
in einem php-script voneinander trennen kann und die daten transferiert werden können.

Ich hoffe ihr könnt mir helfen.
Danke im vorraus

Gruß Tobias

 
Berni
17-08-2001, 12:15 
 
mach es doch mit hilfe von phphmyadmin (http://www.php-resource.de/news.php?cat=lesen&NewsID=226). Einfach einen DUMP aller Tabellen erstellen die du dann mit ebenfalls phphmyadmin auf deiner neuen DB wieder einlesen kannst.

Cu

 
Tobias
17-08-2001, 12:56 
 
Hallo Berni,

Die Datensätze sind leider zu groß um sie mal eben über einen dump auszulesen. Dann ist da noch das Problem, das ich beim neu einlesen die Daten in verschiedene (andere) Tabellenstrukturen übersetzen muss.

Gruß Tobias

 
Berni
17-08-2001, 13:02 
 
dann bleibt dir wohl nur noch die Möglichkeit selber ein kleines Programm zuschreiben und "kleine" Dumps zu machen.

Das ändern der Tabellenstruktur würde ich noch der Quelldatenbank machen!

Gruß
Berni

 
Tobias
17-08-2001, 13:17 
 
Hallo Berni,

Kann mann also keine verschiedenen DB-Aufrufe in einem Script machen ohne das diese sich gegenseitig
behindern?

Gruß Tobias

 
Berni
17-08-2001, 13:20 
 
wenn du Zugriff auf beide Rechner hast, ist das kein Problem.

Ich hatte mal das Probelm bei Puretec, dort hat das nicht funktioniert!

Kommt auf einen Versuch drauf an!

berni

 
Tobias
17-08-2001, 17:54 
 
Hallo nochmal,

Also ich habe jetzt ein kleines Script geschrieben, mitdem es soweit auch gut klappt, Nur wenn ich das ganze mit über 4000 Datensätzen ausführen will, werden davon ca. 2500 richtig transferiert und danach
bricht es ab und ich bekomme folgende Meldung:

"Fatal error: Maximum execution time of 30 seconds exceeded in c:\program files\apache group\apache\htdocs\db\transfer.php on line 82"

Was soll das? Das habe ich doch garnicht bestellt!

Hat jemand vielleicht 'ne Ahnung?

Gruß Tobias

 
pekka
17-08-2001, 23:21 
 
Das ist natürlich fies! Damit ein einzelnes Skript nicht zuviele Ressourcen auf dem Server frisst, gibt es ein Speicherbenutzungs- und Laufzeitlimit für PHP-Skripte. Du musst Deinen Provider bitten, dieses Limit hochzusetzen (in der PHP.ini, max_execution_time), oder den Job in mehrere Teilstücke zu trennen, die unter 30 Sekunden benötigen.

 
Titus
18-08-2001, 21:01 
 
mySQL legt seine Datenbanken auf File-Ebene ab. D.h. jede Tabelle einer Datenbank ist in einer Datei gespeichert, der Name der Datenbank ist der Name des Verzeichnisses, in dem die Dateien liegen.

Wenn du auf beiden Servern die gleiche mySQL-Version hast, kannst du einfach (nach dem Anlegen der DB im phpMyAdmin - wegen der Rechte!) die Tabellen-Dateien rüberkopieren. Nicht vergessen, hinterher Besitzer/Gruppe/Zugriffsrechte der Dateien so zu ändern, daß mySQL damit was anfangen kann.

 
Tobias
20-08-2001, 11:56 
 
Hallo pekka,

An angegebenem Pfad über Phpinfo() habe ich keine PHP.ini ! Ist die irgendwo anders versteckt? Habe überall gesucht, aber nichts!

Gruß Tobias

 
pekka
20-08-2001, 13:29 
 
Probiers mal im windows- oder im windows/system-Verzeichnis! Wenn sich da nix findet, such mal nach einer Datei namens php.ini-dist und benenn sie in php.ini um. Dort findest Du dann auch die max-execution-time-Zeile. Wenn keine php.ini da ist, verwendet php m.W. die Standardeinstellungen.

 
Tobias
20-08-2001, 14:08 
 
Hallo pekka,

Oh ein Missverständniss!

Der Server ist auf Unix installiert !

Auf meinem Windowsrechner weiß ich wo die Php.ini
liegt. Bei Unix? Gibt es da überhaupt eine Php.ini oder stehen die Einstellungen dort an anderer Stelle?

Gruß Tobias

 
Titus
20-08-2001, 17:12 
 
Das Time-Limit kannst du auch innerhalb eines PHP-Skriptes setzen. set_time_limit ($sekunden) setzt bei jedem Aufruf auch den Timer zurück.

Baust du set_time_limit also in die Schleife ein, kann dein Skript bis in alle Ewigkeit laufen.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:36 Uhr.