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)