Today
Total
KoreanEnglishFrenchGermanJapaneseSpanishChinese (Simplified)
관리 메뉴

DB & AWS Knowledge

Binary log 개념 본문

MySQL/Binary log

Binary log 개념

`O` 2021. 3. 5. 01:12
728x90
반응형
  • (출처 : https://dev.mysql.com/doc/refman/5.7/en/binary-log.html)

  • 데이터 변동 내역 (DML, DDL 등을 통한 데이터 변동) 을 보관하는 파일이다. 통칭은 binlog 라고 줄여서 읽는다.

    • Oracle, PostgreSQL 의 Archive 와 유사한 개념으로 대응하는 파일이다. 즉, 시점 복구에도 사용 되는 중요한 Log 파일이다.

    • 또한 Replication 구성 시에는 Slave 서버가 데이터 동기화를 위해 참조하는 Log 파일이다. Replication 구성 시, 해당 Log 구성이 필수다.

      2021.03.04 - [MySQL/Replication] - Replication 작동구조
    • Binary 와 같은 이름 처럼 실제 파일 내에 기록되는 내용은 이진 (binary) 형식으로 저장된다. 그렇기 때문에 여기서 텍스트형식으로 추출하려면 mysqlbinlog 기능을 사용해야 한다.

  • DB의 파라미터를 구성하는 my.cnf 파일에서 설정 가능.  --log-bin[=base_name] 으로 설정

  • log-bin 기록 옵션은 동적 옵션이므로 DB console 에서도 동적 설정 가능 (bin log on off 는 재기동 필요)

    • 예를 들어, binlog 과다 발생으로 인한 가용 데이터 용량등의 서버운영상의 이유로 bin-log 저장을 임시로 막고 싶으면 SET sql_log_bin=OFF 등의 옵션으로 설정가능
  • mysqld 는 DB가 현재 읽어들인 bin-log 파일 리스트를 개별파일로 저장하는데 이 때, 이 개별파일 번호를 저장하는 파일이 있음. 이 보관함 파일 확장자는 .index임.  --log-bin-index[=file_name] 옵션으로도 설정 가능

    • 해당 파일을 오픈하면 기록된 binlog 파일 리스트를 확인 해 볼 수 있다, 운영중에 해당파일을 수정하면 DB 가 현재 읽어 들여야할 bin-log 번호를 인지하지 못하여 error 가 발생 할 수 있으므로 주의 해야함.

 

  • Binlog 삭제는 Reset Master 또는 Purge 로 수행함

    • 수동으로 DB 가 읽는중인 bin-log 파일을 삭제시, DB 가 읽어 들어야할 binlog 를 찾지못하여 재기동을 할 수가 없음. 장애 발생 원인 중 하나 이므로 주의 해야함.

    • binlog 삭제 시에는 콘솔에서 show master status 로 해당 DB가 현재 읽어 들이는 binlog 파일 번호를 확인 후 삭제
반응형
Comments