MySQL 또는 MariaDB를 설치한 다음 InnoDB를 데이터베이스로 사용하다 성능 튜닝을 위해 버퍼풀 사이즈를 늘려야 하는 경우 innodb_buffer_pool_size 값을 변경해야 합니다.

InnoDB: Error: log file ./ib_logfile0 is of different size 0 67,108,864 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!

innodb_buffer_pool_size를 변경하는 경우 버퍼풀 크기의 25% 정도로 로그 파일을 지정해야 하는데 로그 파일 크기를 지정하는 innodb_log_file_size 값을 변경하고 서비스를 시작하는 경우 기존의 로그 파일 사이즈와 맞지 않아 위와 같은 오류가 나기 때문에 MySQL 서비스를 완전히 내린 다음 InnoDB 파일을 삭제하고 다시 서비스를 올려야 합니다.

innodb_buffer_pool_size 변경 참조 사항
innodb_buffer_pool_size 변경 참조 사항

innodb_log_file_size 크기 변경하기

innodb_log_file_size = 256M

우선 my.cnf 파일을 편집기로 열어 innodb_log_file_size 항목을 원하는 값으로 설정합니다.

innodb_buffer_pool_size가 1G인 경우에는 innodb_log_file_size를 256M로 설정하면 됩니다.

MySQL 레퍼런스에서는 256M 이상의 크기는 Crush 발생시 복구 시간이 오래 걸려 권장하고 있지 않으니 버퍼풀 크기가 더 커도 256M 정도로 설정하면 되겠습니다.

# service mysql stop
# ll /var/lib/mysql/
-rw-rw----  1 mysql mysql 67108864 Mar 25 02:21 ib_logfile0
-rw-rw----  1 mysql mysql 67108864 Mar 25 02:21 ib_logfile1
-rw-rw----  1 mysql mysql 67108864 Mar 24 18:18 ib_logfile2
# service mysql start

MySQL 서비스를 내린 다음 InnoDB 파일이 위치한 경로를 확인 후 ib_logfile 형식의 파일을 삭제합니다.

삭제를 완료하면 다시 서비스를 올리면 innodb_buffer_pool_size 값 변경이 완료됩니다.

Write A Comment