본문 바로가기

쓰기

mysql binlog 관리

haru 2017.11.28 11:15 조회 수 : 31

bin로그지우는방법

 

mysql을 이용할시 binlog 를 쌓게끔 설정하는게 대부분이다.

 

이럴경우 binlog는 계속 쌓여가는데 binlog를 특정기간 지난로그는 지우는 설정을 mysql에서 할수 있다.

 

보통 /usr/local/mysql/data/ 부분에가면 

-rw-rw----  1 mysql mysql    23119 Jul  4 17:36 mysql-bin.000001

 

위와같이 빈로그가 쌓여있다.

 

해당 로그를 rm명령어로 지워도되지만 mysql에 접근해서 지우는방법을 추천한다.

 

mysql> show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |     23119 |
+------------------+-----------+
1 row in set (0.00 sec)

 

로그가 얼마나 쌓여있는지 확인한다.

 

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

 

위 명령어로 mysql-bin.000001 보다 오래된로그를 지워준다.

 

-------------------------------------------------------------------------------------------------------------------------

 

주기적인 설정방법

 

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

 

위와같은 명령어를 할시에 3일간 binlog를 보관하겠다는 명령어다.

 

mysql> SHOW VARIABLES LIKE '%expire%';
+--------------------------------+-------+
| Variable_name                  | Value |
+--------------------------------+-------+
| disconnect_on_expired_password | ON    |
| expire_logs_days               | 3     |
+--------------------------------+-------+
2 rows in set (0.00 sec)

 

위와같은 명령어로 주기가 어떻게되는지 확인할수 있다.