콘텐츠로 이동

12-10-InnoDB

Real MySQL 8.0 1 - 아키텍처


InnoDB

  • 자동화된 장애 복구
    • MySQL 서버가 시작될 때 완료되지 못한 트랜잭션이나 디스크에 일부만 기록된 데이터 페이지 등에 대한 일련의 복구 작업이 자동으로 진행
    • 자동으로 복구될 수 없는 손상 -> 서버 종료
    • innodb_force_recovery: 손상 검사 옵션 설정
    • 옵션이 1-6까지 있는데, 모든 경우 MySQL이 시작되면 mysqldump를 이용해 데이터를 백업하고 다시 구축하는 것이 좋다고 함
    • 마지막으로 MySQL 서버가 시작되지 않으면 백업을 이용해 다시 구축해라

InnoDB 버퍼 풀

  • 디스크의 데이터 파일이나 인덱스 정보를 메모리에 캐시해 두는 공간
  • 쓰기 작업을 지연시켜 일괄 작업으로 처리할 수 있게 해주는 버퍼 역
  • LRU 리스트, 플러시 리스트, 프리 리스트
  • 리두 로그: 장애 복구용 변경 기록 일지
    • 주기적으로 디스크에 동기화
  • 더티 페이지: 메모리에만 있고 디스크에 쓰지 않은 데이터
  • 언두 로그: 트랜잭션과 격리 수준을 보장하기 위해 DML로 변경되기 이전 백업 데이터
    • 트랜잭션 보장: 언두 로그에 백업해둔 이전 버전을 이용하여 롤백
    • 격리 수준 보장: 다른 커넥션이 변경 중인 레코드를 읽지 않고 언두 로그에 백업해둔 데이터를 읽어 반환