관리 메뉴

RUBY

[220613] MSSQL _ 01. 백업 종류 (Full, Differential, Transaction) 본문

데이터베이스/MSSQL

[220613] MSSQL _ 01. 백업 종류 (Full, Differential, Transaction)

ruby-jieun 2022. 6. 13. 17:04

 

 

 

 

 

MSSQL 파일 타입

 

 

 

 

 

1. Primary Data files (주 데이터 파일)

 

- Primary Data filesDataBase의 시작 지점이며, DataBase의 나머지 파일을 가리킵니다.
- 모든 DataBase에는 하나의 주 Primary Data files이 있습니다.
- 권장되는 Primary Data files 확장명은 .mdf입니다.

 

 

 

2. Secondary Data files (보조 데이터 파일)

 

- Secondary Data filesPrimary Data files이 아닌 모든 Data files을 구성합니다.
- DataBase에 따라 Secondary Data files이 없을 수도 있고 여러개 있을 수도 있습니다.
- 권장되는 Secondary Data files 확장명은 .ndf입니다.

 

 

 

3. Log files (로그 파일)

 

- Log files에는 DataBase를 복구하는데 사용되는 모든 Log 정보가 들어있습니다.
- DataBase에 Log files이 2개 이상 있을 수 있으며 DataBase마다 적어도 하나의 Log 파일이 있어야 합니다.
- 권장되는 Log files 확장명은 .ldf입니다.

 

 

 

 

 

 

 

MSSQL 백업 종류

 

 

 

 

 

1. Full Backup (전체 백업)

 

< Full Backup 전체 백업 >

- .mdf files에 들어있는 모든 DataBackup받는다.
- Full Backup이 이루어지는 동안에도 Transaction이 계속 진행되기 때문에 실제로 아직 Commit되지 않은 작업이 Backup 시 포함될 수 있다.
  * 그렇기에 이 Backup을 Restore(회복)했을 때 Commit되지 않은 Data가 들어있으면 오류가 발생할 수 있다.
  * 그래서 실제로 Full Backup을 받을 때는 현재 진행중인 Transaction에 대한 Transaction log도 함께 Backup된다.
- Full Backup이 보관되어 있지 않다면, Differential Backup이나 Transaction log backup을 활용할 수 없다.

 

 

2. (1) Differential Backup (차등 백업)

 

 

< Differential Backup 차등 백업 >

 

컴퓨터 시스템에서 전체 백업 이후의 변경 사항을 모든 백업하는 방식. 증분 백업(incremental backup)보다 백업 데이터량이 커진다는 단점이 있지만 복구 시 전체 백업본(full backup)과 차등 백업본 각각 하나씩만을 필요로 하므로 더 빠른 시간 안에 복구가 가능하다는 장점이 있다.

 

 

   (2) Incremental Backup (증분 백업)

 

 

< Incremental Backup 증분 백업 >

 

전체 백업 또는 증분 백업이 수행된 후 변경된 사항을 선택적으로 백업하는 방식. 전체 백업보다 백업 데이터량이 적고 백업 소요 시간이 짧다는 장점이 있으나 전체 백업에 종속적이라는 단점이 있다. 증분 백업이 많을수록 복구에 오랜 시간이 소요되므로 최소한 일 주일에 1회 이상 전체 백업을 수행하는 것이 권장된다.

 

 

3. Synthetic Backup (합성 백업)

 

 

< Synthetic Backup 합성 백업 >

 

기존의 전체 백업본과 여러 개의 증분 백업본을 하나로 통합하는 백업. 데이터 복구 성능을 향상시키고 네트워크 대역폭의 사용량을 최소화하는 기능이다.

 

4. Duplication Backup

 

 

< Duplication Backup 중복(이중) 백업>

 

한 개의 파일 혹은 여러개의 파일에서 동일한 부분은 하나만 저장하고 나머지 파일 구조는 메타 데이터로 따로 저장하여 백업 저장소와 백업 데이터를 줄일 수 있다.
증분/차등 백업 그리고 중복제거 변경된 파일을 가져온다는 의미에서 큰 차이점이 없다.
중복제거기술은 섹터 단위로 파일을 검사하기 때문에 변경된 섹터의 값만 다시 백업한다.

 

 

 

5. Transaction Log Backup(로그 백업)

 

* Transaction Log
  - SQL Server에서 실행되는 모든 SQL문을 기록한 로그
  - 어느 Session이 어떤 SQL을 실행했는지가 순차적으로 기록됨
  - Transaction을 Rollback 시켰을 때 Begin Tran 시점 이전으로 되돌릴 수 있는 것은
    Transaction을 시작한 이후의 모든 작업내용이 Transaction Log에 기록되어 있기 때문이다.

 

* Log Backup은 위의 Data Backup과는 다른 몇 가지 특성이 있다.

1. Backup 된 Transaction Log는 자동으로 삭제된다.
   이 때, ldf파일 사이즈가 줄어들지는 않지만, ldf 내에서 Log가 삭제되기 때문에 해당 ldf file에는 새로운 Log를 기록할 수 있는 빈 공간이 확보된다. 따라서 주기적으로 Transaction Log를 Backup 받으면, 별도로 Log 를 삭제하지 않더라고 ldf file 이 계속 커지는 것을 방지할 수 있다.

2. Transaction Log는 가지고 있는 최신 Full Backup 혹은 Full Backup + DifferentialBackup Set로 부터 복원을 원하는 시점까지의 모든 Backup 본이 존재하지 않으면 아무 의미가 없다.

3. Transaction Log가 온전하다며 Fault가 발생한 Database를 Fault 발생 직전의 시점으로 복원할 수 있다. 또한, 특정 시점으로의 RollBack 등 미세한 복원이 가능하다.

 

 

Comments