mysql binlog 파일 정리
https://dev.mysql.com/doc/internals/en/binary-log-overview.html
* 바이너리 로그(binary log, binlog) 파일 용도
- 데이터 변경 명령문(Create, Drop과 같은 DDL문과 Insert, Update, Delete와 같은 DML) 로그 기록 파일
- DB 복구에 사용됨
- 설정된 기간에 의한 파일 정리는 DB 시작시 처리됨
//-------------------------------------
< 리눅스 명령 >
- 시간순 정렬
$ sudo ls -lt /var/lib/mysql/
- 용량순 정렬
> $ sudo ls -lS /var/lib/mysql/ | sort -hr
//-------------------------------------
< mysql 명령>
- 현재 로그 파일 리스트
> show binary logs;
- 현재 설정 보기
> show variables like '%bin%';
- binlog 파일 저장 기간 조회
> show global variables like 'binlog_expire_logs_seconds';
- 초단위 / 하루= (60*60*24) = 86400
- binlog 파일 저장 기간 설정
> set global binlog_expire_logs_seconds=604800;
- 1주일 = 86400 x 7 = 604800
//-------------------------------------
* 파일 정리
- DB 시작시 설정(binlog_expire_logs_seconds)대로 정리됨
https://dev.mysql.com/doc/refman/8.0/en/purge-binary-logs.html
- 해당 파일 이전 로그 파일 삭제
> PURGE BINARY LOGS TO 'binlog.000072';
- 시간 이전 파일 삭제
> PURGE BINARY LOGS BEFORE '2022-06-01';
//-------------------------------------
// 참고
* binary log 를 이용한 데이터 복구
https://www.onlab.kr/2014/10/15/mysql-binary-log-%EA%B4%80%EB%A6%AC/
일반 쿼리로 변경하는 방법
# mysqlbinlog mysql-binlog.00001 > backup.sql
time-based recovery 응용
# mysqlbinlog --start-datetime="20140101 00:00:00" --stop-datetime="20140101 23:59:59" mysql-binlog.00001 > backup.sql