2011-09-11 7 views
21

몇 가지 명령 (FLUSH LOGS, PURGE MASTER)을 시도했지만 로그 파일 (이전에 활성화되었을 때) 또는 로그 테이블 (mysql/slow_log.CSV 및 mysql/general_log.CSV 및 .frm 및 .CSM 사본)을 삭제하지 않습니다. .MySQL에서는 필요없는 모든 로그를 삭제/플러시/삭제할 수 있습니까?

SHOW BINARY LOGS는 "바이너리 로깅을 사용하고 있지 않습니다"를 반환합니다.

편집 : 그냥 닫고 로그 파일을 다시 열립니다

TRUNCATE mysql.general_log; 
TRUNCATE mysql.slow_log; 

답변

24

플러시 LOGS : 나는 (아직 MySQL의 명령을 사용하여 파일 로그를하지만) 테이블 로그를 지우려면이 간단한 해결책을 찾아 냈다. 로그 파일이 크면 로그 파일이 줄어들지 않습니다. 리눅스를 사용하고 있다면 mv을 사용하여 로그 파일의 이름을 바꾸고, FLUSH LOGS 후에 MySQL이 새로운 작은 파일을 작성하고 이전의 큰 파일을 제거 할 수 있음을 알 수 있습니다.

2 진 로그가 다릅니다. 오래된 binlog를 제거하려면 PURGE BINARY LOGS을 사용하십시오. 슬레이브 (존재하는 경우)가 여전히 바이너리 로그를 사용하고 있지 않은지 확인하십시오. 즉, SHOW SLAVE STATUS를 실행하여 작업중인 binlog 파일을 확인하고 해당 파일 또는 이후 파일을 제거하지 마십시오.

또한 binlog는 백업에서 복원 한 다음 binlog를 다시 적용하여 데이터베이스를 최신 상태로 유지해야하는 경우에 대비하여 특정 시점 복구에 유용합니다. 이 방법으로 binlogs를 사용해야하는 경우 마지막 백업 이후 작성된 binlog를 제거하지 마십시오. 두 번 트릭을 할 것입니다 이것을 실행하면 아마존 RDS에있는 경우

+0

Windows 용? – pollux1er

+4

@ pollux1er, 저는 Windows를하지 않습니다. 죄송합니다. –

+0

나는'sudo service mysql restart'를 사용하여'mv'와'rm' 명령 다음에 mysql을 다시 시작한 다음 mysql이'sudo service mysql status'를 사용하여 돌아 왔는지 확인해야했습니다. – dazito

0

은 바이너리 로깅이 서버에서 사용할 수 없습니다 .And 난 당신이 원하는 생각 보인다 바이너리 로깅 할 때 사용/생성 된 이전 로그 파일을 삭제하십시오. 원하는 경우 'rm'명령을 사용하여 수동으로 삭제할 수 있습니다. 바이너리 로깅을 활성화하려면 구성 파일을 업데이트하여 동일하게 수행 할 수 있습니다 (그러나 이미 실행중인 경우 서버를 다시 시작해야합니다). 아래 링크를 참조 할 수 있습니다. http://dev.mysql.com/doc/refman/5.0/en/replication-options-binary-log.html#option_mysqld_log-bin http://dev.mysql.com/doc/refman/5.0/en/replication-options-binary-log.html#sysvar_log_bin

관련 문제