2022. 6. 30. 15:13ㆍDatabase/데이터베이스와 SQLD 합격패스 Online.
8-1 지속성과 성능이 양립하는 구조
로그 선행 기입 기법 (write-ahead logging, WAL)
- 로그 선행 기입을 사용하는 시스템에서 모든 수정은 적용 이전에 로그에 기록된다. 일반적으로 redo 및 undo정보는 둘 다 로그에 저장된다
- 한 예로 어느 프로그램이 특정 작업을 수행하는 동안 컴퓨터에 정전이 일어났다고 하자. 다시 시작할 때 프로그램은 어느 작업이 수행을 성공적으로 마쳤는지, 절반 성공했는지, 아니면 실패했는지를 잘 알고 있어야 한다. 로그 선행 기입이 사용된다면 프로그램은 이러한 로그를 검사하여 예기치 않은 정전 시 해야 할 일과 실제로 했던 일을 비교하게 된다.
- 데이터베이스의 데이터 파일을 로그 레코드 사용하여 동기화
- 디스크에 연속해서 쓰기 때문에 무작위로 쓰는 것보다 성능 좋음
- 디스크에 쓰는 용량과 횟수 감소
- 데이터베이스 버퍼 이용해 데이터 파일 변경을 효율적으로 수행
데이터베이스 버퍼
- 데이터 파일로의 입력을 데이터베이스 버퍼 경유로 일원화
- 트랜잭션마다 버퍼 취할 경우 로그와 데이터 파일 간 일관성 저하
- 효율적인 데이터 일관성 유지
-
-
Crash 복구
- DBMS의 비정상적 종료 후 재실행 시 데이터 복구하는 구조
Crash 복구에 필요한 항목
- WAL
- 데이터베이스 버퍼
- 데이터베이스 파일
Crash 발생 시 복구 과정
- WAL : 마지막으로 Commit된 트랜잭션의 갱신 정보 가짐
- 데이터베이스 버퍼 : Crash로 내용이 전부 소실
- 데이터베이스 파일 : 최후 체크포인트까지의 갱신 정보 가짐
Crash 이후 DBMS 서버 재시작
- 데이터베이스 파일을 Crash 전 최신 Commit 상태로 수정
- 즉 롤 포워드 단계가 완성됨
- 논리적, 물리적 파괴에는 대응 불가
- 정상 동작하는 동안 주기적 백업 필요
Crash 복구 흐름도
-
8-2 백업 및 복구
백업의 3 가지 관점
- 핫 백업과 콜드 백업
- 논리 백업과 물리 백업
- 풀 백업과 부분 (증분/차등) 백업
- 장애 발생 대비해 현재 이용하는 데이터 복제하여 다른 곳에 저장
- 백업한 데이터 이용해 장애 발생시 복원 작업
핫 백업 (Hot Backup)과 콜드 백업 (Cold Backup)
- 핫 백업
온라인 백업 / 데이터베이스 기능 이용
백업 대상의 데이터베이스 정지하지 않고 가동한 상태로 백업 데이터 얻음
- 콜드 백업
오프라인 백업 / OS 기능 이용
백업 대상 데이터베이스 정지한 후 백업 데이터 얻음
서버 Shutdown, 데이터 디렉터리의 파일 전부를 OS 명령으로 복사
-
논리 백업과 물리 백업
- 논리 백업
SQL 기반 텍스트 형식으로 백업 데이터 기록
- 물리 백업
데이터 영역을 그대로 덤프 하는 이미지로 바이너리 형식 기록
-
풀 백업과 부분 백업
- 풀 백업 (전체 백업)
데이터베이스 전체 데이터를 매일 백업
- 부분 백업
풀 백업 이후 갱신된 데이터를 백업
차등 (Differential) 백업
증분 (Incremental) 백업
-
- 가능 백업
풀백업
풀백업 + 증분백업
풀백업 + 차등백업
데이터베이스 관리 시 주의점
- 백업 파일들은 떨어진 곳에 각각 보관해야
- 장치를 지리적으로 서로 멀리 위치시켜 장소 자체 장애로부터 보호
- 장애 발생 시 신속한 복구가 가능하도록 운영 조건 및 방법 고려해야함
'Database > 데이터베이스와 SQLD 합격패스 Online.' 카테고리의 다른 글
Chapter 09. 데이터베이스 성능 (0) | 2022.06.30 |
---|---|
Chapter 07. 테이블 설계 (0) | 2022.06.30 |
Chapter 06. 트랜잭션 (0) | 2022.06.30 |
Chapter 05. SQL 기본 (0) | 2022.06.30 |
Chapter 04. 데이터베이스 설치 (0) | 2022.06.30 |