반응형
데이터베이스의 복구 모델

+ 백업

- 전체 복구 모델
    전체 백업, 차등 백업, 로그 백업이 가능(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

+ Recent posts