아래 스크립트문을 실행시 " DUMP TRAN @Name WITH Truncate_only " 이부분에서 에러가 발생합니다
그리고 날짜별(월화수목금토일)로 7개의 백업파일을 만들고 8일째는 처음백업파일 자동삭제되게
하고 싶어요
Ex) DB명_(월).bak, DB명_(화).bak, DB명_(수).bak, DB명_(목).bak, DB명_(금).bak, DB명_(토).bak, DB명_(일).bak
또는
DB명_20160101.bak, DB명_20160102.bak, DB명_20160103.bak, DB명_20160104.bak, DB명_20160105.bak, DB명_20160106.bak, DB명_20160107.bak
8일째는 DB명_20160101.bak 이파일삭제되고 DB명_20160108.bak 생성됨
DECLARE @BackupName VARCHAR(255)
DECLARE @BackupFileName VARCHAR(255)
DECLARE @Name VARCHAR(255), @Dir VARCHAR(255), @QUERY VARCHAR(4000)
DECLARE @COUNT int, @Remain int
SET @COUNT = 30
SET @Name = 'DB명'
SET @Dir = 'D:\Backup'
-- 백업 유지일수
SET @Remain = 7
SET @BackupName = @Name + '_' + convert(nvarchar(20), getdate(), 112) + N'.bak'
SET @BackupFileName = @Dir + '\' + @BackupName
BACKUP DATABASE @Name TO
DISK = @BackupFileName WITH NOFORMAT, NOINIT,
NAME = @BackupName, SKIP, REWIND, NOUNLOAD, STATS = 10
DUMP TRAN @Name WITH Truncate_only
DBCC SHRINKDATABASE (@Name, 0)
WHILE(@COUNT > 0)
BEGIN
SET @BackupName = @Name + '_' + convert(nvarchar(20), DATEADD(dd, -(@COUNT + @Remain)+1, GETDATE()), 112) + N'.bak'
SET @BackupFileName = @Dir + '\' + @BackupName
SET @QUERY = 'master..xp_cmdshell ' + '''DEL /S /Q ' + @BackupFileName + '''' + ', no_output'
EXEC(@QUERY)
SET @COUNT = @COUNT - 1
END
|