SQL Backup занимает все мое место на жестком диске

У меня есть работа, которую я запускаю каждый день для резервного копирования базы данных SQL. Я только что купил новый сервер группы и собирался передать резервную копию базы данных новому серверу и восстановить его. Наша база данных не такая большая, как большинство компаний, ее размер составляет всего 40 ГБ. Мы пошли, чтобы пойти и скопировать резервную копию, я заметил, что полное погружение было полным, на котором оно хранилось, и резервная копия имела размер 900 ГБ. Я использовал одну и ту же работу в разных версиях SQL, и резервное копирование базы данных никогда не росло так.

  • Под управлением Windows Server 2008 R2
  • Запуск SQL Server 2008 R2 Ent
  • 64 бит

Я не уверен, что я написал что-то не так с работой, вот код для этого:

РЕЗЕРВНАЯ БАЗА ДАННЫХ [БАЗА ДАННЫХ] ДЛЯ ДИСКА = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.COMPANY\MSSQL\Backup\DATABASE.BAK'С NOFORMAT, NOINIT, ИМЯ = N'DATABASE', Пропустить, NOREWIND, NOUNLOAD, STATS = 10 GO объявляет @backupSetId как int select @backupSetId = позиция из msdb..backupset, где database_name=N'DATABASE'и backup_set_id=(выберите max(backup_set_id) из msdb..backupset, где database_name=N'DATABASE'), если @ Параметр backupSetId имеет значение null begin raiserror(сбой N'Verify. Информация резервной копии для базы данных '' DATABASE '' не найдена.', 16, 1) \ MSSQL \ Backup \ DATABASE.BAK 'С ФАЙЛОМ = @backupSetId, ЗАГРУЗИТЬ, NOREWIND GO

(Я добавил теги кода, но по какой-то причине они не взяли)

Может кто-нибудь сказать мне, почему резервная копия моей базы данных продолжает расти? Спасибо за помощь заранее.

3 ответа

NOINIT = Указывает, что набор резервных копий добавляется к указанному набору носителей, сохраняя существующие наборы резервных копий.

Ваши резервные копии добавляются. Если вы не хотите, чтобы резервная копия продолжала расти, вам нужно использовать INIT.

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

Это добавление к концу каждый раз, когда это резервное копирование.

Как сказали DanBig и joeqwerty, ваши резервные копии добавляются в один и тот же файл. Если вы хотите сохранить версии без добавления или перезаписи, создайте отдельные датированные файлы. Например:

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
Другие вопросы по тегам