Hier sind einige Dinge aus meiner Erfahrung zu berücksichtigen.
, wenn Sie sie nicht hinzufügen, haben bereits eine letzte geänderte Datetime-Spalte zu jeder Tisch. Stellen Sie sicher, dass es automatisch auf getdate() verweist. Dieser Trigger kann die Löschungen auch in einer lokalen Tabelle für die periodische Übertragung in die Ziel-Staging-Tabelle erfassen. (Wenn das nicht möglich ist, können Sie eine "lokale" Tabelle mit den Daten der letzten X Monate haben und mit ihr vergleichen, um Änderungen zu erkennen. Vielleicht speichern Sie den Primärschlüssel und eine Prüfsumme, die Sie mit der Prüfsumme aus live vergleichen können)
Erstellen Sie alle Nachschlagetabellen in der alten Datenbank oder in einer separaten Datenbank, so dass Sie eines Tages alles abschalten können. Auf dem neuen Server einen separaten db betrachten Sie Ihre Import Importiertabellen und die gespeicherten beschafft zu halten, die die tatsächlichen Einfuhren tun
-Upgrade die alte Datenbank eine bessere Leistung von Fähigkeiten zu bekommen - oder es alt und langsam lassen, so dass Sie haben, um es in Rente zu gehen!
Ich weiß nicht, CDC, so kann ich nicht beraten, aber ich habe dies auf die harte Art mehrmals getan, so habe ich Narben und jedes Mal aus dem vorherigen gelernt.
Ich hätte eine Tabelle, um Ihre letzte Synchronisationszeit in einer Reihe für jede Tabelle zu halten. Anschließend können Sie eine Ansicht oder Abfrage erstellen, die auf Ihre Importiertabellen
In Staging db kopiert werden muss, erstellen sprocs, dass jeder Tisch des Merge
hoffentlich haben Sie Flaggen auf den Tabellen löschen oder wenn kann unordentlich werden. Möglicherweise benötigen Sie Trigger, um diese Daten zu kopieren, bevor sie ausgeführt werden. Sie könnten es dann in Ihren Staging-Tabellen markieren
bauen Sie das Extraktsystem und Zeitplan mit einer geeigneten Frequenz. Zeichnen Sie Metadaten auf, so dass Sie problemlos darüber berichten können.
Erstellen Sie ein separates Importsystem mit Berichterstellung. Diese Seite kann schwierig sein, die Abhängigen in die richtige Reihenfolge zu bringen.Einsatz SSIS zu steuern, um die Reihenfolge der als Tabellen importiert werden, aber man könnte es einfacher zu entwickeln und zu testen finden, wenn die tatsächlichen Einfuhren von Stored Procedures in Ihrer Import Datenbank
betrachten halten die Staging-Datenbankdaten aber Gebrauch gemacht werden Zeitstempel zu zeigen, wenn importiert/aktualisiert/gelöscht Änderungen (sowie die Datumzeit der Änderung im Quellsystem) für den Fall angewandt werden, gibt es Probleme
- Sie sagen, dass dies eine Einbahn Schnittstelle. Ich stimme zu, dass Sie das jetzt öffentlich sagen sollten. Gegen Ende dieses Projekts kann es jedoch vorteilhaft sein, die Schnittstelle umzukehren, sodass das alte System mit dem neuen System gefüllt wird (entweder für Codetabellen, damit sie in einer Linie bleiben, oder für einige der Transaktionsdaten).
In anderen Fällen können Sie Reise von Alt bis Neu und zurück zu alten oder N> O> N, runden müssen, so dass Sie die Primärschlüsseldaten aus beiden Systemen für andere Extrakte erhalten
wird die Zieldatenbank noch entwickelt? Wenn ja, involvieren Sie die Entwickler in Ihre Pläne und die Benutzer!
Stellen Sie sicher, dass sich Ihre Benutzer für alle Codetabellen, die sie zum Klassifizieren von Daten in der Anwendung verwenden, abgemeldet haben. Stellen Sie sicher, dass sie verstehen, wie Sie alte Codes neuen Codes zuordnen. Dies kann bedeuten, dass, wenn es sich um mehr als einen neuen Code aus einem alten Code handelt, diese manuell aktualisiert werden müssen. Zum Glück haben Sie die Metadaten behalten, sodass sie einen täglichen Bericht haben können, damit sie wissen, was sie überprüfen müssen!
Sind die zwei Datenbanken auf verschiedenen Servern? Wie lange musst du sie synchronisiert halten? Ist es das ganze Schema oder nur einige Tabellen? Sind die Strukturen ähnlich oder haben Sie viele Nachschlagevorgänge, um Daten zu konvertieren? – Mike
Ja auf verschiedenen Servern. Ich muss sie für ein Jahr synchronisiert halten. Tabellenstrukturen unterscheiden sich so viele Lookups, Mappings und Transformationen. –
Sie werden das also 3 Jahre lang tun! Welche Art von Änderungsvolumen hast du? – Mike