Ist es möglich, einen Teil einer Datenbank in sql-server zu sichern und wiederherzustellen?

19

Wir haben eine SQL Server 2005-Datenbank, die wir regelmäßig von unserer Client-Site auf unsere übertragen. Dies dauert lange, da wir keine direkte Verbindung haben und die Datei über ihre webbasierte Dateiübertragungsanwendung übertragen müssen. Die Datenbank ist derzeit etwa 10 GB groß, es werden jedoch nicht alle Daten benötigt. Der größte Teil davon befindet sich in Prüftabellen und Tabellen, die berechnete Werte enthalten, die erneut generiert werden können.

Ich habe mir überlegt, eine Dateigruppe für die Überwachungstabellen zu erstellen, und habe gehofft, dass ich nur die primäre Dateigruppe sichern und wiederherstellen kann. Ich kann gut sichern, aber beim Wiederherstellen erhalte ich die Fehlermeldung, dass ich es nicht in derselben Datenbank wiederherstelle. Ist es möglich, einen Teil einer Datenbank mithilfe von Dateigruppen auf einem anderen Server wiederherzustellen? Gibt es einen besseren Weg, dies zu tun?

Adam Butler
quelle
1
Lesen Sie diese Frage: Das kleinstmögliche Backup… mit SQL Server und insbesondere der Antwort von Brent.
Marian
Da dies ohne viel Hackergeist nicht möglich erscheint, sollten wir vielleicht alle Audit-Log-Tabellen in eine separate Datenbank verschieben
Adam Butler,
Wäre hierfür keine Codeänderung in der Anwendung erforderlich? Das ist ein bisschen viel, um den Kunden zu bitten, durchzugehen.
Shawn Melton

Antworten:

15

Um ehrlich zu sein, ist dies am einfachsten:

  • lokal eine Kopie sichern / wiederherstellen
  • unerwünschte Daten von der Kopie entfernen (mit DELETE oder TRUNCATE TABLE, nicht DROP ...)
  • Versenden Sie die Kopie

Ich würde mich wegen der zusätzlichen Komplexität, die Sie festgestellt haben, nicht mit Dateigruppen beschäftigen ...

gbn
quelle
1
Ich schlage vor, diese neu wiederhergestellte Datenbank auf ein einfaches Wiederherstellungsmodell umzustellen. msdn.microsoft.com/en-CA/library/ms189272.aspx
datagod
7

So wie Sie davon sprechen, nur die primäre Dateigruppe zu benötigen, scheint es mir, dass Sie nur die Datenbankstruktur und eine sehr kleine Datenmenge benötigen. Ich würde vorschlagen, wenn Sie nur eine Aktualisierung der Datenbankstruktur (Objekte, Tabellen usw.) wünschen, um einfach die Datenbank mit allen Objekten zu skripten. Dies ist mit PowerShell schnell und einfach möglich.

Dann exportieren Sie die tatsächlich benötigten Daten, die nicht wiederhergestellt werden können, einfach aus (ein PowerShell-Skript könnte dies auch tun). Ich bin sicher, dass die Exportdatei dann auf eine kleine Größe komprimiert und dann über die Verbindung zu Ihrer Site übertragen werden kann.

Genau wie in diesem Beispiel könnte der @ gbn-Vorschlag auch per Skript erstellt werden, sodass Sie selbst bestimmen können, welche Option am wenigsten Zeit in Anspruch nimmt.

Shawn Melton
quelle
2

Dies ist mithilfe der schrittweisen Wiederherstellung möglich . Die Objekte und Dateigruppen der Quelldatenbank müssen so organisiert sein, dass dies unterstützt wird. Für RESTORE sind zusätzliche spezifische Schlüsselwörter erforderlich.

Während das Konzept ein wenig gewöhnungsbedürftig ist, ist der Umfang des zu implementierenden Skripts nicht größer als der für andere vorgeschlagene Lösungen.

Michael Green
quelle
-1

Klicken Sie mit der rechten Maustaste und generieren Sie Skripte. Ändern Sie dann den Namen der Datenbank in target (USE db).

erklärt hier

Jude
quelle
Was stimmt damit nicht?
Judas