die Replikation zwischen zwei Tabellen mit unterschiedlichen Namen und mit unterschiedlichen Spaltennamen. Ist es möglich, erstellen Sie eine solche Replikation
Habe ich eine Anforderung, wo ich erstellen Sie die Replikation zwischen zwei Tabellen mit unterschiedlichen Namen und mit unterschiedlichen Spaltennamen. Ist es möglich, erstellen Sie eine solche Replikation.
server A server B
---------- ----------
Table : Test Table : SUBS
-------------- ---------------
columns A,B,C Columns D,E,F,G,H
Möchte ich so konfigurieren Sie die Replikation so, dass Spalte A die Replikation von Daten in Spalte D, Spalte B die Replikation von Daten in Spalte E, Spalte C die Replikation von Daten in Spalte F
- möglich, Duplikat der Wie zu replizieren, die zwei Tabellen mit unterschiedlichen Strukturen, die aber die gleichen Felder?
- Jedoch, was ist die Lösung?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Offenbar, die Antwort lautet: "definieren Sie die Artikel, die Sie haben zu setzen Sie die
@vertical_partition
parameter auf "true" und fügen Sie die Spalten, die Sie wollen mitsp_articlecolumn
."Jedoch habe ich zu Fragen, warum Sie das tun. Replikation in meinem Kopf ist das nicht ein Allgemeines Werkzeug zum verschieben von Daten zwischen im Gegensatz zu Datenbanken, aber für die Aufbewahrung von zwei identischen Datenbanken in sync.
Andere Ideen:
Versuchen, Sie zu halten synchronisierten Daten zwischen zwei verschiedenen Datenbanken ein problem sein kann. Es können alle Arten von subtilen Probleme mit race conditions, Mangel an verteilten Transaktionen (die Konsistenz und Reaktion auf Ausfälle), Probleme mit den workarounds geschaffen, um zu tun, damit Sie nicht mit verteilten Transaktionen, und so weiter und so Fort. Können Sie stattdessen erstellen Sie einen verknüpften server und einige Ansichten, die tatsächlich machen die Daten in einer Datenbank Echtzeit-Zugriff von den anderen?
Bitte erzählen Sie uns mehr über Ihre Anforderungen und warum Sie dies tun müssen.
Update
Wenn Sie die manuelle Aktualisierung der route beachten Sie, dass Sie können nicht für einen Zeitraum, der insert -, update-und delete-Operationen en masse. Wenden Sie sich Sie Sie ein zu einer Zeit, um. Wenn Sie statt der Arbeit mit aktuellen Stand eher als intermediate-Operationen mit den Daten, dann kann man alle Zeilen auf einmal. Ich zeige Ihnen das MERGE-Beispiel, nicht die Geschichte-Wiedergabe ein.
Können Sie finden es besser, schieben Sie die gesamte Tabelle und Mach den merge-Vorgang auf dem Zielserver.
Die sperrhinweise ich in auf der ersten Abfrage sind wichtig, wenn Sie gehen, um eine konsistente point-in-time-snapshot. Wenn Sie nicht interessiert sind, dann nehmen Sie die sperrhinweise aus.
Wenn Sie feststellen, dass updates über die verknüpften server sind langsam, und drücken Sie anschließend die gesamte Tabelle in einem Stück auf eine temporäre staging-Tabelle auf dem entfernten server, und den SERIENDRUCK in ein Skript komplett auf dem remote-server.
Rollback
- Anweisung oder mitcommit
ist genug für die verteilte Transaktion? Könnten Sie mir ein Beispiel nennen?