반응형
데이터베이스의 복구 모델
+ 백업
- 전체 복구 모델
전체 백업, 차등 백업, 로그 백업이 가능(Insert, Update, Select Into, Create Index 내용 모두)
원하는 위치로의 복구
- 대량 로그 복구 모델
전체 백업, 차등 백업, 로그 백업이 가능
작업이 일어난 상태만 기록 될 뿐, 추가되거나 변경된 내용은 기록되지 않음.(Insert, Update 내용 모두, Create index, Select Into 발생기록만)
원하는 위치로의 복구가 안됨.
내용을 기록하지 않기에 전체 복구 모델에 비해 속도가 빠름
- 단순 복구 모델
전체 백업, 차등 백업만 가능. 로그 백업은 할 수 없음.
로그파일에 아무것도 기록되지 않음.
단순 복구 모델은 문제점이 발생된 시점까지 데이터를 복구 할 수 없고, 마지막에 백업 받은 데이터까지만 복구가 가능
데이터베이스 백업의 종류
- 전체 백업, 차등 백업, 트랜잭션 로그 백업, 파일 및 파일그룹 백업, 부분 백업, 부분차등 백업
- 전체 백업(Full Backup)
데이터베이스의 개체, 시스템 테이블, 데이터 모두 백업, 로그 또한 백업
구문 : BACKUP DATABASE 데이터베이스이름 TO 백업할 파일 또는 장치
BACKUP DATABASE AdventureWorks TO disk = "c:\백업폴더\advBackup.bak"
BACKUP DATABASE AdventureWorks TO advDevice(백업장치)
데이터베이스 저장 공간 확인 EXEC sp_spaceused
- 차등 백업(Differential Backup)
구문 : BACKUP DATABASE 데이터베이스이름 TO 백업할 파일 도는 장치 WITH DIFFERENTIAL
로그백업구문형식 : BACKUP LOG 데이터베이스이름 TO 백업할 파일 또는 장치
로그백업을 하지 않고 로그 파일을 비우기 :
BACKUP LOG 데이터베이스이름 WITH NO_LOG
OR
BACKUP LOG 데이터베이스이름 WITH TRUNCATE_ONLY
- 부분 백업(Partial Backup)
전체 백업과 비슷하지만 읽기 전용 파일그룹은 백업하지 않음. 즉 주파일 그룹과 읽기/쓰기 파일그룹만을 백업.
단순 복구 모델의 데이터베이스에 적용시키기에 적당함.
구문 : BACKUP DATABASE 데이터베이스이름 READ_WRITE_FILEGROUPS TO 장치
- 부분 차등 백업
차등 백업과 비슷하며 읽기 전용 파일그룹은 백업하지 않는다.
- 미러 백업
두 개의 백업 장치에 백업함.
구문 : BACKUP DATABASE AdventureWorks
TO disk = 'C:\adv.bak'
MIRROR TO disk = 'd:\adv.bak'
WITH FORMAT
- 복사전용 백업
구문 : BACKUP DATABASE 데이터베이스이름 TO 장치 WITH COPY_ONLY
- 체크섬(CHECKSUM) 기능
백업 시에 백업 받은 데이터에 이상이 없는지를 확인하면서 백업하는 기능
구문 : BACKUP DATABASE 데이터베이스이름 TO 장치 WITH CHECKSUM
- 백업매체 초기화
기존에 백업된 내용 모두 삭제 후 새로 백업
구문 : BACKUP DATABASE 데이터베이스이름 TO 장치 WITH INIT
- 다중 백업장치의 초기화
FORMAT을 붙이면 다중 백업장치(여러 개의 디스크나 테이프에 동시에 백업하는 것)를 초기화한 후에 백업수행
구문 : BACKUP DATABASE 데이터베이스이름 TO 장치1, 장치2, 장치3 WITH FORMAT
- 비밀번호 지정
구문 : BACKUP DATABASE 데이터베이스이름 TO 장치 WITH PASSWORD = '비밀번호'
- 백업 중 오류 발생 시 계속 여부
CONTINUE_AFTER_ERROR 옵션은 오류 발생해도 계속 백업 진행
STOP_ON_ERROR 은 오류 발생 시 백업 중지(DEFAULT)
구문 : BACKUP DATABASE 데이터베이스이름 TO 장치 WITH CONTINUE_AFTER_ERROR
- 진행률 표시
현재 백업되는 진행상황 보기
구문 : BACKUP DATABASE 데이터베이스이름 TO 장치 WITH STATS
- 데이터베이스에 문제 발생 시 로그 백업
구문 : BACKUP LOG 데이터베이스이름 TO 장치 WITH NO_TRUNCATE
+ 복원
- 전체 복원
구문 : RESTORE DATABASE 데이터베이스이름 FROM 백업장치
- 차등 복원
구문 : RESTORE DATABASE 데이터베이스이름 FROM 백업장치
- 로그 복원
구문 : RESTORE LOG 데이터베이스이름 FROM 백업장치
- 복원 중 / 복원 완료
복원 중 구문 : RESTORE DATABASE 데이터베이스이름 FROM 백업장치 WITH NORECOVERY
복원 완료 구문 : RESTORE DATABASE 데이터베이스이름 FROM 백업장치 WITH RECOVERY
- 복원 후에 제한된 사용자만 접근 허용
db_owner, dbcreator, sysadmin 역할의 권한을 가진 사용자만 접근 가능, 일반사용자 접근 불가
구문 : RESTORE DATABASE 데이터베이스이름 FROM 백업장치 WITH RESTRICTED_USER
확인절차 끝난 후
RESTORE DATABASE 데이터베이스이름 WITH RECOVERY
- 복원시 데이터 파일의 이동
구문 : RESTORE DATABASE 데이터베이스이름 FROM 백업장치
WITH MOVE 'AdventureWorks_data' TO 'd:\adv.mdf'
, MOVE 'AdventureWorks_log' TO 'd:\adv.ldf'
- 미러백업 매체에서 복원
미러 백업 시 MIRROR TO 옵션을 사용해 백업한 매체에 대해 복원을 하는 경우
구문 : BACKUP DATABASE AdventureWorks
TO DISK = 'C:\adv.bak'
MIRROR TO DISK = 'D:\adv.bak'
WITH FORMAT
D:\adv.bak으로 복원하면서 데이터파일 및 로그 파일 위치 이동시
RESTORE DATABASE AdventureWorks
FROM DISK = 'D:\adv.bak'
WITH MOVE 'AdventureWorks_data' TO '데이터 파일 경로 및 파일명'
,MOVE 'AdventureWorks_log' TO '로그 파일 경로 및 파일명'
- 오류 발생시에도 계속 복원하기
구문 : RESTORE DATABASE 데이터베이스이름 FROM 백업장치
WITH CONTINUE_AFTER_ERROR
- 덮어쓰기
구문 : RESTORE DATABASE 데이터베이스이름 FROM 백업장치 WITH REPLACE
- 정확한 시점까지만 복원
구문 : RESTORE DATABASE 데이터베이스이름 FROM 백업장치 WITH STOPAT = '날짜와 시간'
- 데이터베이스 스냅숏으로 복원
구문 : RESTORE DATABASE 데이터베이스이름 FROM DATABASE_SNAPSHOT = '스냅숏이름';
반응형
'연구개발 > SQL2008' 카테고리의 다른 글
노출 영역 구성 (0) | 2010.05.02 |
---|---|
데이터베이스 복원 예시 (오프라인) (0) | 2010.04.29 |
인덱스 정보 조회 (0) | 2010.04.22 |
FullText Search 시에 가중치 주기 (0) | 2010.04.22 |
커서 cursor (0) | 2010.04.20 |