본문 바로가기
Database & Bigdata/MS-SQL

[MS-SQL] 백업 종류 (Full/Differential/Transaction) / MS-SQL 백업 유형 선택(SSMS)

by jionee 2022. 11. 3.
SMALL

 

1. Full Backup (전체 백업)

https://12bme.tistory.com/443

  • .mdf 파일에 들어있는 모든 데이터를 백업 받음
  • Full Backup이 이루어지는 동안에도 트랜잭션이 계속 진행될 수 있는데, 이때 커밋된 트랜잭션에 대한 로그들도 모두 함께 백업 됨
-- Full Backup Query
BACKUP DATABASE TESTDB TO DISK = 'C:\backup\TESTDB.bak'
WITH INIT, NAME = 'TESTDB_bak_221104' --INIT 옵션 : 미디어 헤더만 보존하고 모든 백업 세트를 덮어씀

 

 

 

 

 

 

2. Differential Backup (차등 백업)

https://12bme.tistory.com/443

  • 가장 마지막에 Full Backup 받은 이후의 모든 변경 부분에 대한 백업
  • 백업 본을 활용한 복구 시, Full Backup 본 + Differential Backup 본을 모두 백업 소스 파일로 추가해야 정상 복구 가능
-- Differential Backup Query
BACKUP DATABASE TESTDB TO DISK = 'C:\backup\TESTDB_diff.bak'
WITH DIFFERENTIAL, STATS=10, INIT, NAME = 'TESTDB_diff_221104' -- STATS 옵션 : percentage가 완료될 때 마다 메시를 표시해 진행상태 측정

 

 

*** MS-SQL 에는 Incremental Backup(증분 백업)이라는 개념 없음

증분백업은 마지막에 받은 Differential Backup 이후의 변경/추가된 Data 백업하는 방식

https://12bme.tistory.com/443

 

 

 

 

 

3. Transaction Log Backup (로그 백업)

  • 트랜잭션 로그란 SQL Server에서 실행되는 모든 SQL문을 기록한 로그
  • 일단 백업된 트랜잭션 로그는 자동으로 삭제 됨 (ldf 파일 사이즈가 줄어들진 않으나 ldf 내에서 로그가 삭제 되기 때문에 ldf 파일에는 새로운 로그를 기록할 수 있는 빈 공간이 확보됨)
  • 트랜잭션 로그는 가지고 있는 최신 Full Backup 혹은 Full Backup + Differential Backup 세트로 부터 복원을 원하는 시점까지의 모든 백업존이 존재하지 않으면 아무 의미가 없음
  • 트랜잭션 로그가 온전하다면 Fault가 발생한 Database를 Fault 발생 직전의 시점으로 복원 가능
  • 특정한 시점으로 Rollback 등의 미세한 복원이 가능
-- Transaction Log Backup
BACKUP LOG TESTDB TO DISK = 'C:\backup\TESTDB_log.trn'

 

 

 

 

4. 파일, 파일 그룹 백업

  • 대용량 데이터베이스가 장애로 인해 전체 데이터베이스 복원을 해야한다면 소요시간이 길어지므로 파일 그룹이 나눠져 있다면 파일 그룹별로 백업 하여 down-time 축소
  • 복원 시 primary 파일 그룹을 가장 먼저 복원하고 그 다음 파일 그룹을 순차적으로 복원 가능
-- File Group Backup
BACKUP DATABASE TESTDB FILEGROUP = 'PRIMARY' TO DISK = 'C:\backup\TESTDB_FILEGROUP.bak'

 

 

 

 

  • MS-SQL 백업 유형 선택하는 법(SSMS)

DB 탐색기 > 태스크 > 백업

페이지 선택 > 일반 > 백업 유형 > 전체/차등/트랜잭션 로그 선택

 

 

댓글