Ankündigung

Einklappen
Keine Ankündigung bisher.

Zwei Datenbanken synchronisieren

Einklappen

Neue Werbung 2019

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

  • Zwei Datenbanken synchronisieren

    Hallo Gemeinde,

    wie ich in meinem ersten Thread beschrieben habe, hatte ich die Daten aus einer MSSQL Datenbank in eine mySQL Datenbank transferiert.
    Das klappt auch soweit.
    Nun möchte ich per PHP zwei Datenbank auf einem mySQL Server Updaten.

    INSERT in DATABASE1 // klappt per php script
    UPDATE von DATABASE1 und DATABASE2 ???



    Danke für die Hilfe.

  • #2
    scripttags ?

    und ins Datenbank Forum schieben ?

    Kommentar


    • #3
      Lese dir mal
      http://php.net/manual/de/function.mysql-connect.php
      http://php.net/manual/de/function.mysql-query.php

      Da wird drin beschrieben, wie du mehr als eine MySQL Verbindung gleichzeitig aufbauen kannst und in einer Variabel speichern kann. Diese Variable kannst du dann in dem PHP Befehl (z.B. mysql_query()) als Datenbank-Kennung angeben.

      Grüße

      Kommentar


      • #4
        Das Problem ist das ich nicht einzelne Werte Updaten möchte sondern ganze Spalten. ZB alle ids

        Kommentar


        • #5
          Ich würde es trotzdem einfach mit ner Schleife alle zu übetragenden Spalten wiedergeben und die dann Step by Step in die andere Datenbank übertragen mit der vorgeschlagenen Methode. Ich denke nicht, dass du mehrere tausend Datensätze hast, dass sich das groß in der Ausführungszeit bemerkbar macht

          Beispiel:
          PHP-Code:
          // erste Datenbank
          $db mysql_connect("localhost""user""pw");
          mysql_select_db('YOUR_DB'$db); 

          // zweite Datenbank
          $db2 mysql_connect("localhost""user""pw");
          mysql_select_db('YOUR_DB'$db2); 

          $res mysql_query("... Abfrage aus DB 1"$db);
          while (
          $row mysql_fetch_assoc($res)) {
              
          mysql_query("INSERT INTO ... "$db2);

          Grüße

          PS: Für den Code gibt es wie immer keine Garantie wegen spontaner Handarbeit

          Kommentar


          • #6
            Zitat von CapCa Beitrag anzeigen
            Ich würde es trotzdem einfach mit ner Schleife alle zu übetragenden Spalten wiedergeben und die dann Step by Step in die andere Datenbank übertragen mit der vorgeschlagenen Methode. Ich denke nicht, dass du mehrere tausend Datensätze hast, dass sich das groß in der Ausführungszeit bemerkbar macht

            Beispiel:
            PHP-Code:
            // erste Datenbank
            $db mysql_connect("localhost""user""pw");
            mysql_select_db('YOUR_DB'$db); 

            // zweite Datenbank
            $db2 mysql_connect("localhost""user""pw");
            mysql_select_db('YOUR_DB'$db2); 

            $res mysql_query("... Abfrage aus DB 1"$db);
            while (
            $row mysql_fetch_assoc($res)) {
                
            mysql_query("INSERT INTO ... "$db2);

            Grüße

            PS: Für den Code gibt es wie immer keine Garantie wegen spontaner Handarbeit

            Damit feuerste aber ganz schön auf die Datenbank, bei einem Datensatz mag das ja funktionieren, aber wenns mal richtig viel wird
            http://www.ok-display.net Magento Onlineshop
            http://www.somethingabout.de/
            http://www.router-faq.com/

            Kommentar


            • #7
              Das habe ich ja dazu gesagt, dass dieser Code nicht für sehr viele Datensätze ausgelegt ist. Aber ich habe mal angenommen, dass der Threadstarter nicht mit so vielen Datensätzen zu tun hat, da er dies nicht speziell in der Threadbeschreibung erwähnt hat.

              Wenn ich das falsch gedeutet habe, dann mag man sich gerne beschweren

              Grüße

              Kommentar


              • #8
                Nur so aus Neugier: wozu brauchst Du 2 DBs mit identischem Inhalt?

                Kommentar


                • #9
                  MySQL bietet glaube ich die Möglichkeit, sich von alleine zu synchronisieren, da war glaub ich mal ein Thread dazu hier...

                  Edit: Die Suche nach MySql Replikation könnte dich hier im Forum (oder in der Doku) auf die richtige Spur führen

                  http://dev.mysql.com/doc/refman/5.1/...ion-intro.html
                  [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

                  Kommentar


                  • #10
                    Zitat von achtelpetit Beitrag anzeigen
                    Nur so aus Neugier: wozu brauchst Du 2 DBs mit identischem Inhalt?
                    eine zum schreiben, eine zum lesen

                    Kommentar


                    • #11
                      Oder auch als Fail-over...
                      (Wir benutzen eine Master-Master Replikation, die uns bereits einmal vor einem Crash bewahrt hat - Hauptdatenbank schmiert weg, innerhalb von 10 Sekunden übernimmt die Replikation den Job.)
                      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                      Kommentar


                      • #12
                        @lstegelitz
                        Meine Frage war nicht: "Wozu kann man eine zweite, identische DB brauchen?".
                        Meine Frage war: "Wozu brauchst Du 2 DBs mit identischem Inhalt?"
                        Die Antwort heißt nun: "eine zum schreiben, eine zum lesen".
                        Ich finde die Antwort eigenartig.

                        Kommentar


                        • #13
                          Ich nicht. Sowas ist nicht unüblich bei starken Lese-/Schreibbelastung zur Performancesteigerung (Vermeidung von table locks auf Myisam beispielsweise), wir haben selber mit dem Gedanken gespielt.
                          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                          Kommentar


                          • #14
                            Performancesteigerung
                            Das interessiert mich. Mir will scheinen, die Katze beißt sich hier in den Schwanz, denn um die zweite DB upzudaten, muß ich die erste DB doch lesen?

                            Replikation scheint hier auch nicht zu helfen, Zitat aus dem Handbuch:
                            ...Ferner erwirkt die Anweisung eine globale Lesesperre, d. h., während die Tabellen auf den Slave übertragen werden, sind keine Updates auf dem Master möglich...

                            Kommentar


                            • #15
                              Das konzentriert aber den Lesezugriff auf die Menge 1 - alle weiteren Readandfragen werden vom Slave beantwortet und behindern nicht permanent den Schreibzugriff auf den Master.
                              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                              Kommentar

                              Lädt...
                              X