백업 유형

전체 백업(FULL BACKUP)
전체 백업은 기본적으로 데이터베이스에 있는 모든 페이지들을 백업 장치로 복사한다.
SQL Server가 사용중일 때에도 전체 백업을 수행할 수 있다. 이것을 퍼지(fuzzy) 백업이라고 생각 할 수 있다.
특정 시점에 백업 데이터는 데이터베이스 상태의 정확한 이미지가 아니다. 백업 스레드는 익스텐트들을 복사하기만 하고, 백업이 진행중일 때 다른 프로세스들이 이 익스텐트들을 변경할 필요가 있으면 이것들을 변경할 수 있다.
SQL Server는 전체 백업이나 차등 백업에서 일관성을 유지하기 위해, 백업이 시작할 때 현재 로그 시퀀스 번호(LSN)를 기록하고 백업이 종료될 때 다시 기록한다. 이 방법을 사용하면 백업이 로그의 관련된 부분들을 잡아낼 수 있다. 관련 부분은 첫번째 기록된 LSN시에 가장 오랜된 열린 트랜잭션에서 시작하고, 두번째 기록된 LSN에서 끝난다.


참고 퍼지백업에 대해
Microsoft?? SQL Server™ 2000 및 SQL Server 버전 7.0은 산업 표준 퍼지 백업 알고리즘을 사용한다. 이 알고리즘은 다음과 같은 이점이 있다.

1. BACKUP 문이 더 빨리 실행되며 이 문이 처리되는 동안 수행되는 데이터 수정에 덜 영향을 준다.
2. RESTORE 문이 더 빨리 수행된다.

SQL Server 퍼지 백업 및 복원 작업은 다음과 같다.

1. 데이터가 들어 있는 익스텐트가 백업 시 수정하는 페이지의 동기화와 상관 없이 백업 세트에 기록된다.
따라서 백업 시 현재 사용자에게 미치는 영향이 상당히 줄어든다. 또한 백업 시 페이지를 순차적으로 복사할 수 있다. 임의 읽기를 제거하여, 많이 사용되는 시스템의 백업 처리 속도가 빠르다. 그러나 백업 시 페이지는 일관성이 없고 복구할 수 없는 상태로 저장된다.
2. 트랜잭션 로그는 백업의 일부로 복사된다.

RESTORE 문은 다음을 수행한다.

1. 데이터베이스를 새로 만들고 데이터베이스의 익스텐트를 초기화한다. RESTORE 문이 실행될 때 데이터베이스가 존재하면 이 단계를 수행하지 않는다.
2. 백업 세트에 있는 익스텐트에 복사한다. 모든 익스텐트가 나란히 있기 때문에 이 처리가 빨리 수행된다. 백업 세트에 없는 익스텐트는 무시되며 빈 익스텐트로 초기화되지 않는다.
3. 트랜잭션 로그를 사용하여 데이터베이스를 복구한다. 로그에 기록된 데이터베이스 수정 내용을 로그 끝까지 롤포워드한 다음 완료되지 않은 트랜잭션을 롤백한다. 그러면 BACKUP 문이 완료된 때의 일관성 있고 복구 가능한 데이터베이스 상태로 데이터베이스가 복원된다.


차등 백업(DIFFERENTIAL BACKUP)
차등 백업은 마지막 전체 백업 이후에 변경된 익스텐트들만을 복사한다. 익스텐트들은 지정된 백업 장치로 복사된다. SQL Server는 데이터베이스에 있는 각 데이터 파일들에 대해 DCM 페이지에 있는 비트들을 조사함으로써 어떤 익스텐트들이 백업될 필요가 있는지 빠르게 알 수 있다. 전체 백업이 수행될 때마다 모든 비트들이 0으로 된다. 익스텐트에서 변경된 페이지가 있다면 DCM 페이지에서 이 페이지에 대응하는 비트가 1로 바뀐다.

로그 백업(LOG BACKUP)
대부분의 경우에 로그 백업은 마지막 전체 백업이나 로그 백어버 이후에 트랜잭션 로그에 기록된 모든 로그 레코드들을 복사한다. 그러나 BACKUP LOG 명령어의 정확한 동작은 데이터베이스의 복구 모드 설정에 따라 달라진다.




복구 모델

전체(FULL) 복구 모델
1. 커밋된 트랜잭션을 모두 복원할 수 있다.
2. 모든 동작들이 로그에 완전하게 기록된다.
3. 오류 지점이나 특정 지정 시간의 상태로 데이터베이스를 복구할 수 있다.
4. CREATE INDEX 동작도 로그에 기록된다. 인덱스 생성을 포함한 트랜잭션 로그로부터 복원할 때 인덱스가 만들어질 필요가 없기 때문에 속도가 빠르다.
5. 로그가 커질 수 있다.
6. 로그를 백업할 때 시간이 많이 걸릴 수 있다.


대량로그(BULK_LOGGED) 복구 모델
1. 매체가 고장났을 경우에 데이터베이스를 완전하게 복원 할 수 있다.
2. 벌크 동작에 대해 최소의 로그(벌크동작이 발생했다는 사실만 기록)를 사용한다.(BULK INSERT, BCP, CREATE INDEX, SELECT INTO, WRITETEXT, UPDATETEXT)
3. 최소의 로그를 사용하기 때문에 FULL 모드에서보다 빠른 수행 속도를 낸다.
4. 데이터 손실 노출은 전체 복구 모델에서보다 크다.
5. 일반적인 지정 시간 복구는 지원하지 않는다.

단순(SIMPLE) 복구 모드
1. 데이터베이스를 마지막 백업 지점으로 복구할 수 있다.
2. 오류 지점이나 특정 지정 시간의 상태로 복원할 수는 없다.
3. 트랜잭션 로그 백업을 받을 수 없다.

복구 모델을 비교하면 다음과 같다.
복구 모델 이점 작업 손실 노출 정해진 시간에 복구 가능 여부
단순 복구 고성능 대량 복사 작업을 허용함.
로그 공간에서 공간 요구 사항을 적게 유지하도록 요청함.
가장 최근의 데이터베이스나 차등 백업을 실행한 후에 변경된 사항을 다시 실행해야 함. 백업의 끝으로 복구할 수 있음. 그런 다음 변경 사항을 다시 실행해야 함.
전체 복구 데이터 파일이 손실되거나 손상되어서 작업이 손실되지 않음.
아무 시간이나 지정하여 복구 가능(예를 들어 응용 프로그램이나 사용자 오류가 발생하기 이전).
일반적으로는 없음.
로그가 손상된 경우 가장 최근에 로그를 백업한 후에 변경된 사항을 다시 실행해야 함.
아무 시간이나 지정하여 복구할 수 있음.
대량 로그 복구 고성능 대량 복사 작업을 허용함
최소의 로그 공간은 대량 작업에서 사용됨.
로그가 손상되었거나 최근의 로그 백업 이래로 대량 작업을 했으면 지난 백업 이후의 변경을 다시 해야 함.
그렇지 않으면 작업이 손실되지 않음.
백업의 끝으로 복구할 수 있음. 그런 다음 변경 사항을 다시 실행해야
안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히아이스
,