Ich arbeite daran, eine Entwicklungskopie einer Produktionsdatenbank unter SQL Server 2008 R2 SP1 einzurichten. Die Live-Datenbank wird derzeit von zwei Entwicklern nur für schreibgeschützte Abfragen verwendet, aber die neue Datenbank wird auch aktualisiert.
Da die Datenbank 2,1 TB groß ist und insgesamt 3 Tage für die Wiederherstellung und Aktualisierung auf den neuesten Build benötigt hat, den wir zum Testen benötigen, bestand mein ursprünglicher Plan darin, einen neuen Satz von Sicherungsdateien zu erstellen und diese dann wiederherzustellen. Auf diese Weise kann ich die Entwicklungskopie der Datenbank auf derselben SQL-Instanz und demselben Computer erstellen, ohne die aktuelle Datenbank offline schalten zu müssen.
Um ein paar dieser Tage zu sparen, dachte ich jedoch, dass es eine gute Idee sein könnte, einfach die physischen Datenbankdateien zu kopieren und die neue Kopie der Datenbank anzuhängen. Leider erhalte ich beim Kopieren eine Fehlermeldung bezüglich der Sperre, die SQL Server für diese Dateien setzt.
Gibt es eine Möglichkeit, die Live-Datenbankdateien zu kopieren, ohne die Datenbank in einen Offline-Zustand zu versetzen, da ich die Datenbank nur für die Übertragung der Protokolldateien offline schalten kann (ich kann dies beenden, bevor die Leute morgens einsteigen)? Oder sollte ich warten, bis die Leute nach Hause gehen, um das zu tun?
quelle
Nein, Sie müssen es offline schalten, um die Dateien zu kopieren. Wenn Sie Ihre Datenbank in kleinere Dateien / Dateigruppen unterteilt haben, kann dies dazu beitragen, dass die Sicherung nach einmaligem Wiederherstellen schneller wiederhergestellt wird (abhängig davon, welche Daten sich ändern und welche Daten für die Entwicklungskopie benötigt werden).
quelle
Ich habe die anderen Antworten gesehen und sie machen vollkommen Sinn. Um Ihre Frage zu beantworten, können Sie jedoch sicherlich Datenbankdateien kopieren, ohne die Datenbank offline zu schalten. Zu diesem Zweck müssen Sie die SMO-Programmierung verwenden. Überprüfen Sie dies: http://technet.microsoft.com/en-us/library/ms162175(v=sql.100).aspx
Bitte beachten Sie, dass der bereitgestellte Link auf allgemeine SMO-Programmierobjekte verweist und keine spezifische Antwort auf diese Frage darstellt. Ich habe es noch nicht getan, aber ich werde es bald ausprobieren und alle wissen lassen (wenn ich mich erinnere), was ich herausfinde.
quelle
Ja.
Sie müssen lediglich die Datenbank auf schreibgeschützt einstellen:
Lauf:
Kopieren Sie die Datenbankdateien - MDF, LDF usw. - an ihr neues Ziel
Sobald der Kopiervorgang abgeschlossen ist, können Sie den neuen Speicherort trennen und erneut anhängen. Stellen Sie einfach sicher, dass Sie die schreibgeschützte Option zurücksetzen und dass Sie bei der Bearbeitung dieser Dateien dasselbe Benutzerkonto verwenden. Möglicherweise möchten Sie auch die alten Dateien nach dem Verschieben löschen.
Eine andere Methode
Nachdem die Dateien erfolgreich kopiert wurden (Schritt 2 oben):
Sie können die Datenbank auf folgenden
Single_User
Modus einstellen :Lauf:
D:\
der neue Ort seinStellen Sie sicher, dass die Datendateien am neuen Speicherort (
D:\
) vollen Zugriff auf das Dienstkonto haben, auf dem SQL Server ausgeführt wird.Starten Sie die SQL-Dienste neu
Lauf:
Erledigt!
quelle