본문으로 바로가기

[Mysql] log-bin 파일 관리

category Database/Mysql 2020. 7. 28. 14:29
728x90
반응형

mysql에서는 사용한 쿼리들을 파일로 관리해주는 log-bin 기능이 있습니다.

보통 mysql replication에서 많이 사용합니다.

저도 mysql replication 때문에 사용을 하고 있고, 이로 인한 문제점을 겪어 봤습니다.

테스트용으로 사용할 때는 소량의 데이터 이기 때문에 문제가 없었습니다.

별로 신경도 쓰지 않았구요.

그러나 롱런, 대량의 데이터로 테스트를 했을 경우 한 가지 문제가 발생했습니다.

바로 파일 용량입니다.

일주일 동안 테스트를 돌려 놓고 확인 해보니 난리가 났습니다.

디스크 풀이 났더라구요.

다행히 개인 테스트를 했기에 망정이지, 실제 운용중인 사이트에서 이런 일이 발생했다면, 끔찍합니다.

제가 겪은 것이기 때문에 이를 글로 한번 정리해 보려고합니다.

===========================================================================

log-bin 파일을 사용자가 직접 삭제하는 방법도 있지만, mysql이 직접 관리하도록 해야됩니다.

mysql에서 제공해주는 것으로 삭제하는 것이 더욱 깔끔 합니다.

log-bin 파일은 쿼리로 정리할 수 있습니다.

MariaDB [(none)]> PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 30 DAY);

위의 쿼리는 30일이 지난 log-bin 파일을 삭제하는 것입니다. "INTERVAL 숫자 DAY" 로 일수는 조절할 수 있습니다.

crontab에 쿼리를 넣어서 주기적으로 실행되게 할 수 있습니다.

그러나 mysql에서는 log-bin 파일 관리 옵션들이 있습니다.

 

/etc/my.cnf 파일에 아래의 옵션을 추가합니다.


[mysqld]

max_binlog_size logbin=1G 
expire_logs_days=30

 

max_binlog_size : log-bin의 최대 사이즈

expire_logs_days : log-bin 파일의 보관 일수


위의 옵션을 추가하면, lob-bin의 크기는 최대 1G이고, 30일이 지나면 삭제시킵니다.

 

log-bin 파일을 잘 관리하시기 바랍니다.


이상입니다.

728x90
반응형

'Database > Mysql' 카테고리의 다른 글

[Mysql] mysql dump로 백업/복구 하기  (0) 2020.11.10
[Mysql] UNION과 UNION ALL의 차이  (0) 2020.08.28
[Mysql] DB 성능 튜닝 설정 값  (0) 2020.07.06
[Mysql] INDEX란  (0) 2020.06.04
[Mysql] sst란  (0) 2020.05.23