[SQL Server] T-SQL로 날짜별 DB 백업 파일 생성하기

DB와 로그를 sql 쿼리문으로 백업할 때 날짜별로 백업 파일을 생성해서 누적하면 백업 파일 관리가 편리합니다.

T-SQL로 백업할 파일의 이름을 날짜 기준으로 다음과 같이 생성할 수 있습니다.

@fname 변수를 하나 만들어서 DB백업과 로그 백업 파일을 생성할 때 돌려서 사용하면 편리합니다.

DECLARE @fname NVARCHAR(256);

-- db
set @fname='d:\APOSTDEV\DBBackup\APOSTDEV_' + CONVERT(VARCHAR(8), GETDATE(), 112) + '_' + right ('00'+ltrim(str( DATENAME(hh, GETDATE()))),2 ) + right ('00'+ltrim(str( DATENAME(mi, GETDATE()))),2 ) + right ('00'+ltrim(str( DATENAME(ss, GETDATE()))),2 ) + '.bak';
Backup Database APOSTDEV To Disk = @fname;

-- transaction log
set @fname='d:\APOSTDEV\DBBackup\APOSTDEV_' + CONVERT(VARCHAR(8), GETDATE(), 112) + '_' + right ('00'+ltrim(str( DATENAME(hh, GETDATE()))),2 ) + right ('00'+ltrim(str( DATENAME(mi, GETDATE()))),2 ) + right ('00'+ltrim(str( DATENAME(ss, GETDATE()))),2 ) + '.trn';
Backup LOG APOSTDEV To Disk = @fname;

"d:\APOSTDEV\DBBackup\" 디렉토리 아래 "APOSTDEV" DB의 백업 파일명이 "APOSTDEV_20241231_013005.bak", "APOSTDEV_20241231_013005.trn" 처럼 생성되면서 "년월일_시분초"로 백업 파일을 구분할 수 있게 됩니다.

모자라는 자리수는 0으로 채워서 파일 이름 길이를 맞추기 때문에 깨끗하게 정렬된 파일 목록이 생성됩니다.