12-10-InnoDB¶
Real MySQL 8.0 1 - 아키텍처
InnoDB¶
- 자동화된 장애 복구
- MySQL 서버가 시작될 때 완료되지 못한 트랜잭션이나 디스크에 일부만 기록된 데이터 페이지 등에 대한 일련의 복구 작업이 자동으로 진행
- 자동으로 복구될 수 없는 손상 -> 서버 종료
innodb_force_recovery: 손상 검사 옵션 설정- 옵션이 1-6까지 있는데, 모든 경우 MySQL이 시작되면 mysqldump를 이용해 데이터를 백업하고 다시 구축하는 것이 좋다고 함
- 마지막으로 MySQL 서버가 시작되지 않으면 백업을 이용해 다시 구축해라
InnoDB 버퍼 풀¶
- 디스크의 데이터 파일이나 인덱스 정보를 메모리에 캐시해 두는 공간
- 쓰기 작업을 지연시켜 일괄 작업으로 처리할 수 있게 해주는 버퍼 역
- LRU 리스트, 플러시 리스트, 프리 리스트
- 리두 로그: 장애 복구용 변경 기록 일지
- 주기적으로 디스크에 동기화
- 더티 페이지: 메모리에만 있고 디스크에 쓰지 않은 데이터
- 언두 로그: 트랜잭션과 격리 수준을 보장하기 위해 DML로 변경되기 이전 백업 데이터
- 트랜잭션 보장: 언두 로그에 백업해둔 이전 버전을 이용하여 롤백
- 격리 수준 보장: 다른 커넥션이 변경 중인 레코드를 읽지 않고 언두 로그에 백업해둔 데이터를 읽어 반환