1. 개요
MSSQL Express 버전은 백업 스케쥴러가 없어서 스크립트로 백업해야한다.
2. SQL문 작성
-- Format -- DECLARE @DIR NVARCHAR(100) DECLARE @BACKUPNAME NVARCHAR(100) SET @DIR = N'[폴더명]\[파일명]_' + CONVERT(NVARCHAR(20), GETDATE(), 112) + N'.BAK' SET @BACKUPNAME = N'[폴더명]\[파일명]_' + CONVERT(NVARCHAR(20), GETDATE(),112) + N'.BAK' BACKUP DATABASE [DB] TO DISK = @DIR WITH NOFORMAT, NOINIT, NAME = @BACKUPNAME, SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO -- Example -- DECLARE @DIR NVARCHAR(100) DECLARE @BACKUPNAME NVARCHAR(100) SET @DIR = N'E:\DBbackup\master_' + CONVERT(NVARCHAR(20), GETDATE(), 112) + N'.BAK' SET @BACKUPNAME = N'E:\DBbackup\master_' + CONVERT(NVARCHAR(20), GETDATE(),112) + N'.BAK' BACKUP DATABASE [master] TO DISK = @DIR WITH NOFORMAT, NOINIT, NAME = @BACKUPNAME, SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO
3. bat 파일 생성
:: Format :: 10일 이전 파일 SQLCMD -S [컴퓨터명] -i [SQL 파일] mkdir [백업 폴더] move /y [백업 폴더]\* E:\[백업 폴더]\%date% forfiles /P [백업 폴더] /d -10 /c "cmd /c rmdir /s /q @fname" :: Example SQLCMD -S [ServerName] -i E:\DBscript\MSSQLbackup.sql mkdir E:\BackupDB\%date% move /y E:\BackupDB\* E:\BackupDB\%date% forfiles /P E:\BackupDB\ /d -10 /c "cmd /c rmdir /s /q @fname"
4. 스케쥴러 등록