Mein Unternehmen verlagert unsere Infrastruktur in ein neues Rechenzentrum und ich versuche herauszufinden, wie die Datenbank auf dem neuen Server am besten mit der aktuellen Produktionsdatenbank synchronisiert werden kann, bis die neuen Umgebungen betriebsbereit sind. Da ich kein Vollzeit-DBA bin, habe ich einige Nachforschungen angestellt und nach dem, was ich gelesen habe, sieht es so aus, als würde ein transnationales Replikations-Setup unseren Anforderungen am besten entsprechen.
Einige Details: Die Produktionsdatenbank ist ungefähr 90 GB groß und mit Robocopy dauerte es ungefähr 9 Stunden, um eine Kopie davon auf einen der neuen Server zu verschieben. Die aktuelle Produktionsdatenbank muss während des gesamten Migrationsprozesses online und zugänglich bleiben. Da es sich um eine einfache Wiederherstellung handelt, ist die Datenbankspiegelung nicht verfügbar.
Ist eine Transaktionsreplikation die beste Methode, um die Datenbanken synchron zu halten?
Mein Plan:
- (Fertig) Übertragen Sie die aktuelle Datenbank und protokollieren Sie auf dem neuen Server und hängen Sie sie an die neue Instanz von SQL Server an
- Richten Sie einen Distributor auf unserem Entwicklungsdatenbankcomputer ein und veröffentlichen Sie ihn aus der Produktionsdatenbank
- Erstellen Sie auf dem neuen Datenbankcomputer einen Abonnenten, der Updates akzeptiert, die einmal pro Nacht vom Distributor gesendet werden
Ich habe zwei Dinge im Kopf. Für die Transaktionsreplikation muss für jede veröffentlichte Tabelle ein Primärschlüssel vorhanden sein, und für viele Tabellen in der Produktionsdatenbank sind keine Primärschlüssel definiert. Ich denke nicht, dass dies ein zu großes Problem sein wird, da mein Hauptanliegen darin besteht, die Datenbanken nur zu synchronisieren. Wir werden die verschiedenen Anwendungen, die die Datenbank verwenden, zu einem späteren Zeitpunkt testen, aber ich möchte sicherstellen, dass dies kein ernstes Problem ist. Zweitens muss ich auch alle zugeordneten System-DBs aus der ursprünglichen Instanz verschieben, z. B. den Master? Wir wechseln zu einem Active Directory-Setup in der neuen Umgebung, daher interessieren mich die Benutzer und dergleichen nicht, aber ich bin mir nicht sicher, ob die System-DBs erforderlich sind.
Und verstehe ich diese Konzepte im Allgemeinen richtig?
quelle
Ich hatte keine Gelegenheit, dies selbst zu verwenden, und ich denke, es befindet sich noch in der Vorschau, aber SQL Data Sync auf der Azure-Plattform könnte eine mögliche Option sein:
https://azure.microsoft.com/en-gb/documentation/articles/sql-database-get-started-sql-data-sync/
Es funktioniert sowohl mit lokalen als auch mit Azure SQL-Datenbanken und scheint ein nützliches Werkzeug zu sein, um Datenbanken synchron zu halten.
quelle