데이터복구란?
데이터베이스 운영 도중 예기치 못한 장애가 발생할 경우 데이터베이스 장애 발생 이전으로 일관성과 무결성을 복원하는것
데이터베이스 장애 유형
1. 트랜젝션 장애
- 논리적 오류 : 내부적은 오류로 트랜젝션 완료 불가
- 시스템 오류 : Deadlock 등의 오류 조건으로 활성 트랜잭션을 강제로 종료
2. 시스템 장애
- 전원, 하드웨어, 소프트웨어 등의 고장
- 시스템 장애로 인해 저장 내용이 영향 받지 않도록 무결성 체크
3. 디스크 장애
- 디스크 스토리지의 일부 또는 전체가 붕괴
- 가장 최근의 덤프와 로그를 이용하여 덤프 이후에 완결된 트랜젝션을 재실행
4. 사용자 장애
- 사용자들의 데이터베이스에 대한 이해 부족으로 발생
- DBA가 데이터베이스를 관리하다 발생하는 실수
데이터베이스 복구의 기본원리
1. 아카이브 또는 덤프 : 데이터베이스를 다른 저장 장치에 복사하여 저장하는 것
2. 로그 또는 저널 : 데이터베이스가 변경될 때마다 변경되는 데이터의 과거 값과 갱신 값을 별도의 파일에 기록하는것
데이터베이스 복구 조치 유형
1. 재수행(REDO)
- 가장 최근 복사본을 적재한 후 복사본 이후에 일어난 변경만을 로그에 읽어서 재실행
- 장애 발생 시점을 기준으로 이미 완료된 트랜잭션에 해당
- 쓰기 연산을 재실행하여 변경된 값을 디스크에 저장
2. 취소(UNDO)
- 데이터베이스 내용 자체에 손상이 되지 않았지만, 변경중이거나 변경된 내용에 대해 신뢰성 잃은 경우
- 장애 발생 시점에 진행중이던 트랜잭션(미완료 트랜잭션)에 해당
- 쓰기 연산을 취소하여 이전 값으로 다시 돌아감