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일 정도면 충분할 것이다.
'서버&시스템 > MySQL' 카테고리의 다른 글
ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log (0) | 2014.04.24 |
---|---|
MySQL Replication (마스터-슬레이브 동기화) 설정 (0) | 2014.04.08 |
저장 프로시저 백업 (0) | 2013.05.02 |
ERROR 1251: Client does not support authentication protocol requested by server; consider upgrading MySQL client (1) | 2012.07.03 |
mysql 콘솔 명령어 기록 지우기(리눅스) (0) | 2012.01.12 |