SQL Server 2008-Replikation (Vermeidung von Re-Initialisierung)
-
05-07-2019 - |
Frage
Ich versuche, um zu bestimmen, ob es eine bessere Art und Weise ist die Replikation als die Art und Weise zu handhaben wir zur Zeit, Dinge zu tun.
Wir versuchen, im Wesentlichen zwei Dinge zu bestimmen:
- Gibt es eine Möglichkeit eine vorhandene Spalte aus einer Tabelle für die Replikation hinzufügen ohne Neuinitialisierung des gesamten Veröffentlichung
- Können Sie nur einen bestimmten Artikel wählen, anstatt alle neu zu initialisieren der Artikel in einer Publikation?
(Ich bin ein bisschen neu zu Replikation ... versuchen, Geschwindigkeit zu bekommen, so dass ich entschuldige mich, wenn meine Terminologie ist nicht sinnvoll)
Im Moment haben wir etwa 30 Publikationen, so dass, wenn eine neu initialisiert werden müssen gibt es eine minimale Auswirkung ... weil einige unserer Tische ziemlich massiv sind. Wir würden es vorziehen, nur einige Veröffentlichung zu haben.
würde Irgendwelche Ideen sehr geschätzt.
Aktualisieren
Wenn wir versuchen, eine Spalte zu einem Artikel hinzuzufügen erhalten wir die Meldung:
Sie haben sie verändern eine oder mehr Eigenschaften, die alle erfordern Abonnements neu initialisiert werden. Das Speichern dieser Änderungen markiert jeden Abonnement, das automatische unterstützt Neu-Initialisierung neu initialisiert werden aus einem Schnappschuss seines das nächste Mal Verteilungs-Agent läuft. Du musst rennen der Snapshot-Agent generiert die Momentaufnahme.
Wir wollen neu initialisiert alle Abonnements vermeiden .. wir verwenden die Transaktionsreplikation ... wir wieder, ohne eine vorhandene Spalte zu einer vorhandenen Publikation hinzufügen möchten alle Abonnements neu zu initialisieren.
Lösung
Welche Art von Replikation? Schnappschuss, Merge, Transacitonal, Peer-to-Peer?
1) Ja. Siehe Vornehmen von Schemaänderungen in Publikationsdatenbanken :
- Um eine neue Spalte zu einer Tabelle hinzufügen und umfassen diese Spalte in einer bestehenden Veröffentlichung ausführen ALTER TABLE HINZUFÜGEN . Standardmäßig ist die Säule wird dann auf alle replizierten Abonnenten. Die Spalte muss erlauben NULL-Werte oder er gibt eine Standard Einschränkung.
- Um eine bestehende Spalte in einer Include bestehende Veröffentlichung, Nutzung
sp_articlecolumn
(Transact-SQL),sp_mergearticlecolumn
(Transact-SQL), oder die Veröffentlichungseigenschaften - Dialogfeld.
2) Es hängt von der Art der Replikation. Siehe Reinitialisieren ein Abonnement :
Neuinitialisierung ein Abonnement beinhaltet die Anwendung eines neuen Schnappschuß von einem oder mehreren Artikel an einen oder mehrere Teilnehmer: Transaktions- und Snapshot-Replikation erlauben einzelne Artikel zu neu initialisiert; Mergereplikation Alle Artikel müssen sein Reinitialized .