자격증/정보처리기사 📌 [정보처리기사] 데이터베이스 백업
  • 728x90
    반응형

     

     

    물리 데이터베이스 설계


     

    목차

       

       

      데이터베이스 백업

      📌 데이터베이스 백업은 전산 장비의 장애에 대비하여 데이터베이스에 저장된 데이터를 보호하고 복구하기 위한 작업으로, 치명적인 데이터 손실을 막기 위해서는 데이터베이스를 정기적으로 백업해야 한다.

       

      • 데이터베이스 관리 시스템(DBMS)은 데이터베이스 파괴 및 실행 중단이 발생하면 이를 복구할 수 있는 기능을 제공한다.

       

       

      데이터베이스 장애 유형

      📌 데이터베이스의 장애 유형을 정확히 파악하고 장애에 따른 백업 전략을 세워야 장애 발생 시 복구가 가능 하다.

       

      • 사용자 실수 : 사용자의 실수로 인해 테이블이 삭제되거나 잘못된 트랜잭션이 처리된 경우
      • 미디어 장애 : CPU, 메모리, 디스크 등 하드웨어 장애나 데이터가 파손된 경우
      • 구문 장애 : 프로그램 오류나 사용 공간의 부족으로 인해 발생하는 장애
      • 사용자 프로세스 장애 : 프로그램이 비정상적으로 종료되거나 네트워크 이상으로 세션이 종료되어 발생 하는 오류
      • 인스턴스 장애 : 하드웨어 장애, 정전, 시스템 파일 파손 등 비정상적인 요인으로 인해 메모리나 데이터베이스 서버의 프로세스가 중단된 경우

       

       

      로그 파일

      📌 로그 파일은 데이터베이스의 처리 내용이나 이용 상황 등 상태 변화를 시간의 흐름에 따라 모두 기록한 파일로, 데이터베이스의 복구를 위해 필요한 가장 기본적인 자료이다.

       

      • 로그 파일을 기반으로 데이터베이스를 과거 상태로 복귀(UNDO)시키거나 현재 상태로 재상(REDO)시켜 데이터베이스 상태를 일관성 있게 유지할 수 있다.
      • 로그 파일은 트랜잭션 시작 시점, Rollback 시점, 데이터 입력, 수정, 삭제 시점 등에서 기록된다.
      • 로그 파일 내용 : 트랜잭션이 작업한 모든 내용, 트랜잭션 식별, 트랜잭션 레코드, 데이터 식별자, 갱신 이전 값(Before Image), 갱신 이후 값(After Image) 등

       

       

      데이터베이스 복구 알고리즘

      📌 데이터베이스 복구 알고리즘은 동기적/비동기적 갱신에 따라 NO-UNDO/REDO, UNDO/NO-REDO, UNDO/REDO, NO-UNDO/NO-REDO 방법으로 분류된다.

       

      NO-UNDO/REDO - 데이터베이스 버퍼의 내용을 비동기적으로 갱신한 경우의 복구 알고리즘
      - NO-UNDO : 트랜잭션 완료 전에는 변경 내용이 데이터베이스에 기록되지 않으므로 취소할 필요가 없다.
      - REDO : 트랜잭션 완료 후 데이터베이스 버퍼에는 기록되어 있고, 저장매체에는 기록되지 않았으므로 트랜잭션 내용을 다시 실행해야 한다.
      UNDO/NO-REDO - 데이터베이스 버퍼의 내용을 동기적으로 갱신한 경우의 복구 알고리즘
      - UNDO : 트랜잭션 완료 전에 시스템이 파손되었다면 변경된 내용을 취소한다.
      - NO-REDO : 트랜잭션 완료 전에 데이터베이스 버퍼 내용을 이미 저장 매체에 기록했으므로 트랜잭션 내용을 다시 실행할 필요가 없다.
      UNDO/REDO - 데이터베이스 버퍼의 내용을 동기/비동기적으로 갱신한 경우의 복구 알고리즘
      - 데이터베이스 기록 전에 트랜잭셩이 완료될 수 있으므로 완료된 트랜잭션이 데이터베이스에 기록되지 못했다면 다시 실행해야 한다.
      NO-UNDO/NO-REDO - 데이터베이스 버퍼의 내용을 동기적으로 저장 매체에 기록하지만 데이터베이스와는 다른 영역에 기록한 경우의 복구 알고리즘
      - NO-UNDO : 변경 내용은 데이터베이스와 다른 영역에 기록되어 있으므로 취소할 필요가 없다.
      - NO-REDO : 다른 영역에 이미 기록되어 있으므로 트랜잭션을 다시 실행할 필요가 없다.

       

      💡 동기적 갱신(Synchronous I/O) : 트랜잭션이 완료되기 전에 데이터베이스 버퍼 내용을 동시적으로 저장매체에 기록하는 것
      💡 비동기적 갱신(Asynchronous I/O) : 트랜잭션이 완료된 내용을 일정 주기나 작업량에 따라 시간 차이를 두고 저장 매체에 기록하는 것
      💡 UNDO : 기록한 내용을 취소함
      💡 REDO : 트랜잭션 내용을 다시 실행함

       

       

       

      백업 종류

      📌 백업 종류는 복구 수준에 따라서 운영체제를 이용하는 물리 백업과 DBMS 유틸리티를 이용하는 논리 백업으로 나뉜다.

       

      • 물리 백업 : 데이터베이스 파일을 백업하는 방법으로, 백업 속도가 빠르고 작업이 단순하지만 문제 발생 시 원인 파악 및 문제 해결이 어렵다.
      • 논리 백업 : DB 내의 논리적 객체들을 백업하는 방법으로, 복원 시 데이터 손상을 막고 문제 발생 시 원인 파악 및 해경이 수월하지만 백업 / 복원 시 시간이 많이 소요된다.

       

      구분 설명 복구 수준
      물리백업 로그 파일 백업 실시 완전 복구
      로그 파일 백업 없음 백업 시점까지 복구
      논리백업 DBMS 유틸리티

       

       

       

       

       

      728x90
      반응형
    상단으로