• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 1. MySQL Server
    2. MySQL Server 로그
    1. 일반 쿼리 로그와 슬로우 쿼리 로그 대상 선택
    2. 에러 로그
    3. 일반 쿼리 로그
    4. 바이너리 로그
    5. 슬로우 쿼리 로그
    6. DDL 로그
    7. 서버 로그의 유지 보수
    3. 하나의 시스템에서 여러 MySQL 인스턴스 실행
    4. DTrace를 사용하여 mysqld 추적
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

5.2.1 일반 쿼리 로그와 슬로우 쿼리 로그 대상 선택

MySQL Server에서는 일반 쿼리 로그와 슬로우 쿼리 로그가 활성화되어있는 경우 이러한 로그에 출력을 유연하게 제어 할 수 있습니다. 로그 항목의 가능한 대상은 로그 파일 또는 mysql 데이터베이스의 general_log 및 slow_log 테이블입니다. 하나 또는 둘의 대상을 선택할 수 있습니다.

서버 시작시 로그 제어. --log-output 옵션은 로그 출력 대상을 지정합니다. 이 옵션 자체가 로그를 활성화하지 않습니다. 이 구문은 --log-output[= value ,...] 입니다.

  • --log-output 값이 지정되는 경우, 값은 TABLE (테이블에 기록), FILE (파일에 기록), 또는 NONE (테이블에도 파일에 로그를 출력하지 않는다) 중 1 개 이상 단어의 쉼표로 구분 된 목록으로합니다. NONE 이있는 경우 다른 지정자보다 우선합니다.

  • --log-output 이 생략 된 경우 기본 로깅 출력은 FILE 입니다.

general_log 시스템 변수는 선택 된 로그 대상에 대한 일반 쿼리 로그에 로깅을 제어합니다. 서버 시작시 지정된 경우 general_log 로그를 활성화 또는 비활성화하는 옵션 인수 1 또는 0을 취합니다. 파일 로깅에 대한 기본 이외의 파일 이름을 지정하려면 general_log_file 변수를 설정합니다. 마찬가지로 slow_query_log 변수는 선택된 대상에 대한 슬로우 쿼리 로그에 로깅을 제어하고 slow_query_log_file 설정 파일 로깅을위한 파일 이름을 지정합니다. 하나의 로그가 활성화 된 경우, 서버는 해당 로그 파일을 열고 로그 파일에 부팅 메시지를 씁니다. 그러나 FILE 로그 대상이 선택되지 않는 한 파일에 대한 더 이상의 쿼리 로깅이 수행되지 않습니다.

예 :

  • 일반 쿼리 로그 엔트리를 로그 테이블 및 로그 파일에 쓰려면 --log-output=TABLE,FILE 를 사용하여 두 로그 대상을 선택하고 --general_log 를 사용하여 일반 쿼리 로그를 활성화 화합니다.

  • 일반 쿼리 로그 항목 및 슬로우 쿼리 로그 엔트리를 로그 테이블에만 쓰려면 --log-output=TABLE 을 사용하여 테이블을 로그 대상으로 선택하고 --general_log 및 --slow_query_log 를 사용하여 두 로그를 활성화합니다.

  • 슬로우 쿼리 로그 엔트리를 로그 파일에만 기록에는 --log-output=FILE 을 사용하여 파일을 로그 대상으로 선택하고 --slow_query_log 을 사용하여 슬로우 쿼리 로그를 활성화합니다. (이 경우 기본 로그 출력은 FILE 이기 때문에 --log-output 옵션을 생략 할 수 있습니다.)

런타임 로그 제어. 로그 테이블 및 파일에 관련된 시스템 변수는 로깅에 대한 런타임 제어가 가능합니다.

  • 글로벌 log_output 시스템 변수는 현재 로깅 출력을 나타냅니다. 출력 위치를 변경하기 위해이를 실행시 변경할 수 있습니다.

  • 글로벌 general_log 및 slow_query_log 변수는 일반 쿼리 로그와 슬로우 쿼리 로그를 활성화 ( ON ) 또는 비활성화 ( OFF ) 여부를 지시합니다. 이러한 변수를 실행시에 설정하여 로그를 활성화할지 여부를 제어 할 수 있습니다.

  • 글로벌 general_log_file 및 slow_query_log_file 변수는 일반 쿼리 로그 파일과 슬로우 쿼리 로그 파일의 이름을 지정합니다. 이러한 변수를 서버 시작시 또는 실행시에 설정하여 로그 파일의 이름을 변경 할 수 있습니다.

  • 현재 연결에 대한 일반 쿼리 로깅을 비활성화 또는 활성화하려면 세션 sql_log_off 변수를 ON 또는 OFF 로 설정합니다.

