MSSQL

MSSQL Express 백업 설정

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. 스케쥴러 등록

 

Back To Top