Datentransfer verschiedener Datenbanken

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datentransfer verschiedener Datenbanken

    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

  • #2
    mach es doch mit hilfe von phphmyadmin. Einfach einen DUMP aller Tabellen erstellen die du dann mit ebenfalls phphmyadmin auf deiner neuen DB wieder einlesen kannst.

    Cu

    php-Entwicklung | ebiz-consult.de
    PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
    die PHP Marktplatz-Software | ebiz-trader.de

    Kommentar


    • #3
      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

      Kommentar


      • #4
        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

        php-Entwicklung | ebiz-consult.de
        PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
        die PHP Marktplatz-Software | ebiz-trader.de

        Kommentar


        • #5
          Hallo Berni,

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

          Gruß Tobias

          Kommentar


          • #6
            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

            php-Entwicklung | ebiz-consult.de
            PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
            die PHP Marktplatz-Software | ebiz-trader.de

            Kommentar


            • #7
              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

              Kommentar


              • #8
                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.

                Kommentar


                • #9
                  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.
                  mein Sport: mein Frühstück: meine Arbeit:

                  Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                  Kommentar


                  • #10
                    Hallo pekka,

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

                    Gruß Tobias

                    Kommentar


                    • #11
                      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.

                      Kommentar


                      • #12
                        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

                        Kommentar


                        • #13
                          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.
                          mein Sport: mein Frühstück: meine Arbeit:

                          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                          Kommentar

                          Lädt...
                          X