본문 바로가기
공부/Mysql

[RealMysql 8.0]04아키텍처 4.2.9 언두 로그

by 띵커베르 2023. 1. 30.
728x90
  • 언두 로그
    • innodb 스토리지 엔진은 트랜잭션과 격리 수준을 보장하기 위해 DML(insert, update, delete)로 변경되기 이전 버전의 데이터를 별도로 백업하는데 이렇게 백업된 데이터를 언두 로그라고 한다.
      • 트랜잭션 보장
        • 트랜잭션 롤백시 언두 로그에 백업된 데이터로 복구한다.
      • 격리 수준 보장
        • 특정 커넥션에서 데이터 변경시 다른 커넥션이 조회할 경우 격리 수준에 맞게 레코드를 읽는다.
  • 언두 로그 레코드 모니터링
    • 5.5 이전 버전에는 mysql 서버에서 한번 증가한 언두 로그 공간은 다시 줄어들지 않았다.
    • 5.7과 8.0 버전에서는 이러한 언두 로그 공간에 대한 문제를 해결하였다.
      • 언두로그를 돌아가면서 순차적으로 사용해 디스크공간을 줄이는 것도 가능, mysql 서버가 필요한 시점에 사용 공간을 자동으로 줄여주기도 한다.
  • 언두 테이블스페이스 관리
    • 언두 로그가 저장되는 공간을 언두 테이블스페이스 라고 한다.
    • 5.6 이전 버전에어슨 언두 로그가 모두 시스템 테이블스페이스에 저장됐다.
      • mysql 서버가 초기화 될때 생성되기 때문에 확장의 한계가 있었다.
    • 5.6버전 부터는 시스템 변수를 이용하여, 기존대로 시스템 테이블스페이스에 저장, 또는 별도의 언두 로그 파일을 사용)
    • 8.0.14버전부터는 기존 시스템 변수는 deprecated 되었으며,  언두 로그는 항상 시스템 테이블스페이스 외부의 별도 로그 파일에 기록되도록 개선되었다.
    • 언두 로그 공간이 남는것은 크게 문제되지 않지만, 언두 로그 슬롯이 부족한 경우 트랜잭션을 시작할 수 없는 심각한 문제가 발생한다.(기본값을 추천한다.)
728x90

댓글