메뉴 건너뛰기

조회 수 117 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

# 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.


List of Articles
번호 제목 날짜 조회 수
86 MySQL 에서 테이블에 이미 존재하는 값으로 UPDATE 하는 경우 file 2018.07.18 1533
85 MyISAM 스토리지 엔진에서 테이블의 최대 저장 row 개수 2018.07.18 1558
84 MySQL replication SQL 문 실행 오류 해결 방법 2018.07.18 1608
83 mysql-bin 로그를 SQL 문으로 변환한는 방법 2018.07.18 1672
82 InnoDB 스토리지 엔진에서 테이블의 최대 저장 row 개수 2018.07.18 1675
81 MySQL 마스터/마스터 replication 에서 AUTO_INCREMENT 문제 해결 방법 2018.07.18 1941
80 MySQL 중복 데이터 찾아서 삭제하기 2019.01.11 1949
79 MySQL DB 에 한글 utf8 문자열 INSERT 오류 해결 방법 file 2018.07.18 2039
78 [MySQL] 세로열을 가로열로 출력하기 2019.03.05 2096
77 한글정렬 order by 2019.02.19 2424
76 MySQL 클라이언트/서버 프로토콜 2018.07.18 2750
75 특정 테이블만 replication 하거나 제외하는 방법 2018.07.18 2822
74 중복데이터 하나만 빼고 삭제 2019.01.11 3163
73 서브쿼리 file 2017.11.16 3444
72 mysql(union,join) file 2017.11.16 3837
71 일반적인 오류를 해결하는 유용한 정보들 file 2020.11.23 3862
70 MySQL〃오라클의 nextval을 MySQL에서 사용하기 2018.07.24 3864
69 전체 텍스트 검색과 파티션 file 2017.12.22 3868
68 MySQL 연결 속도 2017.12.28 3917
67 Union 사용법. 여러 테이블의 같은 값을 한번 쿼리로 추출하기 2017.11.21 3918
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved