Serach

2013년 10월 10일 목요일

MS-SQL 백업 및 복원

복구 모델

전체 / 대량 로그 / 단순(로그백업불가)




백업 종류


전체 백업 (Full backup)
   - 처음 DB 생성시
   - 트랜잭션 로그를 비웠을시
   - DB에 변경이 생겼을때(ALTER DB)
   - 차등, 로그 백업 전 한번 이상

      BACKUP DATABASE 디비이름 TO 파일&장치


차등 백업 (Differential Backup)
   - 마지막 백업 이후에 변경된 모든 데이터를 백업
   - 복구시 마지막 차등백업과 
      마지막과 가장 가까운 전체백업 파일

      BACKUP DATABASE 디비이름 TO 파일&장치 
      WITH DIFFERENTIAL



로그 백업 (Log Backup)
   - 백업 속도가 빠르고 복원속도가 느리다
   - 중간 로그백업파일 유실 시 복구 불가
     
      BACKUP LOG 디비이름 TO 파일&장치 



부분 백업 (Partial Backup)
   - 파일 그룹을 백업
   - 주 파일 그룹, 읽기/쓰기 파일그룹만 백업
   - 단순 복구 모델에 가장 적합

      BACKUP DATABASE 디비이름
      READ_WRITE_FILEGROUPS TO 장치


미러 백업 (Mirror Backup)
  - 백업 데이터의 유실이나 파손 시
      데이터 유실을 막기 위해 사용
  - 백업 장치 이외에 하나의 장치에 똑같이 백업

      BACKUP DATABASE 디비명
      TO DISK = 'C:\a.bak'
      MIRROR TO DISK = 'D:\a.bak'
      WITH FORMAT

복사 전용 백업 (Copy Backup)
   - 데이터 베이스의 복사나 이동 테스트시 사용

      BACKUP DATABASE 디비이름 TO 장치
      WITH COPY_ONLY


체크섬 기능 (CHECKSUM)
   - 백업시 데이터의 이상 유무를 체크
   - 백업 체크섬을 해야 복원시 체크섬가능

      BACKUP DATABASE 디비이름 TO 장치
      WITH CHECKSUM


백업 매체 초기화
   - 기존 백업 내용이 삭제 디폴트는 NOINIT

      BACKUP DATABASE 디비이름 TO 장치
      WITH INIT


다중 백업 장치 초기화
   - 다중 백업 장치를 초기화 한후 백업 수행
   - 대개 다른 내용이 들어있는 여러 디스크에
     처음 백업 할 때 사용

      BACKUP DATABASE 디비이름 TO 장치1, 장치2
      WITH FORAMT


비밀번호 지정
   - 백업 및 복원시 비밀번호 지정

      BACKUP DATABASE 디비이름 TO 장치
      WITH PASSWORD ='비밀번호'


백업 중 오류발생시 계속 여부
   - 잘못된 체크섬 발생시에도 계속 백업 진행
   - 디폴트는 STOP_ONERROR 오류시 백업 중지

      BACKUP DATABASE 디비이름 TO 장치
      WITH CONTINUE_AFTER_ERROR


진행률 표시
   - 대용량 백업 진행시 현재 상황을 보는데 편리
      BACKUP DATABASE 디비이름 TO 장치
      WITH STATS


문제 발생시 로그 백업 (비상 로그 백업)
   - NO_TRUNCATE 옵션 사용 이상시에도 가능

      BACKUP LOG 디비이름 TO 장치
      WITH NO_TRUNCATE

----------------------------------------------------------------------------------------

복원


전체 복원
   - 전체 파일을 복원한다.

      RESTORE DATABASE 디비이름 FROM 장치

차등 복원
   - 차등 복원. 전체복원과 동일
   - WITH DIFFERENTIAL 옵션 필요 없음

      RESTORE DATABASE 디비이름 FROM 장치

로그 복원
   - 로그 파일을 복원

      RESTORE LOG 디비이름 FROM 장치


복원 완료 및 복원 중
   - 전체 백업과 로그 백업을 병행한 경우 복원 완료까지
      접근을 제어 할 수 있다. 
   - WITH RECOVERY(default)

      RESTORE DATABASE 디비이름 FROM 장치
      WITH NORECOVERY


복원 후에 제한된 사용자만 접근 허용
      RESTORE DATABASE 디비이름 FROM 장치
      WITH RESTRICTED_USER

      RESTORE DATABASE 디비이름 FROM 장치
      WITH RECOVERY


복원 시 데이터 파일의 이동
   - 기존 디스크가 꽉찼거나 문제가 있을 시

      RESTORE DATABASE 디비이름 FROM 장치
      WITH MOVE 'AdventureWorks_data' TO 'D:\adv.mdf'
, MOVE 'AdventureWorks_log' TO 'D:\adv.ldf'


오류가 발생해도 계속 복원
      RESTORE DATABASE 디비이름 FROM 장치
      WITH CONTINUE_AFTER_ERROR


원래 파일이 있으면 덮어쓰기
      RESTORE DATABASE 디비이름 FROM 장치
      WITH REPLACE

정확한 시점까지만 복원하기
      RESTORE DATABASE 디비이름 FROM 장치
      WITH STOPAT = '날짜와 시간'


데이터베이스 스냅숏으로 복원하기
      RESTORE DATABASE 디비이름 FROM DATABASE_SNAPSHOT = '스냅숏 이름'


페이지 복원
      RESTORE DATABASE 디비이름 PAGE='파일번호:페이지번호' FROM 백업장치


증분 복원
   - 파일 그룹 단위로 복원 진행



      RESTORE DATABASE 디비이름 FROM 장치
      WITH PARTIAL

댓글 없음:

댓글 쓰기