SQL Backup nimmt meinen gesamten Festplattenspeicher ein

SQL Backup nimmt meinen gesamten Festplattenspeicher ein

Ich habe einen Job, den ich jeden Tag ausführe, um meine SQL-Datenbank zu sichern. Ich habe gerade einen brandneuen Server gekauft und wollte das Datenbank-Backup auf den neuen Server übertragen und wiederherstellen. Unsere Datenbank ist nicht so groß wie die der meisten Unternehmen, sie ist nur 40 GB groß. Als ich das Backup kopieren wollte, bemerkte ich, dass die Festplatte, auf der es gespeichert war, voll war und das Backup 900 GB groß war. Ich habe denselben Job mit verschiedenen SQL-Versionen verwendet und das Datenbank-Backup ist nie so groß geworden.

  • Ausführen von Windows Server 2008 R2
  • Ausführen von SQL Server 2008 R2 Ent
  • 64 Bit

Ich bin nicht sicher, ob ich beim Job etwas falsch geskriptet habe, hier ist der Code dafür:

DATENBANK [DATENBANK] AUF FESTPLATTE BACKUP = N'C:\Programme\Microsoft SQL Server\MSSQL10_50.COMPANY\MSSQL\Backup\DATABASE.BAK' MIT NOFORMAT, NOINIT, NAME = N'DATABASE', ÜBERSPRINGEN, NOREWIND, NOUNLOAD, STATS = 10 GO @backupSetId als int deklarieren @backupSetId auswählen = Position aus msdb..backupset, wobei Datenbankname=N'DATABASE' und Backup_Set_ID=(max(Backup_Set_ID) aus msdb..backupset auswählen, wobei Datenbankname=N'DATABASE') wenn @backupSetId null ist, Raiserror beginnen (N'Überprüfung fehlgeschlagen. Sicherungsinformationen für Datenbank ''DATABASE'' nicht gefunden.', 16, 1) beenden NUR ÜBERPRÜFEN VON FESTPLATTE WIEDERHERSTELLEN = N'C:\Programme\Microsoft SQL Server\MSSQL10_50.COMPANY\MSSQL\Backup\DATABASE.BAK' MIT DATEI = @backupSetId, NOUNLOAD, NOREWIND GO

(Ich habe die Code-Tags hinzugefügt, aber aus irgendeinem Grund wurden sie nicht übernommen)

Kann mir jemand sagen, warum mein Datenbank-Backup immer größer wird? Vielen Dank im Voraus für die Hilfe.

Antwort1

NOINIT = Gibt an, dass der Sicherungssatz an den angegebenen Mediensatz angehängt wird und vorhandene Sicherungssätze erhalten bleiben.

Ihre Backups werden angehängt. Wenn Sie nicht möchten, dass das Backup weiter wächst, müssen Sie INIT verwenden.

http://technet.microsoft.com/en-us/library/ms186865.aspx

Antwort2

Es wird bei jedem Sichern an das Ende angehängt.

Antwort3

Wie DanBig und joeqwerty sagten, werden Ihre Backups an dieselbe Datei angehängt. Wenn Sie Versionen behalten möchten, ohne sie anzuhängen oder zu überschreiben, erstellen Sie einzelne datierte Dateien. Beispiel:

Declare @DBname varchar(255),
        @SQL nvarchar(max), 
        @today nvarchar(50),
        @servername nvarchar(50)

set @today = convert(nvarchar,GETDATE(),12)  
set @servername = REPLACE(@@SERVERNAME,'\','-')
set @DBName = 'YourDB'

set @SQL='BACKUP DATABASE [' + @DBName + '] TO  DISK = N''c:\some backup path\' + @servername + '-' + @DBName + '-' + @today + '.bak'' WITH FORMAT, INIT,  NAME = N''Full ' + @DBName + ' Database Backup'', SKIP, NOREWIND, NOUNLOAD,  STATS = 10'
EXEC SP_EXECUTESQL @SQL

verwandte Informationen