
5.7.37-log MySQL 커뮤니티 서버를 사용하고 있습니다. 내 mysqld.cnf는 아래와 같습니다:
server_id = 11
log_bin = bin.log
log-bin-index = bin-log.index
binlog_format = row
max_binlog_size = 100M
socket = mysql.sock
expire_logs_days = 1
내 로그를 확인할 때 1일 안에 만료된다고 언급했지만 로그는 계속 증가합니다. 만료_로그_일을 사용합니다.
위의 구성을 사용하면 로그가 자동으로 제거될 것으로 예상할 수 있습니까, 아니면 수동으로 다시 제거해야 합니까? PURGE BINARY LOGS BEFORE NOW() - INTERVAL 1 DAY;
그러나 나는 이미 구성을 설정했을 때 위 명령문을 수동으로 실행하는 요점을 이해하지 못합니다 .
빈 로그의 만료 메커니즘을 이해하도록 도와주세요. 1일 후 만료를 사용하면 bin.00001 및 bin.0002 등의 크기가 매일 줄어들까요? 또는 로그가 실제로 만료되는지 어떻게 확인할 수 있습니까?
생성된 빈 로그의 스크린샷을 첨부합니다.
답변1
하루가 지나면 로그를 실행하고 삭제하는 타이머가 없습니다. 로그 삭제는 로그 플러시 이벤트에 의해 트리거됩니다. 그러면 새로운 binlog가 생성됩니다. 데이터베이스에서 시간이 너무 오래 걸리고 로그가 매일 플러시되지 않으면 max-binlog-size를 더 낮은 값으로 설정할 수 있습니다. 또 다른 좋은 옵션은 백업 전략의 일부로 항상 로그를 플러시하는 것입니다.