RadarURL
데이터베이스

Mysql binary log 정리, 삭제 주기 설정

by JaeSoo posted Nov 17, 2014
?

Shortcut

PrevPrev Article

NextNext Article

ESCClose

Larger Font Smaller Font Up Down Go comment Print

DB에 레코드가 많이 쌓여 테이블 파일의 용량이 증가하는 것도 문제지만,

binary log를 초기 세팅대로 방치하면 금방 HDD가 꽉 차게 된다.

 

# ll -h
total 22G
drwx------ 2 mysql mysql 4.0K Feb 5 10:37 acclog
-rw-r----- 1 mysql mysql 112K Feb 5 19:09 localhost.localdomain.err
-rw-rw---- 1 mysql mysql 5 Feb 5 19:09 localhost.localdomain.pid
drwx------ 2 mysql mysql 4.0K Feb 5 10:15 mysql
-rw-rw---- 1 mysql mysql 1.1G Feb 15 07:13 mysql-bin.000174
-rw-rw---- 1 mysql mysql 1.1G Feb 15 07:24 mysql-bin.000175
-rw-rw---- 1 mysql mysql 1.1G Feb 15 07:36 mysql-bin.000176
-rw-rw---- 1 mysql mysql 1.1G Feb 15 07:47 mysql-bin.000177
-rw-rw---- 1 mysql mysql 1.1G Feb 15 07:59 mysql-bin.000178
-rw-rw---- 1 mysql mysql 1.1G Feb 15 08:16 mysql-bin.000179
-rw-rw---- 1 mysql mysql 1.1G Feb 15 08:31 mysql-bin.000180
-rw-rw---- 1 mysql mysql 1.1G Feb 15 08:42 mysql-bin.000181
-rw-rw---- 1 mysql mysql 1.1G Feb 15 08:54 mysql-bin.000182
-rw-rw---- 1 mysql mysql 1.1G Feb 15 09:05 mysql-bin.000183
-rw-rw---- 1 mysql mysql 1.1G Feb 15 09:17 mysql-bin.000184
-rw-rw---- 1 mysql mysql 1.1G Feb 15 09:29 mysql-bin.000185
-rw-rw---- 1 mysql mysql 1.1G Feb 15 09:40 mysql-bin.000186
-rw-rw---- 1 mysql mysql 1.1G Feb 15 09:52 mysql-bin.000187
-rw-rw---- 1 mysql mysql 1.1G Feb 15 10:04 mysql-bin.000188
-rw-rw---- 1 mysql mysql 334M Feb 15 11:43 mysql-bin.000189
-rw-r----- 1 mysql mysql 418 Feb 15 10:04 mysql-bin.index
drwx------ 2 mysql mysql 4.0K Feb 5 10:15 test

data 디렉토리(configure에 따라 다름) 내의 파일들을 보면 binary log가 많이 생성된 것을 알 수 있다.

파일을 rm 명령어로 직접 지우지 말고 mysql 콘솔에서 지우는 것이 바람직하다.

 

 mysql> show binary logs;
+------------------+------------+
| Log_name         | File_size  |
+------------------+------------+
| mysql-bin.000174 | 1073742003 |
| mysql-bin.000175 | 1073742050 |
| mysql-bin.000176 | 1073741968 |
| mysql-bin.000177 | 1073742039 |
| mysql-bin.000178 | 1073741908 |
| mysql-bin.000179 | 1073742024 |
| mysql-bin.000180 | 1073742027 |
| mysql-bin.000181 | 1073741959 |
| mysql-bin.000182 | 1073741883 |
| mysql-bin.000183 | 1073741988 |
| mysql-bin.000184 | 1073741999 |
| mysql-bin.000185 | 1073741927 |
| mysql-bin.000186 | 1073742098 |
| mysql-bin.000187 | 1073742018 |
| mysql-bin.000188 | 1073742083 |
| mysql-bin.000189 |  349569498 |
+------------------+------------+
16 rows in set (0.00 sec)

mysql 콘솔에서는 위 명령으로 확인 가능.

 

mysql> purge master logs to 'mysql-bin.000186';
Query OK, 0 rows affected (0.91 sec)

mysql> show binary logs;
+------------------+------------+
| Log_name         | File_size  |
+------------------+------------+
| mysql-bin.000186 | 1073742098 |
| mysql-bin.000187 | 1073742018 |
| mysql-bin.000188 | 1073742083 |
| mysql-bin.000189 |  349742255 |
+------------------+------------+
4 rows in set (0.00 sec)

위 명령어에서 binary 로그 이름을 지정하면 해당 파일 이전의 파일들을 모두 삭제한다.

 

mysql> set global expire_logs_days=2;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW VARIABLES LIKE '%expire%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| expire_logs_days | 2     |
+------------------+-------+
1 row in set (0.00 sec)

그리고 binary 로그를 저장할 주기를 설정한다.

시스템 사고가 발생해도 근시일 내에 확인할 수 있거나 특별히 백업해 분석할 것이 아니라면 2일 정도면 충분할 것이다.


출처 : http://whiterussian.tistory.com/entry/binary-log-%EC%A0%95%EB%A6%AC-%EC%82%AD%EC%A0%9C-%EC%A3%BC%EA%B8%B0-%EC%84%A4%EC%A0%95

Who's JaeSoo

profile

http://JaeSoo.com Administrator


Articles

1 2 3 4 5 6 7 8 9 10