5.2.7 서버 로그의 유지 보수
섹션 5.2 "MySQL Server 로그" 에서 설명했듯이, MySQL Server는 실행중인 활동의 내용을 확인하는 데 도움이 몇 가지 로그 파일을 만들 수 있습니다. 그러나 많은 디스크 공간을 차지하지 초과하지 않도록하기 위해이 파일을 주기적으로 정리해야합니다.
로깅을 사용하여 MySQL을 사용하고있을 때 이전 로그 파일을 가끔 백업 및 삭제하고 새로운 파일에 로깅을 시작하도록 MySQL에 지시하는 것이 필요한 경우가 있습니다. 7.2 절 "데이터베이스 백업 방법" 을 참조하십시오.
Linux (Red Hat)의 설치는이를 위해 mysql-log-rotate
스크립트를 사용할 수 있습니다. RPM 배포에서 MySQL을 설치 한 경우이 스크립트는 자동으로 설치되어있을 것입니다. 복제를 위해 바이너리 로그를 사용하는 경우이 스크립트에는주의가 필요합니다. 바이너리 로그의 내용이 모든 슬레이브에 의해 처리 된 것에 확신을 가질 때까지는 바이너리 로그를 삭제하지 마십시오.
다른 시스템에서 로그 파일을 처리하기위한 cron (또는 그 등가물)에서 시작하는 짧은 스크립트를 직접 설치해야합니다.
바이너리 로그의 경우, 지정된 기간 후에 바이너리 로그 파일을 자동으로 만료되도록 expire_logs_days
시스템 변수를 설정할 수 있습니다 ( 섹션 5.1 "서버 시스템 변수" 를 참조하십시오). 복제를 사용하는 경우, 슬레이브가 마스터보다 지연 할 수있는 최대 기간을 밑돌 지 같은 변수를 설정하도록하십시오. 바이너리 로그를 주문형 삭제하려면 PURGE BINARY LOGS
문을 사용합니다 ( 섹션 13.4.1.1 "PURGE BINARY LOGS 구문" 을 참조하십시오).
로그를 플러시하여 MySQL이 새로운 로그 파일을 사용하는 것을 강제로 시작할 수 있습니다. 로그의 플래시는 FLUSH LOGS
문을 실행하거나 mysqladmin flush-logs, mysqladmin refresh, mysqldump --flush-logs 또는 mysqldump --master-data 명령을 실행하거나 할 때 실행됩니다. 섹션 13.7.6.3 "FLUSH 구문」 , 섹션 4.5.2 "mysqladmin - MySQL 서버를 관리하는 클라이언트" 및 섹션 4.5.4 "mysqldump - 데이터베이스 백업 프로그램" 을 참조하십시오. 또한 바이너리 로그는 크기가 max_binlog_size
시스템 변수의 값에 도달하면 플래시됩니다.
FLUSH LOGS
는 해당 로그의 선택적인 플래시를 가능하게하는 옵션 한정자를 지원합니다 ( FLUSH BINARY LOGS
등).
로그 플러시 작업은 다음 작업을 수행합니다.
로그 파일에 대한 일반 쿼리 로그 또는 슬로우 쿼리 로깅이 활성화되어있는 경우, 서버는 일반 쿼리 로그 파일과 슬로우 쿼리 로그 파일을 닫고 다시 오픈합니다.
바이너리 로깅이 활성화되어있는 경우 서버는 현재 바이너리 로그 파일을 닫고 새 로그 파일을 다음 시퀀스 번호에서 열립니다.
오류 로그 파일에 기록되도록하기 위해 서버가
--log-error
옵션으로 시작되는 경우, 서버는 로그 파일을 닫고 다시 오픈합니다.
로그를 플러시하면 서버는 새로운 바이너리 로그 파일을 만듭니다. 그러나 일반 쿼리 로그 파일과 슬로우 쿼리 로그 파일 내용은 그들을 닫고 다시 오픈 할뿐입니다. Unix에서 새로운 파일이 생성되도록하려면 현재 로그 파일을 플러시하기 전에 그들을 이름 변경합니다. 플래시시에 서버는 새로운 로그 파일을 원래 이름으로 엽니 다. 예를 들어, 일반 쿼리 로그 파일과 슬로우 쿼리 로그 파일의 이름이 mysql.log
와 mysql-slow.log
의 경우 다음과 같은 일련의 명령을 사용할 수 있습니다.
shell>cd mysql-data-directory
shell>mv mysql.log mysql.old
shell>mv mysql-slow.log mysql-slow.old
shell>mysqladmin flush-logs
Windows에서 mv 대신 rename을 사용하십시오.
이 시점에서 mysql.old
및 mysql-slow.old
를 백업 해, 그 후 이들을 디스크에서 제거 할 수 있습니다.
오류 로그 파일이있는 경우 비슷한 방법을 사용하여 이들을 백업 할 수 있습니다.
로그를 비활성화하여 일반 쿼리 로그 또는 슬로우 쿼리 로그를 실행할 때 이름을 바꿀 수 있습니다.
SET GLOBAL general_log = 'OFF'; SET GLOBAL slow_query_log = 'OFF';
로그가 비활성화되어있는 경우, 명령 행 등 외부에서 로그 파일의 이름을 변경하십시오. 그런 다음 로그를 다시 활성화합니다.
SET GLOBAL general_log = 'ON'; SET GLOBAL slow_query_log = 'ON';
이 방법은 모든 플랫폼에서 작동하는 서버 재부팅을 필요로하지 않습니다.