MySQL binary log 관리

mysql binary log란?

MySQL binary log 는 update, insert, delete 등 데이터베이스에 일어나는 업데이트에 관련된 쿼리가 시간과 함께 기록되며, 데이터 복구에 이용된다.

binary log 를 이용한 데이터 복구

  • 일반 쿼리로 변경하는 방법

# mysqlbinlog mysql-binlog.00001 > backup.sql
  • time-based recovery 응용

# mysqlbinlog --start-datetime="20140101 00:00:00" --stop-datetime="20140101 23:59:59" mysql-binlog.00001 > backup.sql
  • 복구는 mysqldump로 받은 백업을 복구 하는 방법과 동일하다.

# mysql -u root -p < backup.sql

binlog 관리

  • binlog 리스트 보기

mysql> show binary logs;
+------------------+------------+
| Log_name         | File_size  |
+------------------+------------+
| mysql-bin.000001 |      25371 |
| mysql-bin.000002 |        494 |
| mysql-bin.000003 |          0 |
| mysql-bin.000004 |          0 |
| mysql-bin.000005 | 1073741973 |
| mysql-bin.000006 | 1073741955 |
| mysql-bin.000007 | 1073741896 |
| mysql-bin.000008 | 1073741904 |
| mysql-bin.000009 | 1073741882 |
| mysql-bin.000010 | 1073742092 |
| mysql-bin.000011 | 1073742712 |
| mysql-bin.000012 | 1073741968 |
| mysql-bin.000013 |  837034271 |
| mysql-bin.000014 |     344305 |
| mysql-bin.000015 |     253054 |
| mysql-bin.000016 | 1073741956 |
| mysql-bin.000017 | 1073741992 |
| mysql-bin.000018 | 1073741935 |
| mysql-bin.000019 | 1073741908 |
| mysql-bin.000020 | 1073741950 |
| mysql-bin.000021 |  429195504 |
+------------------+------------+
21 rows in set (0.13 sec)
  • binlog 만료기간 변경 방법 (my.cnf 설정)

expire_logs_days = 7 # 로그 만료 기간
  • binlog 만료기간 변경 방법(mysql console에서 변경)

mysql> show variables like '%expire%'; # 현재 만료기간 확인
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| expire_logs_days | 0     |
+------------------+-------+
1 row in set (0.00 sec)
mysql> set global expire_logs_days=7; # 만료기간 7일로 변경
  • binlog 삭제

mysql> purge master logs to 'mysql-bin.000016'; # mysql-bin.000016 이전 로그들은 모두 삭제함.
Query OK, 0 rows affected(0.94sec)
mysql> show binary logs; # 삭제 후 binlog리스트 확인.
+------------------+------------+
| Log_name         | File_size  |
+------------------+------------+
| mysql-bin.000016 | 1073741956 |
| mysql-bin.000017 | 1073741992 |
| mysql-bin.000018 | 1073741935 |
| mysql-bin.000019 | 1073741908 |
| mysql-bin.000020 | 1073741950 |
| mysql-bin.000021 |  429195504 |
+------------------+------------+
21 rows in set (0.10 sec)

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다