Announcement

Collapse
No announcement yet.

2 SQL Server 2005 Daten Synchronisieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 2 SQL Server 2005 Daten Synchronisieren

    Hallo,

    ich habe zwei SQL Server an zwei verschiedenen Standorten, die über eine VPN Verbindung verbunden sind.
    Gibt es eine Möglichkeit, dass alle Daten die auf Server A anfallen auch auf Server B übertragen werden, entweder sofort oder an einem bestimmten Zeitpunkt.
    Dabei soll Server B aber keine Daten an Server A schicken.

    Gibt es dafür irgendwelche Boardmittel oder muss ich mir dafür ein Script schreiben.


    Ich habe noch kaum Erfahrung mit dem MS Sql Server also bitte detailliert Antworten.

    Danke im Voraus


    Chris

  • #2
    Hallo Chris,

    als Hausmittel gibt es beim MS SQL die Datenbank-Replikation.
    Dabei gibt es mehrere Varianten
    - Snapshot-Repl: Geht in eine Richtung Verleger => Abonnent, als das was Du möchtest, wobei aber jedesmal der ganze Datenbestand übertragen wird.
    - Transactions-Repl: Auch nur in eine Richtung, wobei nur Änderungen übertragen werden.
    - Merge-Repl: Überträgt Änderungen bidirektional, also auch von Server B nach A

    Dann gibt es noch die Möglichkeit der Datenbank-Spiegelung und das LOG-Shipping, also das man regelmäßig eine Sicherung durchführt, die dann auf Server B überträgt und dort zur zurücksichern lässt.

    Das allerdings detailiert zu Beschreiben wäre sehr aufwendig, sieh mal in die Online-Hilfe, da ist alles gut beschrieben.

    Olaf
    Zuletzt editiert von O. Helper; 15.02.2008, 11:46.
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      Danke Olaf für die schnelle Antwort. Hast mir schon weitergeholfen.

      Hast du eine gute Quelle außer die Online-Hilfe über Replikationen am besten mit Praxisbeispielen.

      Gruß

      Chris

      Comment


      • #4
        Hallo Chris.

        Wie Olaf schon sagte, ist das nicht mal so eben zu beschreiben.
        Replikation und Synchronisation (die kann auch automatisch z.B.
        jede Minute laufen) ist hier sicherlich ein guter Weg. Wenn Du da
        support braucht, kannst Du mich gerne kontaktieren.

        Gruß
        Henning

        Comment


        • #5
          Hallo zusammen,

          ich bin neu im Forum und bei meiner Suche auf diesen Thread gestoßen.

          Ich bin auch ganz neu im SQL-Bereich und habe das selbe Problem, wie der Themenersteller, nur bin ich wohl irgendwie zu blöd, auf den Support-Seiten von MS das Richtige zu finden.
          Zumindest lese ich immer nur, was beachtet werden muss und wie das alles im Hintergrund funktioniert usw., nur keine Anleitungen, was man genau machen muss, damit die Server sich replizieren.

          Kann mir da jemand einen Denk-Anstoß, oder einen Link geben?



          Was ich bisher schon gemacht habe:
          1. Über "New query" folgendes Script ausgeführt (auf beiden Servern):

            sp_configure 'show advanced options', 1;
            GO
            RECONFIGURE;
            GO
            sp_configure 'Agent XPs', 1;
            GO
            RECONFIGURE
            GO
          2. Replication -> Rechtsklick -> Configure Distribution (auf beiden Servern)
            und beide Server als Distributer konfiguriert, sodass sie beide "anbieten" und "nehmen" können. (Ich weiß nicht, wie man das am besten beschreiben kann. )
          3. Über Dienste den "SQL-Server Agent" und "Messenger" gestartet (auf beiden Servern)
          4. Replication -> Local Publications -> New Publication
            Die angelegte "Test" Datenbank auf Server1 mit "Merge" publiziert. ("PubTest")
            Mittlerweile habe ich auch auf dem Server2 eine Datenbank "Test2" erstellt und ebenfalls mit "Merge" publiziert. (Auf dem Screenshot noch nicht vorhanden.)


          Die Server können sich gegenseitig pingen und ich habe ja auch auf beiden Servern den jeweils anderen als "Publisher" drin stehen, also gibt es ja scheinbar keine Verbindungsprobleme.
          Diese Jobs auf dem Screenshot lassen sich auch nicht starten.

          Jetzt stellt sich die Frage: Wie starte ich diese Replikation? Bzw. wie bekomme ich die Server dazu, sich alle paar Minuten / Stunden zu replizieren?

          Ich hoffe, mir kann hier jemand weiterhelfen.

          Vielen Dank schonmal.

          Gruß
          SolitudeX
          Attached Files

          Comment


          • #6
            Hallo SolitudeX,

            Du hast da ein kleinen Gedankenfehler.
            1 Server ist der Publisher (und häufig auch der Distributor) und 1-x Server die Abonnenten.
            Versuch das mal so einzurichten. Erst wenn ein Abo (sei es Push oder Pull) vorhanden ist, macht die Replikation etwas; was sollte sie auch ohne machen?
            Olaf Helper

            <Blog> <Xing>
            * cogito ergo sum * errare humanum est * quote erat demonstrandum *
            Wenn ich denke, ist das ein Fehler und das beweise ich täglich

            Comment


            • #7
              Hallo Olaf,

              vielen Dank für deine Antwort. Da hätte ich ja noch lange herum probieren können.
              Und das funktioniert dann in beide Richtungen, wenn ich das mit der Merge-Replikation richtig verstanden habe?

              Nur finde ich jetzt leider auch nichts, wie man den Server als Abonnent einrichtet. :-/
              Oder ist das dann quasi das selbe wie "Publisher"?

              Gruß
              Zuletzt editiert von SolitudeX; 25.09.2008, 09:57.

              Comment


              • #8
                Ja, eine Merge-Replikation aktualisiert Änderungen in beide Richtungen. Wir nutzen das z.B. für ein Hot-StandBy System, um auf beiden Server die Daten vorzuhalten.

                Hinweis: Wichtig ist nur, das bei der Replikation die "Artikel" (Tabellen) um weitere Felder für die Replikation erweitert werden, u.a. eine GUID.
                Falls Du eine DB eines Fremdherstellers hast, könnte das Probleme bereiten; bei eigenen sollte man es von Anfang im Design berücksichtigen.

                Ein "Publisher" (Veröffentlicher) ist sozusagen der Hauptserver, er veröffentlicht die Daten (Artikel) [Analogie zum Verlagswesen].
                Der "Distributor" verteilt die Artikel zu den Abonnenten; das kann der gleiche Server sein wie der Publisher.

                Also, zunächst die Replikation als solches für den Publisher-Server einrichten.
                Dann die Publikation einrichten, also welche Datenbank mit welchen Tabellen soll(en) veröffentlicht werden.

                Nun zum Abo, da gibt es 2 Varianten:
                - Push-Abo: Wenn der Server Änderungen hat, werden die aktiv auf die Abos übertragen.
                - Pull-Abo: Der Abonnent fragt regelmäßig nach, ob Änderungen zum Übertragen anliegen.

                Ruf nun die Eigenschaften der Publikation auf, da gibt es ganz hinten einen Kartenreiter für die Abos, hier kannst Du die Push-Abos einrichten.
                Pull-Abos kannst Du auch am Abonnenten-Server im Bereich Replikation einrichten.
                Olaf Helper

                <Blog> <Xing>
                * cogito ergo sum * errare humanum est * quote erat demonstrandum *
                Wenn ich denke, ist das ein Fehler und das beweise ich täglich

                Comment


                • #9
                  Okay, verstehe. Dann bin ich jetzt ja schon ein gutes Stück weiter.

                  Bei mir seh ich aber nichts mit "Abos". Oder bin ich in den falschen Eigenschaften?

                  Ich hab Rechtsklick auf das "PubTest" gemacht und dann "Properties". (siehe Anhang)

                  Das ist jetzt der Server-1, der als Distributor eingetragen ist. Bei Server-2 hab ich Server-1 als Distributor eingetragen und anschließend eine Publication erstellt. Allerdings sieht dort das Eigenschaften-Fenster genauso aus.


                  EDIT:
                  Ich hab jetzt z.b. diese Seite gefunden:
                  http://msdn.microsoft.com/de-de/libr...5(SQL.90).aspx
                  Ist zwar alles schön erklärt.... Allerdings steht da nirgends, WO und WIE genau ich den Server als Abonnent eintrage. *verzweifel*

                  Kannst du mir vielleicht mit einem Screenshot ne kurze Anleitung schreiben? Ich wär dir echt super dankbar.

                  Lieben Gruß
                  SolitudeX
                  Attached Files
                  Zuletzt editiert von SolitudeX; 26.09.2008, 15:38.

                  Comment


                  • #10
                    Ich hab nochmal ein paar Screenshots gemacht, in der Hoffnung, mir kann jemand weiterhelfen.

                    1.) Sind die Einstellungen so richtig? Bzw. sollte das so funktionieren?

                    2.) Wenn ich bei 1) den Administrator-Namen und das Passwort (bei beiden Servern gleich) eingebe, kommt diese Meldung.

                    3) Event-Log: Aber ich habe in den Diensten den SQL-Manager gestartet. Oder wo genau liegt das Problem?


                    Danke
                    Attached Files

                    Comment


                    • #11
                      (Bitte die vorherigen Beiträge nicht überlesen )

                      1) Server 1: Beide Server als Publisher eingetragen

                      2) Server 2: Fehlerlog im Replication Monitor

                      (Kompletter Text: )

                      Error messages:
                      Message: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
                      Stack: at Microsoft.SqlServer.Replication.ServerConnectionEm ulator.Connect()
                      at Microsoft.SqlServer.Replication.Snapshot.SqlServer SnapshotProvider.EstablishPublisherConnection()
                      at Microsoft.SqlServer.Replication.Snapshot.SqlServer SnapshotProvider.GenerateSnapshot()
                      at Microsoft.SqlServer.Replication.SnapshotGeneration Agent.InternalRun()
                      at Microsoft.SqlServer.Replication.AgentCore.Run() (Source: MSSQLServer, Error number: 18456)
                      Get help: http://help/18456
                      Server MS-HOTH-2, Level 14, State 1, Procedure , Line 65536
                      Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. (Source: MSSQLServer, Error number: 18456)
                      Get help: http://help/18456

                      Comment


                      • #12
                        Screenshots vergessen, sorry...
                        Attached Files

                        Comment


                        • #13
                          Hallo SolitudeX,

                          mal ganz ehrlich: In der Zeit, wo Du rumprobiert hast (und ich Dir Fragen beantwortet habe), hättest Du Dir die Online-Dokumentation 3mal durchlesen können und es würde nun laufen.

                          Nochmal: Das 2 Server publizieren und keiner abonnniert, macht überhaupt keinen Sinn.
                          Wenn niemand eine Zeitung liest, wird auch keiner eine Zeitung herausgeben.

                          2 Tipps:

                          1. Abonnenment heisst auch gut hoch-englisch: Subscription
                          Sieh Dir mal die Screenshots durch; fällt an min. 2 Stellen sofort ins Auge.

                          2. Berechtigungen werden natürlich auch benötigt, steht ebenfalls alles in der BOL beschrieben.
                          Man kann bei der Publikation hinterlegen, welche Abonnenten überhaupt zugreifen dürfen; ebenso ist es möglich "Anonyme Abonnenten" zuzulassen (Anonymous Logon).
                          Für die Übertragung des Snapshots wird z.B. ein File-Zugriff benötigt, wobei man den Snapshot auch von Hand installieren kann.
                          Olaf Helper

                          <Blog> <Xing>
                          * cogito ergo sum * errare humanum est * quote erat demonstrandum *
                          Wenn ich denke, ist das ein Fehler und das beweise ich täglich

                          Comment


                          • #14
                            Hallo Olaf,

                            ich weiß, ich habe ja auch nebenbei im Handbuch usw. gesucht... Das ausschlaggebende Wort war "Subscriptions", das hat mir gefehlt.
                            Es läuft jetzt auch so, wie es soll.

                            Jedenfalls nochmals vielen vielen Dank für deine Hilfe! :-)


                            Lieben Gruß
                            SolitudeX

                            Comment

                            Working...
                            X