Ich habe eine Legacy-Datenbank, auf deren albtraumhaften Mangel an Design ich hier nicht eingehen werde, aber die Dateien auf dem Server sind (relativ) riesig. Ich habe:
MyDatabase.mdf: 24,8
GB MyDatabase.ldf: 114,6 GB
Diese Datenbank wird jede Nacht in einer .bak-Datei gesichert und an unseren Berichtsserver gesendet, wo sie wiederhergestellt wird. Die .bak-Datei ist mit nur 1,8 GB viel kleiner.
Wenn ich jedoch versuche, es auf dem Berichtsserver wiederherzustellen, schlägt dies aufgrund unzureichenden Speicherplatzes fehl. Auf dem Server sind ungefähr 100 GB frei, und es wird versucht, die gesamten 139,4 GB zu verbrauchen, die die Dateien auf dem ursprünglichen Server verbraucht haben. Sofern meine Kenntnisse über die Komprimierung nicht schrecklich falsch sind, bin ich ziemlich sicher, dass die 1,8-GB-Datei nicht tatsächlich um 7400% erweitert wird.
Meine Frage: Gibt es eine Möglichkeit, SQL Server anzuweisen, diese Sicherungsdatei wiederherzustellen, ohne diesen Speicherplatz im Voraus zu reservieren? Ich kümmere mich nicht um eines der Protokolle; Ich brauche nur die Daten, um dort zu sein. Ich verstehe Datenbanken aus der Entwicklungs- und Schema-Perspektive, aber ich bin keineswegs irgendeine Art von DBA.
Dies ist auf SQL Server 2008 R2. Vielen Dank für jede Hilfe oder Anregungen.
quelle
Mit SQL Server 2012 kann nur die Datenbank-MDF-Datei verwendet und an SQL Server angehängt werden : http://msdn.microsoft.com/en-us/library/ms174385.aspx . SQL Server erstellt eine brandneue ldf-Datei, in der Sie die Größe angeben können. Dann:
quelle