본문 바로가기

DB(SQL)/mysql|maria

[DB] Binary Log (feat. Redo Log)

반응형

**Binary Log (바이너리 로그)**는 MySQL에서 사용되는 로그 파일로, 데이터베이스의 변경 내용을 기록합니다. 주로 다음과 같은 목적으로 사용됩니다:

  1. 데이터 복구
    데이터베이스에서 장애가 발생하거나 데이터를 복원해야 할 때, 백업 파일과 함께 바이너리 로그를 사용하여 데이터를 장애 시점까지 복구할 수 있습니다.
  2. 복제 (Replication)
    MySQL 복제 환경에서 마스터 서버의 변경 사항을 슬레이브 서버로 전송하기 위해 바이너리 로그가 사용됩니다. 슬레이브 서버는 이 로그를 읽어 변경 사항을 재현합니다.
  3. 감사 (Auditing)
    데이터베이스에서 실행된 쿼리와 변경 기록을 추적하기 위해 바이너리 로그를 분석할 수 있습니다.

Binary Log의 주요 특징

  • 내용
    데이터베이스에 영향을 미치는 모든 데이터 변경 작업(예: INSERT, UPDATE, DELETE)이 기록됩니다.
    단, 데이터 읽기 작업(예: SELECT)은 기록되지 않습니다.
  • 형식
    바이너리 로그는 텍스트가 아닌 이진 데이터 형식으로 저장되며, MySQL 도구를 사용해 내용을 확인할 수 있습니다.
    예를 들어, mysqlbinlog 명령어를 사용하여 로그를 읽을 수 있습니다.

1. PostgreSQL

  • 기능 이름: Write-Ahead Logging (WAL)
    PostgreSQL에서는 데이터베이스의 변경 사항을 WAL 파일에 기록합니다.
  • 용도:
    • 데이터 복구
    • 복제 및 스트리밍 (마스터-슬레이브 환경)
  • 특징:
    • WAL 파일은 바이너리 형식으로 저장되며, pg_waldump 명령을 통해 내용을 확인할 수 있습니다.
    • WAL을 통해 PITR(Point-In-Time Recovery)도 가능합니다.

2. Microsoft SQL Server

  • 기능 이름: Transaction Log
  • 용도:
    • 데이터 복구
    • 고가용성(HA) 및 복제(Always On, Log Shipping 등)
  • 특징:
    • 데이터베이스의 모든 트랜잭션과 데이터 변경 사항을 기록합니다.
    • SQL Server Management Studio(SSMS)를 통해 트랜잭션 로그 백업 및 복구를 수행할 수 있습니다.

3. Oracle Database

  • 기능 이름: Redo LogArchive Log
  • 용도:
    • 데이터 복구
    • 데이터 동기화 및 복제(Data Guard)
  • 특징:
    • Redo Log: 트랜잭션과 데이터 변경 사항을 기록.
    • Archive Log: Redo Log가 가득 찼을 때 백업을 위해 저장.

4. MongoDB

  • 기능 이름: Oplog (Operations Log)
  • 용도:
    • 데이터 복구
    • 복제(Master-Slave, Replica Set 환경)
  • 특징:
    • Oplog는 Replica Set 환경에서 데이터베이스 변경 사항을 다른 노드로 동기화하는 데 사용됩니다.

5. MariaDB

  • 기능 이름: MySQL의 Binary Log와 동일.
  • 특징:
    • MariaDB는 MySQL에서 포크된 데이터베이스로, Binary Log가 동일하게 존재합니다.
    • MySQL과 동일한 방식으로 설정 및 활용 가능.

6. Cassandra

  • 기능 이름: Commit Log
  • 용도:
    • 데이터 복구
    • 데이터 일관성 보장
  • 특징:
    • Commit Log는 모든 데이터 변경 사항을 기록하여 노드 장애 시 복구에 사용됩니다.
반응형