Q : 다음 중 데이터베이스 복구 메커니즘에 대한 설명으로 적절한 것은?
1. 트랜잭션 실행 내용이 데이터베이스 버퍼에 비동기적으로 기록될 때 복구 작업에 NO-UNDO/REDO 작업을 실시한다.
2. 논리 백업에 의한 복구는 UNDO/REDO의 논리적 수행이다.
3. 복구작업은 데이터베이스 오픈 상태에서 가능하다.
4. 로그파일 내용에는 트랜잭션 식별자를 포함한 데이터베이스 스키마 정보가 있다.
정답) 1
해설)
1. 비동기적 갱신의 경우에 NO-UNDO/REDO 즉, 취소할 필요 없음(기록되지 않앗으므로), 재시작 할필요 잇음(트랜잭션을 다시 시작해서 정상으로 완료할 수 있도록 함)
2. 논리적 백업에 의한 복구는 백업 시점 상태로 데이터 생성하는 것이므로 UNOD/REDO가 필요 없음
3. 복구 작업은 마운트 단계에서 수행이 가능하다.
4. 로그 파일의 내용은 (트랜잭션 식별자, 트랜잭션 레코드, 데이터 식별자, 갱신 이전의값 (Before Image), 갱신 이후의 값(After Image)가 저장된다.
데이터베이스 스키마는 데이터 딕셔너리에 저장이 된다.
---------------------------------------------------------------------------------------
로그
---------------------------------------------------------------------------------------# 로그 파일 #
- 로그 파일은 트랜잭션의 내용을 모두 기록한 파일임
- 데이터베이스 복구의 가장 중요한 기본적인 매체임
- 과거 상태로 복귀 or 과거에서 현재 파일 생성
- 데이터베이스 복구의 가장 중요한 기본적인 매체임
- 과거 상태로 복귀 or 과거에서 현재 파일 생성
# 로그파일 기록 시기 #
1. 트랜잭션 시작 시점
2. 데이터 입력, 수정, 삭제 시점
3. 트랜잭션 롤백 시점
2. 데이터 입력, 수정, 삭제 시점
3. 트랜잭션 롤백 시점
# 로그 파일 내용 #
1. 트랜잭션 식별자
2. 트랜잭션 레코드
3. 데이터 식별자
4. 갱신 이전 값 (Before Image)
5. 갱신 이후 값 (After Image)
2. 트랜잭션 레코드
3. 데이터 식별자
4. 갱신 이전 값 (Before Image)
5. 갱신 이후 값 (After Image)
---------------------------------------------------------------------------------------
복구
---------------------------------------------------------------------------------------# 동기/비동기 갱신 #
1. 동기적 갱신 : 트랜잭션 실행 내용이 발생할때마다 데이터베이스 버퍼를 저장매체에 기록하는 것
2. 비동기적 갱신 : 트랜잭션이 완료된 내용을 일정 주기나, 작업량에 따라 시간 차이를 두고 데이터베이스 버퍼를 저장매체에 기록하는 것
2. 비동기적 갱신 : 트랜잭션이 완료된 내용을 일정 주기나, 작업량에 따라 시간 차이를 두고 데이터베이스 버퍼를 저장매체에 기록하는 것
# 복구 알고리즘 #
기본 사항
- UNDO : 기록된 내용을 취소하는 것
- REDO : 트랜잭션 내용을 재실행 하는 것
- REDO : 트랜잭션 내용을 재실행 하는 것
1. NO-UNDO/REDO :
- 사용시점 : 비동기적 갱신을 수행한 경우 복구 알고리즘
- NO-UNOD : 데이터베이스 변경 내용이 트랜잭션 완료 이전에는 기록되지 않으므로 취소할 필요가 없다는 의미
- REDO : 데이터 버퍼에는 기록되어 있지만 실제 저장 매체에는 기록되지 않았으므로 트랜잭션을 한번더 다시 수행하여 해결
2. UNDO/NO-REDO :
- 사용시점 : 동기적 갱신을 수행한 경우 복구 알고리즘
- UNDO : 트랜잭션 완료되기 이전에 시스템이 파손될 경우 변경된 내용을 취소 한다는 의미
- NO-REDO : 데이터베이스 버퍼 내용을 이미 저장 매체에 기록했으므로, 트랜잭션을 재실행할 필요가 없다는 의미임
3. UNDO/REDO :
- 사용시점 : 데이터베이스 버퍼의 내용을 동기/비동기적으로 갱신할 경우 (사실 알수 없음)
4. NO-UNDO/NO-REDO :
- 데이터베이스 버퍼 내용을 동시적으로 저장 매체에 기록하지만 데이터베이스와는 다른 영역에 기록하는 경우
- NO-UNDO : 변경 내용은 데이터베이스와 다른 영역에 저장되어 잇음 즉, DB쪽에 취소할 필요 없음
- NO-REDO : 이미 다른 영역에 기록되어 있으므로 트랜잭션을 재시작 할 필요 없음
- 사용시점 : 비동기적 갱신을 수행한 경우 복구 알고리즘
- NO-UNOD : 데이터베이스 변경 내용이 트랜잭션 완료 이전에는 기록되지 않으므로 취소할 필요가 없다는 의미
- REDO : 데이터 버퍼에는 기록되어 있지만 실제 저장 매체에는 기록되지 않았으므로 트랜잭션을 한번더 다시 수행하여 해결
2. UNDO/NO-REDO :
- 사용시점 : 동기적 갱신을 수행한 경우 복구 알고리즘
- UNDO : 트랜잭션 완료되기 이전에 시스템이 파손될 경우 변경된 내용을 취소 한다는 의미
- NO-REDO : 데이터베이스 버퍼 내용을 이미 저장 매체에 기록했으므로, 트랜잭션을 재실행할 필요가 없다는 의미임
3. UNDO/REDO :
- 사용시점 : 데이터베이스 버퍼의 내용을 동기/비동기적으로 갱신할 경우 (사실 알수 없음)
4. NO-UNDO/NO-REDO :
- 데이터베이스 버퍼 내용을 동시적으로 저장 매체에 기록하지만 데이터베이스와는 다른 영역에 기록하는 경우
- NO-UNDO : 변경 내용은 데이터베이스와 다른 영역에 저장되어 잇음 즉, DB쪽에 취소할 필요 없음
- NO-REDO : 이미 다른 영역에 기록되어 있으므로 트랜잭션을 재시작 할 필요 없음
'DAP > 06.데이터베이스 설계와 이용' 카테고리의 다른 글
[데이터베이스 설계와 이용] 저장공간 설계 (0) | 2009.12.23 |
---|---|
[데이터베이스 설계와 이용] 분산데이터 베이스 설계 (1) | 2009.12.22 |
[데이너베이스 설계 와 이용] 데이터 베이스 저장 구조 (0) | 2009.12.18 |
[데이터베이스 설계와 이용] Locking 을 이용한 읽기 일관성 문제 (328) (0) | 2009.12.17 |
[데이터베이스 설계 이용] Tkprof 분석 예제 2 (0) | 2009.12.15 |