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 files은 DataBase의 시작 지점이며, DataBase의 나머지 파일을 가리킵니다.
- 모든 DataBase에는 하나의 주 Primary Data files이 있습니다.
- 권장되는 Primary Data files 확장명은 .mdf입니다.
2. Secondary Data files (보조 데이터 파일)
- Secondary Data files은 Primary 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 (전체 백업)

- .mdf files에 들어있는 모든 Data를 Backup받는다.
- 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 (차등 백업)

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

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

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