Code/Database (DB)

mysql binlog 파일 정리

codens 2022. 6. 18. 13:10



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

 

 

반응형