본문 바로가기
인프라

Microsoft SQL Server Express 자동 백업하기

by 아이티이즈 2019. 7. 9.

MS SQL Express 는 무료로 사용할 수 있는 Database 입니다.

10GB 의 용량 제한이 있지만 작은 규모의 업무시스템, 웹서버 등에 사용할 수 있습니다.

 

Microsoft Sql Express 다운로드

https://www.microsoft.com/ko-kr/sql-server/sql-server-editions-express

 

SQL Express는 무료 버전이다 보니 상용버전에서 제공하는 기능중 일부가 빠져 있습니다.

그중에서 자동 백업 기능을 지원하지 않기 때문에 백업은 수동으로 받아야 합니다.

 

sqlcmd 의 백업 명령어와 작업스케쥴러를 이용해서 자동으로 백업이 가능하도록 설정 할 수 있습니다.

 

백업 실행을 위한 SQL 파일 생성

backup.sql 이라는 파일을 생성하고 다음과 같이 내용을 작성한 후 저장합니다.

/*날자별 백업*/
declare @dir nvarchar(100)
set @dir=N'D:\backup\database\DB-'+convert(nvarchar(20), getDate(), 112) +N'.bak'
BACKUP DATABASE dzicube TO DISK = @dir
GO

날자별로 백업 파일을 생성 하는 쿼리 입니다.

@dir 변수를 선언하고 변수에 백업 파일의 생성 경로와 파일명을 입력해 줍니다.

파일명 은 DB-20190708.bak(DB-<백업일자>) 형식으로 저장됩니다.

 

convert 형식 뒤의 112 는 날자를 yyyymmdd 형식으로 표시하라는 의미 입니다.

SQL Convert 의 Data Time  형식은 아래 링크를 참조하시면 됩니다.

https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-2017

 

 

Windows 관리도우의 작업 스케쥴러를 실행합니다.

 

오른쪽의 기본작업 만들기를 클릭합니다.

 

작업의 이름을 입력합니다.

 

실행 주기를 설정합니다. 매일, 매주, 매월, 한 번 등으로 설정 할 수 있습니다.

 

작업을 실행할 시간을 설정 합니다.

작업의 동작은 프로그램 시작을 선택합니다.

 

프로그램 시작 설정부분에서 실제로 실행될 명령어를 설정 해야 합니다.

프로그램/스크립트 부분에 "sqlcmd" 를 입력하시고

인수 추가(옵션) 부분에 "-S localhost -E -i D:\mssql_bak\script\backup.sql" 를 입력해 주시면 됩니다.

< D:\mssql_bak\script\backup.sql 부분은 본인의 스크립트 파일 저장 경로로 설정해야 합니다. >

 

해당 스케쥴을 실행하시면 명령프롬프트 창에서 백업 명령어가 실행되며 지정된 파일 위치에 백업된 파일을 저장합니다.