프로그래밍/DB

[DB] MSSQL 데이터베이스(DB)백업 및 복원.(영문버전)

ss-pro 2020. 9. 29. 00:06
반응형

이번시간에는 MSSQL 2019버전으로 데이터베이스 백업 및 복원하는 방법에 대해 알아보도록 하겠습니다. 
먼저 SQL Management Studio를 실행하여 로그일을 합니다. TEST데이터베이스가 있다고 가정하고 해보도록 하겠습니다. 영문판이 설치되어 있는관계로 영문버전기준으로 설명드리겠습니다.

TEST DB에 마우스오른쪽 버튼을 클릭 -> Task -> Back Up항목을 선택합니다. 

 

 

Backup Type을 Full(전체)로 하여 백업하도록 하겠습니다. 폴더를 지정하지 않으면 "C:\\Program Files\\Microsoft SQL Server\\MSSQL15.MSSQLSERVER\\MSSQL\\DATA" 하위폴더에 백업파일이 생성됩니다. 

백업방법
1. 전체백업(Full) 
전체데이터를 백업하는 방식입니다. 
2.차등백업(Diffrential)
차등 백업 만들기는 전체 백업 만들기에 비해 매우 빠를 수 있습니다. 차등 백업은 차등 백업의 기반이 되는 전체 백업 이후 변경된 데이터만 기록합니다
3.트랜잭션로그백업(Transaction Log) 
SQL에서 수행하는 트랙잭션(INSERT,UPDATE,DELETE)에 대한 로그에 대한부분의 백업을 합니다. 해당부분을 백업해두면향후 시스템이 문제가 되었을때 해당시점으로 복구가 가능합니다. 시스템별로 다르겠지만 실제로 1번정도 사용해보기 하였으나 많이 사용안되는 경우도 있습니다. 로그를 백업하지 않을경우 파일이 계속 커지므로 시스템 속도저하가 발생될수 있어 주기적으로 백업을 받는게 좋습니다. 

 

 

백업방식을 선택후 OK를 클릭하면 확장자가 .bak인 백업파일이 생성됩니다. 
이제 백업된 파일을 복구해보도록 하겠습니다. 해당데이터베이스가 있는경우와 없는경우에 대해서 살펴보도록 하겠습니다. 

복원방법
1. TEST DB가 존재하고 있는경우
이미 TEST라는 DB명칭을 가진DB가 있을경우에 복구하는 방법입니다.

 

 

데이터베이스선택 -> Tasks->Restore->Database항목을 선택합니다. 

 

 

복구하고자 하는 백업파일을 선택한후 OK버튼을 클릭하면 해당시점의 데이터로 복구가됩니다. 

 

 

간혹 데이터베이스가 사용중이거나 복구가 되지 않을경우에는 Options항목에서 강제로 Overwrite하는 옵션을 체크해서 복구하면됩니다. 

 

 


2. TEST DB가 없는경우 
DataBases항목에서 마우스오른쪽 버튼을 클릭하셔 Restore Database항목을 선택합니다. 

 

 

Soucre부분을 Device로 선택하고 복구하고자하는 파일을 찾아서 ADD버튼으로 누른후 OK버튼을 클릭합니다. 해당부분으로 진행하면 restored successfully와 같이 복구 성공메세지가 나타납니다. 

 

 

백업과 복구하는 방법을 알아보았습니다. 그럼 백업을 주기적으로 하기위해서는 특정주기로 백업을 할 수 있도록 스케쥴을걸어야합니다. SQL Agent서비스를 이용해서 사용가능합니다. Express버전의 경우는 지원이 되지 않으니 해당버전은 별도 SW로 구축하여야 합니다. 

작업스케쥴러를 통한 백업스케쥴 설정
Maintenace Plans항목에 DB백업,DB로그백업,DB파일정리(1주일전) 3가지 작업순으로 진행해보겠습니다. 
DB 백업 : Maintanance Plan선택후 진행

 

 

작업명에 DB백업이라 입력하여 진행. 
전체백업 : Back Up DateBase (Full)선택 
로그백업 : Back Up DateBase (Transaction log)선택
파일삭제 : Mantenance Tasks

 

 

트랙잰션 로그백업시 주의사항. File extenstion 항목에 bak파일입력. 오래된파일 삭제(Delete files based on the...)할지 유무를 선택하여 1주일단위소 삭제하도록 하겠습니다. 

 

 


이제 스케쥴링 설정을 해보겠습니다. SQL Server Agent -> Jobs -> DB백업이라고 하여 진행하겠습니다.

 

 

유지관리계획에  작업스케쥴을 걸어 진행할수 있습니다.  아래화면은 일단위로 매일 00시에 자동 백업 받도록 설정하였습니다.

 

반응형