Verschieben Sie die Live-SQL Server-Datenbank auf einen neuen Server

7

Ich habe einen Produktionsserver, auf dem SQL Server 2008 Web Edition ausgeführt wird, und er muss rund um die Uhr ohne Ausfallzeiten ausgeführt werden. Es ist an der Zeit, auf eine erweiterte Serverhardware umzusteigen. Außerdem ist dies eine gute Chance, auf SQL Server umzusteigen 2012 Unternehmen.

Nun meine Frage, wie kann ich diese Migration durchführen, ohne die Datenbank überhaupt herunterzufahren? Wenn Sie beispielsweise etwas zwischen den beiden Servern als Replikation oder so festlegen, sodass ich auf beiden Servern bis zu einer Sekunde genau dieselbe Datenbank habe, kann ich die Hauptdienste nur für 1 Minute herunterfahren und die IP-Adresse der Datenbankverbindung ändern vom alten Server zum neuen Server und ich bin sicher, dass der neue Server eine identische Kopie des alten hat.

Ich kann mich nicht für das Sichern / Wiederherstellen entscheiden, da dies länger als akzeptabel dauert. Deshalb benötige ich etwas, das identische Datenbanken genau so garantiert, als würde ich Sichern / Wiederherstellen durchführen. 5 Minuten könnten die maximal erschwingliche Ausfallzeit sein.

Die Datenbankgröße beträgt ca. 100 GB.

Auf dem neuen Server wird 2012 Enterprise ausgeführt, und auf dem alten Server wird 2008 Web ausgeführt

Ich kann ausnahmsweise Datensätze aus der Datenbank archivieren und deren Größe auf 20 GB reduzieren.

Ich habe die Möglichkeit, meine SQL Server 2008 Web Edition auf Enterprise Edition zu aktualisieren, wenn dies bei weiteren Lösungen hilfreich ist, z. B. bei der Replikation.

Ein Bett
quelle
@Abed Sie erkennen , dass ein Upgrade von Web Unternehmen ein entstehen werden Ausfallzeiten und wie pro Ihre Frage it has to keep running 24x7 with almost no down time? Wenn Sie sich für ein Unternehmen entscheiden, würde ich vorschlagen, dass Sie sich für eine Spiegelung entscheiden (zuerst asynchron) und dann während der Umschaltung die Spiegelung auf SYNC umstellen. Dies gibt Ihnen minimale Ausfallzeiten.
Kin Shah

Antworten:

11

Da Sie SQL Server 2008 Web Edition verwenden, ist es am besten, diese zu verwenden LOG SHIPPING.

Ihre Datenbankgröße beträgt 100 GB. Daher sollte die Initialisierung der sekundären Daten aus einer Sicherung in Betracht gezogen werden. Verwenden Sie die GUI nicht, um den ersten Protokollversand einzurichten.

SO sollten Ihre Schritte sein:

  • Sichern Sie die 2008 Web Edition-Datenbank und stellen Sie sie in 2012 Enterprise wieder her WITH NORECOVERY.
  • Starten Sie den Protokollversand-Assistenten und stellen Sie sicher, dass Sie auswählen secondary is already initialized. Konfigurieren Sie Logshipping so, dass es alle gibt 1 min(dies ist das Minimum, das Sie erhalten können).

    Geben Sie hier die Bildbeschreibung ein

  • Verschieben Sie alle Anmeldungen, Jobs und SSIS-Pakete.

Während des Wechsels zum neuen Server:

  • Beenden Sie alle Webserver, die eine Verbindung zur Datenbank herstellen

  • Beenden Sie alle Sicherungs-, Kopier- und Wiederherstellungsjobs des Protokollversands.

  • Erstellen Sie eine endgültige Sicherung des Endprotokolls und stellen Sie sie auf der sekundären Seite wieder her WITH RECOVERY.

  • Synchronisieren Sie die Anmeldungen.

  • Ändern Sie die web.configAnwendung so, dass sie auf den neuen Server verweist. Auf diese Weise müssen Sie die IP-Adresse des neuen Servers nicht an die alte anpassen.

Ich habe die Schritte nach der Wiederherstellung hier detaillierter angegeben .

Kin Shah
quelle
Die Datenbank muss von Holland DC nach Houston DC verlegt werden, eine ziemlich lange Reise. Die Datenbank verarbeitet mehr als 5000 Transaktionen pro Minute. Alle sind Abrechnungs- und Finanztransaktionen. Eine Kombination aus Tausenden von Aktualisierungs- und Einfügebefehlen pro Minute. Ich brauche etwas ohne Toleranz. Es ist eine Katastrophe, wenn der neue Server ein kleines Problem mit dem Versand von Protokolldateien hat.
Abed
@Abed Sie haben keine anderen Optionen und IMHO Logshipping, wenn es richtig konfiguriert ist (schwer zu verstehen!) Und einige Tage laufen, wird dies sicherstellen und Ihnen Vertrauen geben. Testen Sie es auf einem Testserver mit einer kleineren Datenbank, und wenn Sie sicher sind, implementieren und wiederholen Sie es auf PROD.
Kin Shah