2018. 7. 18. 10:56

DB 복구 모델 종류와 차이점.


# 데이터베이스 복구 모델의 종류 및 차이점

1) 단순(Simple)
- 트랜잭션 로그를 자동으로 삭제
- 데이터가 중요하지 않고, 쉽게 재생성이 가능한 경우
- 테스트나 개발에 사용하는 DB
- 마지막 백업 이후의 데이터는 복구 불가능. 백업을 하지 않은 경우에는 데이터 복구 불가능
- 트랜잭션 로그를 백업할 수 없음

2) 대량 로그(Bulk Logged)
- 데이터가 중요하지만, 대량의 벌크 로그는 로그를 남기지 않도록 할 경우(BULK INSERT, CREATE INDEX, SELECT INTO, 기타 등등)
- 벌크 로그가 생성되는 명령을 사용하지 않고, 사용하더라도 특별한 경우에만 이용하는 경우
- 장애가 발생한 시점까지 복구 가능하나 원하는 시점까지 복구는 불가능

3) 전체(Full)
- 모든 트랜잭션을 로그에 기록
- 데이터가 중요하고, 벌크 로그도 중요한 경우
- 문제 발생 시점까지 복구 가능하고 원하는 시점까지도 복구 가능
- 데이터베이스 미러링에서는 반드시 전체(Full) 복구 모델이 필요


# 전체 로그 용량 보기 


dbcc sqlperf(logspace)



## T-SQL을 이용한 방법
다음과 같은 명령을 이용하여 복구 모델을 변경할 수 있습니다.


-- set to Full recovery

ALTER DATABASE AdventureWorks SET RECOVERY FULL

GO

-- set to Bulk Logged recovery

ALTER DATABASE AdventureWorks SET RECOVERY BULK_LOGGED

GO


-- set to Simple recovery

ALTER DATABASE AdventureWorks SET RECOVERY SIMPLE

GO