데이터베이스 10장 숙제 - 데이터베이스 복구 기법

이번 장의 숙제는 수업 후 4, 5번 문제입니다.

여기에 이미지 설명 삽입

먼저 장애 유형 및 복구 전략을 검토합니다.

실패 유형

① 거래 내 과실

트랜잭션 내부의 오류 중 일부는 트랜잭션 프로그램 자체를 통해 찾을 수 있는 즉, 논리적이고 예측 가능하며 일부는 예상치 못한 트랜잭션 프로그램에서 처리할 수 없습니다.트랜잭션 내부의 더 많은 오류는 후자입니다. 계산 오버플로, 동시 트랜잭션의 교착 상태 등과 같이 예상되는 끝점(커밋 또는 표시된 롤백)에 도달하지 않았으며 복구 작업이 필요함을 의미합니다. 트랜잭션 취소.

②시스템 장애

시스템 오류는 시스템 작동을 중지시켜 시스템을 다시 시작하게 하는 모든 이벤트입니다. 특정 하드웨어 오류 등 이러한 유형의 실패는 실행 중인 모든 것에 영향을 주지만 데이터베이스를 파괴하지는 않습니다. 복구 후 완료되지 않은 모든 트랜잭션을 실행 취소하고 커밋된 모든 트랜잭션을 다시 실행하여 데이터베이스를 일관된 상태로 진정으로 복원하십시오.

③중간 실패

시스템 오류는 종종 소프트 오류라고 하고, 미디어 오류는 하드 오류라고 하며, 하드 오류는 디스크 손상과 같은 외부 저장소 오류를 나타냅니다.

④컴퓨터 바이러스

복구 전략

①거래실패 복구

로그 파일을 이용하여 정상적으로 종료되지 않은 트랜잭션을 실행취소(undo)하며, 복구 단계는 다음과 같습니다.

(1) 로그 파일을 역방향으로 스캔하여 트랜잭션 업데이트 작업을 찾습니다.
(2) 트랜잭션 업데이트 작업의 역방향 작업을 수행합니다. 즉, 로그 레코드의 업데이트 전 값을 데이터베이스에 씁니다.
(3) 트랜잭션의 다른 업데이트 작업을 찾기 위해 계속해서 뒤로 스캔하고 동일한 작업을 수행합니다.
(4) 이 트랜잭션의 시작 태그를 읽을 때까지 이를 반복합니다.

②시스템 장애 복구

실패가 발생했을 때 완료되지 않은 트랜잭션을 실행 취소하고 완료된 트랜잭션을 다시 실행하십시오. 복구 단계는 다음과 같습니다.

(1) 실패 전에 커밋된 트랜잭션을 찾기 위해 로그 파일을 앞으로 스캔하고(이 트랜잭션에는 트랜잭션 시작 레코드와 커밋 레코드가 모두 있음) 리두 큐에 트랜잭션 식별자를 포함합니다. 동시에 장애가 발생했을 때 완료되지 않은 트랜잭션(이러한 트랜잭션에는 트랜잭션 레코드만 있고 해당 커밋 레코드는 없음)을 찾아 해당 트랜잭션 식별자를 실행 취소 대기열에 포함합니다. (2) 실행 취소에서 각 트랜잭션을 실행
취소 대기줄. 역방향 스캔
(3) Redo Queue의 각 트랜잭션을 다시 실행(정방향 스캔)

③중간 고장 복구

데이터베이스를 다시 로드한 다음 완료된 트랜잭션을 다시 실행합니다. 데이터베이스의 백업 복사본을 사용하여 로그 파일의 해당 복사본을 탑재합니다.

작업:

여기에 이미지 설명 삽입

추천

출처blog.csdn.net/weixin_45845039/article/details/117067114