1. 데이터베이스 회복(Recovery)이란 무엇이며, 왜 필요한가요?

데이터베이스 회복은 장애 발생 시, 데이터를 손실 없이 복구하고 일관된 상태로 복원하는 과정이다.

시스템 충돌, 정전, 하드웨어 오류 등의 상황에서 데이터 무결성과 지속성을 유지하기 위해 필수적이며, 이를 통해 비즈니스 연속성을 보장할 수 있다.

2. Write-Ahead Logging(WAL)이란 무엇이며 어떤 장점이 있나요?

Write-Ahead Logging 이란, 실제 데이터베이스에 적용하기 전에 반드시 로그에 먼저 기록하는 방식이다.

이를 통해 시스템 장애가 발생하더라도 로그를 통해 데이터의 일관성을 유지하고 복구할 수 있으며,
트랜잭션의 원자성과 내구성을 보장할 수 있다.

3. Redo 로그와 Undo 로그의 차이점을 설명해주세요.

Redo 로그

Redo 로그는 이미 커밋된 트랜잭션의 변경 내역을 재실행하여 장애 이후에도 변경된 데이터를 복구하는 로그이다.

Undo 로그

Undo 로그는 트랜잭션이 실패했거나 커밋되지 않았을 때 변경된 데이터를 원상태로 되돌리기 위해 사용된다.

Redo 로그와 Undo 로그의 차이점

Redo : 다시 실행
Undo : 되돌리기

4. 체크포인트(Checkpoint) 기법이 무엇이며 왜 사용하나요?

체크포인트는 주기적으로 데이터베이스의 상태를 저장하는 기법으로, 장애 발생 시, 복구해야할 로그 양을 최소화하여 복구 속도를 높인다.

체크포인트 이후 장애가 발생하면, 마지막 체크포인트에서부터만 로그를 적용하면 되므로 복구 시간이 단축되고 시스템 자원을 효율적으로 사용할 수 있다.

5. 데이터베이스 백업의 종류와 각각의 특징에 대해 설명해주세요.

전체 백업(Full Backup)

전체 백업은 데이터베이스 전체를 백업하여 완전한 복구가 가능하지만, 시간과 공간이 많이 필요하다.

증분 백업(Increment Backup)

증분 백업은 이전 백업 이후 변경된 사항만 백업하여 백업 속도와 효율성을 높이지만, 복구 시 여러 백업 세트가 필요하다.

차등 백업(Differential Backup)

차등 백업은 마지막 전체 백업 이후 변경된 데이터를 모두 백업 한다.

6. 데이터베이스 이중화 구성(Replication)이란 무엇이며, 어떤 이점이 있나요?

데이터베이스 이중화는 주요 데이터베이스 시스템을 복제하여 여러 서버에 데이터를 동기화하여 운영하는 방식이다.

장애 발생 시, 다른 복제 서버가 서비스를 대체하여 가용성을 높이고,
읽기 작업을 분산시켜 성능을 향상시키며,
지리적으로 분산된 환경에서도 데이터 접근 속도를 개선할 수 있다.

실시간으로 데이터 복제가 필요한 시스템에서 장애가 발생할 때, 데이터 일관성을 유지하기 위한 최적의 회복전략은 무엇인가?

실시간 데이터 복제 시스템에서는 동기식 이중화(Synchronous Replication)와 WAL(Write-Ahead Logging)을 결합한 전략이 최적이다.

  • 동기식 이중화는 주 서버의 트랜잭션이 모든 복제 서버에 적용된 후에만 완료로 간주하므로 데이터 일관성을 보장한다.
  • 자동 장애 조치(Automatic Failover) 메커니즘을 구현하여 주 서버 장애 시 즉시 복제 서버가 역할을 대체하고, 분산 트랜잭션 관리를 통해 모든 노드간의 일관성을 유지해야한다.

위의 전략의 주의점

동기식 복제는 성능 오버해드가 크므로 네트워크 지연이 적은 환경에서 사용해야 한다.
장애 조치 과정에서 잘못된 전환 문제를 방지하기 위한 정족수 메커니즘이 필요하며, 복구 후 데이터 재동기화 과정에서 불일치가 발생할 수 있으므로 충돌 해결 전략을 미리 수립해야한다.
또한 실시간 복제로 인한 시스템 부하를 모니터링하고, 정기적인 복제 상태 검증을 통해 데이터 불일치를 조기에 발견하는 것이 중요하다.

profile
https://github.com/Dingadung

0개의 댓글

Powered by GraphCDN, the GraphQL CDN