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

[MS-SQL] 데이터베이스 복구 모델 / 데이터베이스 복원

by jionee 2022. 11. 8.
SMALL

데이터 베이스 복구 모델

 

 

 

1. 단순 복구 모델  (Simple)

데이터가 변경되는 내용을 로그 파일에 기록하지 않음  (마지막으로 백업된 시점까지만 복구 가능)

SQL Server(DBMS)가 로그 파일을 전적으로 관리하는 모델이며, DBMS가 메모리와 HDD의 Sync를 맞추는 시점마다 Sync 작업 후 트랜잭션 로그를 삭제함

더보기

*** 단순 복구 모델을 선택하는 경우

- 오류 지점 복구가 필요하지 않음 (데이터 베이스가 손실 되거나 손상될 경우 오류 지점 이전 백업 사이의 모든 업데이트가 손실되어도 상관없음

- 트랜잭션 로그를 백업 및 복원하지 않고 전적으로 전체 및 차등 백업을 사용하려고 할 때

 

 

 

2. 전체 복구 모델 (Full)

데이터가 변경되는 모든 작업과 내용을 로그 파일에 기록  (장애가 난 최근 시점까지 복구 가능)

Default로 설정되어 있는 복구 모델

모든 작업에 대해 로그가 기록되므로, 로그 데이터가 가장 많이 쌓이고 성능이 가장 떨어짐

더보기

*** 전체 복구 모델을 사용하는 경우 

- 모든 데이터를 복구할 수 있어야함

- 실패 지점까지 복구 할 수 있어야함

- 트랜잭션 로그 백업의 관리 비용이 발생해도 괜찮음

 

 

 

3. 대량 복구 모델 (Bulk_logged)

대량 로그 작업이 발생할 경우에만 로그 파일에 이러한 작업이 일어났다는 것을 기록함

대량 로그 작업이 일어난 이후에 추가되거나 변경된 내용은 트랜잭션 로그 파일에 기록하지 않음

로그가 더 적게 남게되고 성능이 Full 모델이 비해 더 높음

 

 

 

 

 

데이터베이스 복구 모델 변경 (Query)

-- 복구 모델 확인
SELECT DATABASEPROPERTYEX('데이터베이스명','recovery');

 
-- 단순 복구 모델로 설정
ALTER DATABASE 데이터베이스명 SET RECOVERY SIMPLE

 
-- 전체 복구 모델로 설정
ALTER DATABASE 데이터베이스명 SET RECOVERY FULL


-- 대량 로그 복구 모델로 설정
ALTER DATABASE 데이터베이스명 SET RECOVERY BULK_LOGGED;

 

 

 

 

데이터베이스 복구 모델 변경 (SSMS)

데이터베이스 우클릭 > 속성 > 옵션 > 복구 모델

 

 

 

 

 

 

데이터 베이스 복원

 

 

SQL 서버 복원은 3가지만 하면 됨

1. 가장 마지막 전체 백업 복원

2. 그 전체 백업 이후로 마지막 차등 백업 복원

3. 그 마지막 차등 백업 이후로 모든 로그 백업 복원

 

 

 

 

 

데이터베이스 복원 (.bak)

데이터베이스 우클릭 > 데이터베이스 복원 > 디바이스 

 

 

 

데이터베이스 복원 (.mdf)

데이터베이스 우클릭 > 연결 > 추가 

mdf 파일,  ldf 파일만으로도 복원이 가능

 

댓글