기록 용 테이블을 사용하는 것은 다음과 같은 장점이 있습니다.

  • 로그 항목이 표준 형식을가집니다. 로그 테이블의 현재 구조를 표시하려면 다음 문을 사용합니다.

     SHOW CREATE TABLE mysql.general_log;
     SHOW CREATE TABLE mysql.slow_log;
    
  • 로그 내용에 SQL 문을 사용하여 액세스 할 수 있습니다. 따라서 특정 기준을 충족 로그 항목 만 선택하는 쿼리를 사용할 수 있습니다. 예를 들어, 특정 클라이언트에 연관된 로그 내용을 선택하려면 (클라이언트에서 문제가있는 쿼리를 식별하는 데 도움이 될 수 있습니다) 로그 파일보다 로그 테이블을 사용하여 수행 쉽습니다 .

  • 서버에 연결하고 쿼리를 실행할 수있는 모든 클라이언트를 통해 로그에 원격으로 액세스 할 수 있습니다 (클라이언트가 적절한 로그 테이블 권한이있는 경우). 서버 호스트에 로그인하여 파일 시스템에 직접 액세스 할 필요가 없습니다.

로그 테이블의 구현에는 다음과 같은 특징이 있습니다.

  • 일반적으로 로그 테이블의 주요 목적은 서버의 런타임 실행을 관찰하는 사용자 인터페이스를 제공하여 서버의 런타임 실행을 방해하지 않습니다.

  • CREATE TABLE , ALTER TABLE 및 DROP TABLE 로그 테이블에서 유효한 작업입니다. ALTER TABLE 및 DROP TABLE 의 경우 로그 테이블은 사용 중이 안되어 나중에 설명하도록 해제해야합니다.

  • 기본적으로 로그 테이블은 쉼표로 구분 된 값 형식으로 데이터를 기록 CSV 스토리지 엔진을 사용합니다. 로그 테이블 데이터를 포함 .CSV 파일에 액세스하는 사용자의 경우 CSV 입력을 처리 할 수있는 스프레드 시트와 같은 다른 프로그램에 파일을 쉽게 가져올 수 있습니다.

    로그 테이블은 MyISAM 스토리지 엔진을 사용하도록 변경 할 수 있습니다. 사용중인 로그 테이블을 변경하기 위해 ALTER TABLE 을 사용할 수 없습니다. 로그를 먼저 해제해야합니다. CSV 또는 MyISAM 을 제외한 모든 엔진은 로그 테이블에 대하여 적합하지 않습니다.

  • 로그 테이블을 변경 (또는 삭제) 할 수 있도록 로깅을 비활성화하려면 다음의 방법을 사용할 수 있습니다. 이 예제에서는 일반 쿼리 로그를 사용하고, 슬로우 쿼리 로그에 대한 절차도 비슷하지만 slow_log 테이블 및 slow_query_log 시스템 변수를 사용합니다.

     SET @old_log_state = @@ global.general_log;
     SET GLOBAL general_log = 'OFF';
     ALTER TABLE mysql.general_log ENGINE = MyISAM;
     SET GLOBAL general_log = @old_log_state;
    
  • TRUNCATE TABLE 은 로그 테이블에서 유효한 작업입니다. 로그 항목을 만료하는 데 사용할 수 있습니다.

  • RENAME TABLE 로그 테이블에서 유효한 작업입니다. 다음 방법을 사용하여 (예를 들어 로그 회전을 실행하기 위해) 로그 테이블을 원자 적으로 이름을 바꿀 수 있습니다.

     USE mysql;
     DROP TABLE IF EXISTS general_log2;
     CREATE TABLE general_log2 LIKE general_log;
     RENAME TABLE general_log TO general_log_backup, general_log2 TO general_log;
    
  • CHECK TABLE 로그 테이블에서 유효한 작업입니다.

  • LOCK TABLES 를 로그 테이블에서 사용할 수 없습니다.

  • INSERT , DELETE 및 UPDATE 를 로그 테이블에서 사용할 수 없습니다. 이러한 작업은 서버 자체 내에서만 허용됩니다.

  • FLUSH TABLES WITH READ LOCK 및 글로벌 read_only 시스템 변수의 상태는 로그 테이블에 영향을 미치지 않습니다. 서버는 항상 로그 테이블에 기록 할 수 있습니다.

  • 로그 테이블에 기록 된 항목은 바이너리 로그에 기록되지 않기 때문에 슬레이브 서버에 복제되지 않습니다. (MySQL 5.6.9 이전에는, 이것은 항상 올바르게 적용되는 것은 없습니다 .Bug # 14741537를 참조하십시오.)

  • 로그 테이블 또는 로그 파일을 플래시하려면 FLUSH TABLES 또는 FLUSH LOGS 를 각각 사용합니다.

  • 로그 테이블의 분할은 허용되지 않습니다.

  • MySQL 5.6.6 이전에서는 mysqldump는 mysql 데이터베이스 덤프로 general_log 테이블도 slow_query_log 테이블도 덤프하지 않습니다. 5.6.6 이상에서는 덤프에는 그 테이블을 다시 작성하기위한 문이 포함되어 있기 때문에 덤프 파일을 다시로드 한 후 그 테이블이 손실되지 않습니다. 로그 테이블의 내용은 덤프되지 않습니다.


서울시 강남구 영동대로 602 6층  TEL: 02-6061-0006
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved