본문 바로가기

프로그래밍 학습/SQL

[MSSQL] 데이터베이스 백업과 복원의 개념

728x90

복구모델 종류


전체 복구모델

데이터베이스에 문제가 발생했을 때 문제가 발생한 시점까지 복구가 가능한 모델

데이터가 변경되는 모든 작업과 내용이 로그파일에 기록되기 때문에 가능

전체백업, 차등백업, 로그백업이 가능

현업에서 가장 많이 쓰임.



대량 로그 복구모델

대량 로그작업인 Create index, Select Into 등의 발생기록만 복구.

전체 복구 모델과 마찬가지로 문제가 발생한 시점까지는 복구가 가능하지만 원하는 위치로는 안됨.


단순복구모델

로그파일에 아무것도 기록되지가 않는다. SQL Server가 로그 파일을 관리해서 알아서 비움.

마지막에 백업 받은 데이터까지만 복구가 가능.


백업모델 종류


전체 백업(Full Backup)

말 그대로 데이터베이스 전체를 백업한다는 뜻.

데이터베이스의 개체, 시스템 테이블, 데이터를 모두 백업.

백업이 진행되는 동안 발생되는 트랜잭션 로그 중 필요한 부분도 백업.

전체 백업을 받기 전에 백업될 데이터베이스의 크기를 sp_spaceused로 체크해야함.


-처음 데이터베이스를 생성했을때

-로그를 강제로 비웠을 때

-데이터베이스에 변경이 생겼을 때


구문형식

BACKUP DATABASE 디비명 TO 백업할 파일 또는 장치.

예) BACKUP DATABASE TEST TO "C:\백업폴더\test.bak"  -> 폴더가 미리 생성되어 있지 않으면 오류발생


차등백업(Differential Backup)

마지막 전체 백업 이후에 변경된 모든 데이터를 백업.

전체백업 받은 이후에 수행해야 한다.


구문형식

BACKUP DATABASE 디비명 TO 백업할 파일 또는 장치 WITH DIFFERENTIAL


트랜잭션 로그 백업

로그 백업은 실제 데이터파일의 내용을 백업하는 것이 아니라 로그 파일에 기록된 로그를 백업하는 것.

insert, update, delte문들이 주로 기록되어 있음.


BACKUP LOG 디비명 TO 백업할 파일 또는 장치 


부분백업(Partial Backup)

전체백업과 비슷하지만 읽기 전용 파일그룹은 백업하지 않는 개념

주파일 그룹과 읽기/쓰기 파일 그룹만을 백업.


구문형식

BACKUP DATABASE 디비명 READ_WRITE_FILEGROUPS TO 장치