Kopieren der SQL Server-Datenbank mit 500 GB aus der Produktion in die Dev-Instanz

12

Wir müssen eine 500 GB Datenbank von unserem PRODUCTION Server auf einen DEV Server kopieren. Wir haben nur ein Fenster von 5 Stunden.

Was wäre der schnellste Weg, um dies zu erreichen?


quelle
7
1. Was meinst du mit "einem Fenster von 5 Stunden"? Die Produktion wird für 5 Stunden ausfallen? 2. Benötigen Sie die absolut neueste Version der Produktionsdatenbank oder reicht ein aktuelles Backup aus? 3. In welchem ​​Wiederherstellungsmodus befindet sich Ihre Produktionsdatenbank?
Nick Chammas

Antworten:

15

Sie haben zwei Möglichkeiten, um Ausfallzeiten in Ihrer Produktionsumgebung zu vermeiden:

1) Wenn Sie nur die Datenbankstruktur selbst erfassen möchten (Sie benötigen die Daten nicht), können Sie die Produktionsdatenbank einfach per Skript auslesen. Führen Sie das einfach auf Ihrem Entwicklungsserver aus, um die Datenbank zu erstellen.

2) Wenn Sie die Datenbank und die Daten benötigen, greifen Sie einfach auf die neueste Sicherung dieser Datenbank zu und stellen Sie sie auf Ihrem Entwicklungsserver wieder her. Sie werden feststellen, dass dies die am häufigsten verwendete Methode ist, um die Entwicklungsserver mit den Produktionsdaten abzugleichen.


quelle
9

Wenn Sie haben

  • Backup-Komprimierung eingeschaltet?
  • ein schnelles Server-Server-Netzwerk (der Einstiegspunkt ist 1 GB)

... dann einfach kopieren, wiederherstellen. Dies kann in Powershell, Perl, cmd.exe usw. geschrieben werden.

Wenn Sie "Fenster" sagen, meinen Sie damit 5 Stunden Produktionszeit. Es kann nicht so kritisch sein, die Entwicklung zu laden.

gbn
quelle
5

Auf lokal angeschlossene Festplatte kopieren.

Warum nur ein begrenztes Fenster? Nicht kopieren - Laden Sie das Backup auf dev.

TomTom
quelle
Einverstanden. Es ist nicht erforderlich, das Backup zu trennen (was Ausfallzeiten erfordert), wenn die Wiederherstellung eines Backups ausreicht.
Campbell
2
Ich werde das Kopieren eines Backups unterstützen. Sie müssen Ihre Produktionsdatenbank nicht herunterfahren, um sie irgendwo zu kopieren. Wenn Sie einen bestimmten Zeitpunkt benötigen, erstellen Sie entweder eine Sicherungskopie (SQL 2005+) oder kopieren Sie auch einige Sicherungskopien des Übertragungsprotokolls.
Ben Thul
2

Vielleicht passt meine Antwort nicht zu Ihrem Anwendungsfall, aber haben Sie jemals darüber nachgedacht, auf Ihrem Entwickler-Server eine Standby-Datenbank einzurichten, indem Sie eine Technik wie den Protokollversand verwenden ... damit Sie Ihren Produkt über Ihren Entwickler wiederherstellen können vor und halten Sie diese Kopie mit Ihrem Produkt synchron ...

Ich hoffe das hilft

Darkwookiee
quelle
0

Erstellen Sie eine Sicherungssequenzdatei. Nehmen wir an, Ihre gesamte Backup-Größe beträgt 500 GB. Sie können es nach Bedarf aufteilen, eine Sicherungskopie mit 10 Sequenzen erstellen, die aus 10 Sicherungsdateien mit einer Größe von jeweils 50 GB besteht, und dann versuchen, die Sicherungsdateien nacheinander wiederherzustellen oder zu verschieben. Dies reduziert den Netzwerkverkehr und die Wiederherstellungszeit.

Subir Sankar Das
quelle
3
Hallo Subir und willkommen bei DBA.SE. Ich habe Ihre Antwort bearbeitet, um die Klarheit zu verbessern und die Signatur unten gemäß unseren Richtlinien zu entfernen . Vielen Dank für Ihre Antwort.
Nick Chammas
Ich verstehe nicht, wie sich die Aufteilung der Datei in 10 einzelne Dateien auf die Zeit auswirkt, die für den Transport dieser Dateien über das Netzwerk erforderlich ist.
Max Vernon