my sql 로그 시스템 의 간단 한 사용 튜 토리 얼

7893 단어 mysql로그계통
머리말
MySQL 은 스웨덴 MySQL AB 사가 개발 한 관계 형 데이터베이스 관리 시스템 으로 Oracle 계열 제품 에 속한다.MySQL 은 가장 유행 하 는 관계 형 데이터베이스 관리 시스템 중 하나 로 WEB 응용 분야 에서 MySQL 은 가장 좋 은 RDBMS(Relational Database Management System,관계 데이터베이스 관리 시스템)응용 소프트웨어 중 하나 이다.
모든 데이터베이스 에 다양한 로그 가 있 고 데이터베이스 작업 의 모든 면 을 기록 하여 데이터베이스 관리자 가 데이터베이스 에서 발생 한 각종 사건 을 추적 하도록 도와 준다.
MySQL 에는 각각 4 가지 다른 로그 가 있 습 니 다.
  • 오류 로그
  • 바 이 너 리 로그(BINLOG 로그)
  • 조회 로그
  • 느 린 조회 로그
  • 이 로 그 는 데이터베이스 가 서로 다른 방면 에서 의 흔적 을 기록 하고 있 으 며,my sql 로 그 를 사용 하 는 것 을 배 우 는 것 은 우리 가 데이터 베 이 스 를 사용 하고 유지 하 는 데 큰 도움 이 된다.
    오류 로그
    오류 로 그 는 MySQL 에서 가장 중요 한 로그 중 하나 로 mysqld 가 시작 되 고 정지 되 었 을 때,서버 가 실행 중 심각 한 오류 가 발생 했 을 때의 관련 정 보 를 기록 합 니 다.데이터베이스 에 고장 이 나 서 정상적으로 사용 할 수 없 을 때 이 로 그 를 먼저 볼 수 있 습 니 다.
    이 로 그 는 기본적으로 열 려 있 습 니 다.기본 저장 디 렉 터 리 는 my sql 의 데이터 디 렉 터 리(var/lib/my sql)이 고 기본 로그 파일 이름 은 hostname.err(hostname 은 호스트 이름)입 니 다.
    1.로그 위치 보기
    
    show variables like 'log_error%';

    2.로그 내용 보기
    
    tail -f /var/lib/mysql/xxx.err

    2,2 진 로그
    바 이 너 리 로그(BINLOG)는 모든 DDL(데이터 정의 언어)문구 와 DML(데이터 조작 언어)문 구 를 기록 하지만 데이터 조회 문 구 는 포함 되 지 않 습 니 다.이 로 그 는 재난 시 데이터 복구 에 매우 중요 한 역할 을 합 니 다.MySQL 의 주종 복 제 는 이 binlog 를 통 해 이 루어 집 니 다.
    1、바 이 너 리 로그 열기
    바 이 너 리 로 그 는 기본적으로 열 리 지 않 았 습 니 다.MySQL 설정 파일 에서 열 고 MySQL 로그 의 형식 을 설정 해 야 합 니 다.
  • 프로필 위치:/etc/my.cnf
  • 로그 저장 위치:설정 할 때 파일 이름 을 정 했 지만 경 로 를 지정 하지 않 았 습 니 다.로 그 는 기본적으로 Mysql 데이터 디 렉 터 리 에 기 록 됩 니 다.
  • 
    #    binlog  ,          mysqlbin ----->         : mysqlbin.000001,mysqlbin.000002 
    log_bin=mysqlbin
     
    #           
    binlog_format=STATEMENT
    2.바 이 너 리 로그 형식
    (1)STATEMENT
    이 로그 형식 은 로그 파일 에 SQL 문장(statement)을 기록 합 니 다.데 이 터 를 수정 하 는 SQL 은 로그 파일 에 기록 되 어 있 습 니 다.Mysql 에서 제공 하 는 my sqlbinlog 도 구 를 통 해 각 문장의 텍스트 를 뚜렷하게 볼 수 있 습 니 다.마스터 복사 시 라 이브 러 리(slave)에서 로 그 를 원본 으로 해석 하고 라 이브 러 리 에서 다시 실행 합 니 다.
    (2)ROW
    이 로그 형식 은 로그 파일 에 SQL 문 구 를 기록 하 는 것 이 아니 라 줄 마다 데이터 변경 을 기록 합 니 다.예 를 들 어 SQL 문 구 를 실행 합 니 다:update tb북 set status='1',STATEMENT 로그 형식 이 라면 로그 에 SQL 파일 한 줄 을 기록 합 니 다.ROW 라면 전체 테이블 을 업데이트 하 는 것 이기 때문에 줄 마다 기록 이 변경 되 고,ROW 형식의 로그 에는 줄 마다 데이터 변경 이 기 록 됩 니 다.
    (3)MIXED
    현재 MySQL 의 기본 로그 형식 인 STATEMENT 와 ROW 두 가지 형식 이 혼 합 된 것 입 니 다.기본 적 인 상황 에서 STATEMENT 를 사용 하지만 일부 특수 한 상황 에서 ROW 를 사용 하여 기록 합 니 다.MIXED 포맷 은 두 가지 패턴 의 장점 을 최대한 활용 해 단점 을 피 할 수 있다.
    3.로그 읽 기
    로 그 를 바 이 너 리 로 저장 하기 때문에 직접 읽 을 수 없습니다.my sqlbinlog 도구 로 봐 야 합 니 다.문법 은 다음 과 같 습 니 다.
    
    mysqlbinlog log-file; 
    4.STATEMENT 형식 로그 보기
    (1)삽입 문 실행
    
    insert into tb_book values(null,'Lucene','2088-05-01','0');
    (2)my sql 데이터 파일 디 렉 터 리 에서 바 이 너 리 파일 찾기

    my sqlbin.index 는 로그 색인 파일 로 로 그 를 기록 하 는 파일 이름 입 니 다.my sql-bin.00001 은 로그 파일 입 니 다.
    (3)로그 파일 보기


    5.ROW 형식 로그 보기
    (1)설정 파일 에서 설정
    
    #    binlog  ,          mysqlbin ----->         : mysqlbin.000001,mysqlbin.000002 
    log_bin=mysqlbin
     
    #           
    binlog_format=ROW 
    주:설정 파일 을 수정 할 때마다 my sql 서 비 스 를 다시 시작 하 는 것 을 기억 합 니 다.
    
    service mysql restart
    (2)데이터 삽입

    로그 형식 이 ROW 라면 데 이 터 를 직접 볼 때 알 아 볼 수 없습니다.my sqlbinlog 뒤에 인자-vv 사용--no-defaults 인 자 를 추가 하면 문자 집합 에 미 치 는 영향 을 피 할 수 있 습 니 다.
    6、
    6.로그 삭제
    바 쁜 시스템 에 대해 서 는 매일 로 그 를 만 드 는 양 이 많 기 때문에 이 로 그 는 장시간 잘 모 르 면 디스크 공간 을 많이 차지 할 것 입 니 다.로 그 를 삭제 하 는 흔 한 방법 몇 가 지 를 설명 하 겠 습 니 다.
    (1)방법 1
    Reset Master 명령 을 통 해 모든 binlog 로 그 를 삭제 하고 삭제 한 후 로그 번 호 는 xxxx.000001 에서 다시 시작 합 니 다.
    삭제 하기 전에 로그 파일 을 조회 하 십시오:

    로그 삭제 명령 실행
    
    Reset Master
    다시 한 번 조회 해 보 겠 습 니 다.

    마지막 으로 남 은 000001 은 빈 프로필 입 니 다.
    (2)방법 2
    
    purge master logs to 'mysqlbin.******
    이 명령 은******번호 이전의 모든 로 그 를 삭제 합 니 다.
    (3)방 법 3
    
    purge master logs vefore 'yyyy-mm-dd hh24:mi:ss'
    이 명령 은yyyy-mm-dd hh24:mi:ss이전에 발생 한 모든 로 그 를 삭제 합 니 다.
    (4)방법 4
    인자expire_logs_days=#를 설정 합 니 다.이 매개 변 수 는 로그 의 만 료 일 수 를 설정 하 는 것 입 니 다.지정 한 일수 가 지나 면 로그 가 자동 으로 삭 제 됩 니 다.이렇게 하면 DBA 관리 로그 의 작업량 을 줄 일 수 있 습 니 다.

    3.조회 로그
    조회 로그 에는 클 라 이언 트 의 모든 조작 문 구 를 기록 하고 바 이 너 리 로 그 는 데 이 터 를 조회 하 는 SQL 문 구 를 포함 하지 않 습 니 다.
    기본적으로 조회 로 그 는 열 리 지 않 았 습 니 다.조회 로 그 를 열 려 면 다음 설정 을 설정 할 수 있 습 니 다.
    
    #            ,     : 0    1 ; 0     , 1      
    general_log=1
     
    #         ,       ,         host_name.log 
    general_log_file=file_name 
    1.조회 로그 열기

    2.1 조 작업 수행

    3.조회 로그 보기

    4.느 린 조회 로그
    느 린 조회 로 그 는 모든 실행 시간 이 인자 log 를 초과 하 는 것 을 기록 합 니 다.query_time 설정 값 및 스 캔 기록 수 는 min 보다 작 지 않 습 니 다.examined_row_limit 의 모든 SQL 문장의 로그 입 니 다.long_query_time 은 기본적으로 10 초,최소 0,정밀 도 는 마이크로 초 까지 가능 합 니 다.
    1.파일 위치 와 형식
    슬 로 우 조회 로 그 는 기본적으로 닫 혔 습 니 다.느 린 조회 로 그 를 두 개의 매개 변 수 를 통 해 제어 할 수 있 습 니 다.
    
    #                 ,    : 1   0 , 1     , 0      
    slow_query_log=1 
     
    #                  
    slow_query_log_file=slow_query.log
     
    #               ,              ,          ,   10s 
    long_query_time=10

    보통 2s 정도 로 설정 하면 됩 니 다.제 실험 에서 느 린 조 회 를 완성 하기 위해 저 는 0.5s 로 설 치 했 습 니 다.
    my sql 클 라 이언 트 에서 현재 log 를 조회 할 수 있 습 니 다.query_time

    2.조회 작업 수행
    (1)조회 하기 전에 느 린 조회 로 그 를 한 번 본다.

    (2)비교적 빠 른 조회 동작 을 수행 합 니 다.

    (3)느 린 조회 동작 을 수행 합 니 다.

    느 린 조회 로그 내용 이 많 으 면 파일 을 직접 보 는 것 이 귀 찮 습 니 다.이 럴 때 my sql 자체 가 가지 고 있 는 my sqldumpslow 도 구 를 통 해 느 린 조회 로 그 를 분류 하여 모 을 수 있 습 니 다.

    여 기 는 느 린 조회 기록 만 있 기 때문에 my sqldumpslow 의 역할 을 나타 내지 않 지만 느 린 조회 기록 이 많 으 면 분류 하여 모 을 수 있 습 니 다.
    총결산
    my sql 로그 시스템 에 대한 간단 한 사용 튜 토리 얼 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 my sql 로그 시스템 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기