일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- magic bytes
- html pdf 변환
- usb efi 시스템 파티션 삭제
- javascript
- 아파치 웹 서버의 정보 숨기기
- bootstrap modal
- bootstrap
- mysqldump: Got error: 1045
- group_concat 구분자
- 비밀번호정규식
- svn 충돌 해결 resolve
- apache mod rewrite
- (using password: YES)" when trying to connect
- 세로 중앙 정렬
- JQuery checkbox 컨트롤
- PHP 구글 OTP 연동
- wkhtmltopdf 실행 오류
- 부트스트랩4 세로 중앙 정렬
- modsecurity 설치
- 자바스크립트비밀번호검증
- PHP 정규식 예제
- PHP 구글 OTP 인증
- 비밀번호검증정규식
- php 특정 문자열 취환
- svn 충돌 해결 resolved
- mysql root 비밀번호 변경
- libxrender1
- 구글 OTP 인증
- 파라미터 & 오류
- 우분투 mysql 비밀번호 없이 로그인 될때
- Today
- Total
투덜이 개발자
mysql-bin(binary log)파일 정리 및 삭제 주기 설정 본문
mysql-bin(binary log)파일 정리 및 삭제 주기 설정
# mysql-bin(binary log)파일 정리 및 삭제 주기 설정 #
linux 에서 mysql 및 mariadb 설치 후 무한정 늘어나느 log-bin 파일에 대해
파일 정리 및 삭제 주기 설정하는 방법에 대하 설명하겠습니다.
mysql-bin 파일은 db 에서 사용된 쿼리들이 로깅되는 파일이며 Innodb 혹은 Replication등에서 사용되곤 합니다.
linux 에서 db 설치 후 db 경로를 따로 지정하지 않는경우 default 경로는
/var/lib/mysql 입니다.
/ 경로 하위이다 보니 갑자기 어느날 / 경로가 말도 안되게 늘어나 있는 경우가 있습니다.
따로 /db 로 파티셔닝을 한 경우도 마찬가지로 log-bin 파일의 저장 기한을 설정하지 않는 이상
log-bin 파일로 인해 용량이 무한정 늘어날 수 있습니다.
[root@localhost mysql]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 4.0K 1.9G 1% /dev/shm tmpfs 1.9G 13M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda2 42G 11G 32G 26% / /dev/sda1 497M 173M 324M 35% /boot tmpfs 378M 40K 378M 1% /run/user/0 |
[root@localhost mysql]# ll mysql-bin.* -rw-rw---- 1 mysql mysql 723 3월 16 14:07 mysql-bin.000001 -rw-rw---- 1 mysql mysql 1013906 3월 16 14:07 mysql-bin.000002 -rw-rw---- 1 mysql mysql 179012 3월 16 14:25 mysql-bin.000003 -rw-rw---- 1 mysql mysql 181801 3월 17 10:43 mysql-bin.000004 -rw-rw---- 1 mysql mysql 59803 3월 17 13:44 mysql-bin.000005 -rw-rw---- 1 mysql mysql 365 3월 17 16:31 mysql-bin.000006 -rw-rw---- 1 mysql mysql 59803 3월 23 18:42 mysql-bin.000007 -rw-rw---- 1 mysql mysql 59803 7월 15 16:15 mysql-bin.000008 -rw-rw---- 1 mysql mysql 316828 9월 1 09:51 mysql-bin.000009 -rw-rw---- 1 mysql mysql 12269 9월 1 10:12 mysql-bin.000010 -rw-rw---- 1 mysql mysql 65375 9월 1 10:16 mysql-bin.000011 -rw-rw---- 1 mysql mysql 63141 9월 1 10:27 mysql-bin.000012 -rw-rw---- 1 mysql mysql 59803 9월 3 15:02 mysql-bin.000013 -rw-rw---- 1 mysql mysql 59803 9월 7 13:42 mysql-bin.000014 -rw-rw---- 1 mysql mysql 59803 9월 7 13:53 mysql-bin.000015 -rw-rw---- 1 mysql mysql 63374 9월 7 13:58 mysql-bin.000016 -rw-rw---- 1 mysql mysql 59803 9월 7 14:26 mysql-bin.000017 -rw-rw---- 1 mysql mysql 119241 9월 7 14:37 mysql-bin.000018 -rw-rw---- 1 mysql mysql 80258 9월 14 13:52 mysql-bin.000019 -rw-rw---- 1 mysql mysql 361 9월 14 13:44 mysql-bin.index |
mysql-bin 파일은 OS 에서 삭제하는것 보다 mysql 콘솔에서 삭제 하는것이 바람직 합니다.
mysql 에서 제공되는 파일이므로 mysql 콘솔에서 삭제하는것이 깔끔합니다.
db 로 접속 합니다.
[root@localhost ~]# mysql -uroot -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 184 Server version: 10.2.37-MariaDB-log MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> use mysql Database changed MariaDB [mysql]> |
mysql 로 접속 후 하기 명령어로 확인 가능 합니다.
MariaDB [mysql]> show binary logs;
MariaDB [mysql]> show binary logs; +------------------+-----------+ | Log_name | File_size | +------------------+-----------+ | mysql-bin.000001 | 723 | | mysql-bin.000002 | 1013906 | | mysql-bin.000003 | 179012 | | mysql-bin.000004 | 181801 | | mysql-bin.000005 | 59803 | | mysql-bin.000006 | 365 | | mysql-bin.000007 | 59803 | | mysql-bin.000008 | 59803 | | mysql-bin.000009 | 316828 | | mysql-bin.000010 | 12269 | | mysql-bin.000011 | 65375 | | mysql-bin.000012 | 63141 | | mysql-bin.000013 | 59803 | | mysql-bin.000014 | 59803 | | mysql-bin.000015 | 59803 | | mysql-bin.000016 | 63374 | | mysql-bin.000017 | 59803 | | mysql-bin.000018 | 119241 | | mysql-bin.000019 | 80258 | +------------------+-----------+ 19 rows in set (0.00 sec) |
전부 다 삭제하려면 제일 마지막 번호까지 입력해 주시면 됩니다.
*ex)purge master logs to 'mysql-bin.000019';
000014 번 이전의 로그만 삭제해 보겠습니다.
MariaDB [mysql]> purge master logs to 'mysql-bin.000014';
MariaDB [mysql]> purge master logs to 'mysql-bin.000014'; Query OK, 0 rows affected (0.00 sec) MariaDB [mysql]> show binary logs; +------------------+-----------+ | Log_name | File_size | +------------------+-----------+ | mysql-bin.000014 | 59803 | | mysql-bin.000015 | 59803 | | mysql-bin.000016 | 63374 | | mysql-bin.000017 | 59803 | | mysql-bin.000018 | 119241 | | mysql-bin.000019 | 80258 | +------------------+-----------+ 6 rows in set (0.00 sec) |
삭제 후 매번 삭제를 하기는 귀찮으니 자동 삭제 주기를 설정하겠습니다.
삭제 주기는 시스템 사고가 발생해도 몇일 내에 확인할 수 있거나 특별히 백업해 분석할 것이 아니라면 2주 정도면 충분 합니다.
# 보관주기 확인 #
기존 expire_logs_days 가 '0' 이라면 삭제되지 않고 계속 저장이 됩니다.
MariaDB [mysql]> SHOW VARIABLES LIKE '%expire_logs%'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | expire_logs_days | 0 | +------------------+-------+ 1 row in set (0.00 sec) |
# 보관주기 14일로 변경 후 다시 확인 #
MariaDB [mysql]> set global expire_logs_days=14; Query OK, 0 rows affected (0.00 sec) MariaDB [mysql]> SHOW VARIABLES LIKE '%expire_logs%'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | expire_logs_days | 14 | +------------------+-------+ 1 row in set (0.00 sec) |
14일이 지난 파일들은 삭제가 됩니다.
아예 생성하고 싶지 않다면 하기 경로로 들어가 log-bin 경로를 주석처리 해주시면 됩니다.
[root@localhost /]# vi /etc/my.cnf # log-bin=mysql-bin |
end.
'DataBase > MySQL' 카테고리의 다른 글
[MySQL] 데이터베이스 및 테이블별 용량 (0) | 2022.06.16 |
---|---|
my.cnf 위치 찾기 (0) | 2022.02.21 |
mysql DB 테이블 손상 확인 및 복구방법 (0) | 2022.02.16 |
like에 변수 합치기 (0) | 2022.02.14 |
[Mysql] 생년월일 (만) 나이 계산 (0) | 2022.02.04 |