• 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 프로그램
  • 1. MySQL 프로그램 개요
    2. MySQL 프로그램 사용
    3. MySQL 서버와 서버 시작 프로그램
    4. 설치 관련 프로그램
    5. 클라이언트 프로그램
    6. MySQL 관리 프로그램 및 유틸리티 프로그램
    1. innochecksum - 오프라인 InnoDB 파일 체크섬 유틸리티
    2. myisam_ftdump - 전체 텍스트 인덱싱 정보보기
    3. myisamchk - MyISAM 테이블 유지 보수 유틸리티
    4. myisamlog - MyISAM 로그 파일의 내용보기
    5. myisampack - 압축 된 읽기 전용 MyISAM 테이블의 생성
    6. mysql_config_editor - MySQL 구성 유틸리티
    7. mysqlaccess - 액세스 권한을 확인하는 클라이언트
    8. mysqlbinlog - 바이너리 로그 파일을 처리하기위한 유틸리티
    1. mysqlbinlog 16 진수 덤프 형식
    2. mysqlbinlog row 이벤트보기
    3. 바이너리 로그 파일의 백업을위한 mysqlbinlog 사용
    4. mysqlbinlog 서버 ID 지정
    9. mysqldumpslow - 슬로우 쿼리 로그 파일의 요약
    10. mysqlhotcopy - 데이터베이스 백업 프로그램
    11. mysql_convert_table_format - 지정된 스토리지 엔진을 사용하는 테이블의 변환
    12. mysql_find_rows - 파일에서 SQL 문을 추출
    13. mysql_fix_extensions - 테이블 파일 확장명의 정규화
    14. mysql_setpermission - 부여 테이블에 허가를 대화식으로 설정
    15. mysql_waitpid - 프로세스를 종료하고 종료를 대기
    16. mysql_zap - 패턴과 일치하는 프로세스를 강제 종료
    7. MySQL 프로그램 개발 유틸리티
    8. 기타 프로그램
  • 5. MySQL 서버관리
  • 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 새로운 기능

4.6.8 mysqlbinlog - 바이너리 로그 파일을 처리하기위한 유틸리티

4.6.8.1 mysqlbinlog 16 진수 덤프 형식
4.6.8.2 mysqlbinlog 행 이벤트보기
4.6.8.3 바이너리 로그 파일의 백업을위한 mysqlbinlog 사용
4.6.8.4 mysqlbinlog 서버 ID 지정

서버의 바이너리 로그는 데이터베이스의 내용에 대한 변경을 설명하는 "이벤트"를 포함하는 파일로 구성됩니다. 서버는이 파일을 바이너리 형식으로 내 보냅니다. 내용을 텍스트 형식으로 표시하려면 mysqlbinlog 유틸리티를 사용합니다. 복제 설정에서 mysqlbinlog를 사용하여 슬레이브 서버가 보낸 릴레이 로그 파일의 내용을 표시 할 수 있습니다. 릴레이 로그는 바이너리 로그와 같은 형식을 가지기 때문입니다. 바이너리 로그 및 릴레이 로그는 섹션 5.2.4 "바이너리 로그" 및 섹션 17.2.2 "복제 릴레이 및 상태 로그" 에서 더 설명합니다.

mysqlbinlog은 다음과 같이 시작합니다.

 shell> mysqlbinlog [ options ] log_file ... 

예를 들어 binlog.000003 라는 이름의 바이너리 로그 파일의 내용을 표시하려면이 명령을 사용하십시오.

 shell> mysqlbinlog binlog.0000003

출력은 binlog.000003 에 포함 된 이벤트가 포함됩니다. 명령문 기반 로깅에서는 이벤트 정보에는 SQL 문, 그것이 실행 된 서버의 ID 명령문이 실행 된 타임 스탬프 걸린 시간 등이 포함됩니다. 행 기반 로깅 이벤트는 SQL 문이 아닌 행의 변경을 나타냅니다. 로깅 모드의 자세한 내용은 섹션 17.1.2 "복제 형식" 을 참조하십시오.

이벤트는 그 전에 추가 정보를 제공하는 헤더 댓글이 있습니다. 예 :

 # at 141
 # 100309 9:28:36 server id 123 end_log_pos 245
   Query thread_id = 3350 exe​​c_time = 11 error_code = 0

첫 번째 행에서 at 숫자들은 각각 바이너리 로그 파일에서 이벤트 파일 오프셋, 즉 시작 위치를 나타냅니다.

두 번째 줄은 이벤트가 발생한 서버에서 문이 언제 시작되었는지를 나타내는 날짜와 시간에 시작됩니다. 복제에 관하여는이 타임 스탬프가 슬레이브 서버에 전파됩니다. server id 는 이벤트가 발생한 서버의 server_id 입니다. end_log_pos 은 다음 이벤트가 시작 위치 (현재 이벤트의 종료 위치 + 1)를 보여줍니다. thread_id 는 이벤트를 실행 한 스레드를 나타냅니다. exec_time 는 마스터 서버에서 이벤트 실행하는 데 걸린 시간입니다. 슬레이브는이 슬레이브에서 실행 종료 시간에서 마스터에서 실행 시작 시간을 뺀 차이입니다. 이 차이는 복제가 마스터에서 얼마나 뒤쳐 졌는지를 나타냅니다. error_code 는 이벤트의 실행 결과를 보여줍니다. 제로는 오류가 발생하지 않았 음을 의미합니다.

참고

이벤트 그룹을 사용하는 경우, 이벤트 파일 오프셋의 그룹화 및 이벤트의 댓글 그룹화 수 있습니다. 이러한 그룹화 이벤트를 공백 파일 오프셋으로 착각하지 마십시오.

mysqlbinlog의 출력은 (예를 들어 그것을 mysql의 입력으로 사용하여) 다시 실행 로그의 문을 다시 시도 할 수 있습니다. 이것은 서버가 충돌했을 때 복구 작업으로 편리합니다. 다른 예는이 섹션의 나머지 분의 설명 및 섹션 7.5 "바이너리 로그를 사용한 시점 (증분) 복구" 를 참조하십시오.

일반적으로 mysqlbinlog를 사용하여 바이너리 로그 파일을 직접 읽고 로컬 MySQL 서버에 적용합니다. --read-from-remote-server 옵션을 사용하여 원격 서버에서 바이너리 로그를 읽을 수 있습니다. 원격 바이너리 로그를 읽을 수 있도록 연결 매개 변수 옵션을 사용하여 서버에 연결하는 방법을 나타낼 수 있습니다. 이 옵션은 --host , --password , --port , --protocol , --socket 및 --user 입니다. --read-from-remote-server 옵션을 사용하는 경우 이외는 무시됩니다.

mysqlbinlog를 대규모 바이너리 로그에 대해 수행 할 경우 결과 파일에 대한 파일 시스템에 충분한 공간이있는 않도록주의하십시오. mysqlbinlog이 임시 파일에 사용할 디렉토리를 구성하려면 TMPDIR 환경 변수를 사용합니다.

mysqlbinlog는 다음 옵션을 지원합니다. 이들은 명령 행 또는 옵션 파일의 [mysqlbinlog] 그룹과 [client] 그룹에 지정할 수 있습니다. MySQL 프로그램에서 사용되는 옵션 파일에 대한 자세한 내용은 섹션 4.2.6 "옵션 파일 사용" 을 참조하십시오.

표 4.15 mysqlbinlog 옵션

형식 설명 도입
--base64-output 바이너리 로그 항목을 base-64 인코딩으로 출력
--bind-address 지정된 네트워크 인터페이스를 사용하여 MySQL 서버에 연결 5.6.1
--binlog-row-event-max-size 바이너리 로그의 최대 이벤트 크기
--character-sets-dir 문자 세트가 설치되어있는 디렉토리
--connection-server-id 테스트 및 디버깅에 사용. 적용되는 기본값 및 기타 사항은 텍스트를 참조하십시오. 5.6.20
--database 이 데이터베이스에만 항목을 목록
--debug 디버깅 로그를 작성한다
--debug-check 프로그램이 종료 될 때 디버깅 정보를 출력
--debug-info 프로그램 종료시 디버그 정보, 메모리 및 CPU 통계를 출력
--default-auth 사용하는 인증 플러그인 5.6.2
--defaults-extra-file 일반 옵션 파일 이외에 옵션 파일을 읽을
--defaults-file 지명 된 옵션 파일 만 읽을
--defaults-group-suffix 옵션 그룹의 접미사 값
--disable-log-bin 바이너리 로깅을 비활성화
--exclude-gtids 제공된 GTID 세트의 그룹을 표시하지 5.6.5
--force-if-open 바이너리 로그 파일이 열려 있거나 제대로 청산하지 않은 경우에서도 읽을
--force-read mysqlbinlog가 인식하지 못하는 바이너리 로그 이벤트를 읽는 경우 경고를 출력
--help 도움말 메시지를 표시하고 종료
--hexdump 댓글에 로그의 16 진수 덤프를 표시
--host 지정된 호스트에서 MySQL 서버에 연결
--idempotent 서버가이 세션에서 바이너리 로그의 업데이트를 처리하는 동안에 만 제곱 모드를 사용
--include-gtids 제공된 GTID 세트 그룹 만 표시 5.6.5
--local-load 지정된 디렉토리에 LOAD DATA INFILE 로컬 임시 파일을 준비
--login-path 로그인 경로 옵션을 .mylogin.cnf에서 읽기 5.6.6
--no-defaults 옵션 파일을 읽지
--offset 로그의 첫 번째 N 항목을 생략
--password 서버에 연결할 때 사용하는 비밀번호
--plugin-dir 플러그인이 설치되어있는 디렉토리 5.6.2
--port 연결에 사용하는 TCP / IP 포트 번호
--print-defaults 기본 출력
--protocol 사용하는 연결 프로토콜
--raw 이벤트를 원시 (바이너리) 형식으로 출력 파일에 쓰기
--read-from-remote-master 바이너리 로그를 로컬 로그 파일에서가 아니라 MySQL 마스터에서 읽기 5.6.5
--read-from-remote-server 바이너리 로그를 로컬 로그 파일에서가 아니라 MySQL 서버에서 읽기
--result-file 지정된 파일에 출력을 전송
--secure-auth 오래된 (4.1.1 이전) 형식으로 서버에 암호를 전송하지 5.6.17
--server-id 지정된 서버 ID를 가진 서버에서 생성 된 이벤트만을 추출
--server-id-bits 서버 ID 비트가 최대 값 이하로 설정되어있는 mysqld에 의해 로그가 기록 된 경우, 바이너리 로그 서버 ID를 해석하는 방법을 mysqlbinlog에 지정. MySQL Cluster 버전의 mysqlbinlog에서만 지원
--set-charset SET NAMES charset_name 문을 출력에 추가
--shared-memory-base-name 공유 메모리 연결에 사용하는 공유 메모리의 이름
--short-form 로그에 포함 된 명령문 만 표시
--skip-gtids GTID를 출력하지 않는다. 이것은 GTID을 포함 바이너리 로그에서 덤프 파일을 기록 할 때 사용합니다. 5.6.5
--socket 로컬 호스트에 연결하는 데 사용하는 Unix 소켓 파일
--ssl-crl 인증서 해지 목록을 포함하는 파일의 경로 5.6.3
--ssl-crlpath 인증서 해지 목록 파일을 포함하는 디렉토리 경로 5.6.3
--start-datetime 타임 스탬프가 datetime 인수와 동일하거나보다 뒤의 첫 번째 이벤트에서 바이너리 로그를 읽기
--start-position 위치 인수와 동일하거나보다 큰 첫 번째 이벤트에서 바이너리 로그를 읽기
--stop-datetime 타임 스탬프가 datetime 인수와 동일하거나보다 큰 첫 번째 이벤트에서 바이너리 로그를 읽기를 중지
--stop-never 마지막 바이너리 로그 파일의 읽기 후 서버와의 연결을 유지
--stop-never-slave-server-id 서버에 연결할 때보고하는 슬레이브 서버 ID
--stop-position 위치 인수와 동일하거나보다 큰 첫 번째 이벤트에서 바이너리 로그를 읽기를 중지
--to-last-log MySQL 서버에서 요청 된 바이너리 로그의 끝에서 중단하지 않고, 마지막 바이너리 로그까지 계속 출력
--user 서버에 연결할 때 사용하는 MySQL 사용자 이름
--verbose 행 이벤트를 SQL 문으로 재 구축
--verify-binlog-checksum 바이너리 로그의 체크섬 확인 5.6.1
--version 버전 정보를 출력하고 종료

  • --help , -?

    도움말 메시지를 표시하고 종료합니다.

  • --base64-output = value

    이 옵션은 이벤트를 언제 BINLOG 문을 사용하여 base-64 문자열로 인코딩하여 표시 할 것인지 여부를 결정합니다. 이 옵션은 다음의 가능한 값입니다 (대소 문자 구분하지 않음).

    • AUTO ( "자동") 또는 UNSPEC ( "미지정")는 필요할 때 (즉, 형식 설명 이벤트 및 행 이벤트) 자동으로 BINLOG 문을 표시합니다. --base64-output 옵션이 지정되지 않으면 효과는 --base64-output=AUTO 와 동일합니다.

      참고

      자동 BINLOG 표시는 mysqlbinlog의 출력을 사용하여 바이너리 로그 파일의 내용을 다시 실행하는 경우에만 안전한 동작입니다. 다른 옵션 값은 디버깅이나 테스트 전용입니다. 이러한 옵션에서 생성되는 출력은 모든 이벤트가 실행 가능한 형식으로 포함되는 것은 아니기 때문입니다.

    • NEVER 을 사용하면 BINLOG 문이 표시되지 않습니다. mysqlbinlog은 BINLOG 를 사용하여 표시하여야한다 줄 이벤트가 감지 된 경우에는 에러로 종료합니다.

    • DECODE-ROWS 는 --verbose 옵션을 지정하여 줄 이벤트를 주석의 SQL 문으로 디코딩 및 표시하는 것을 사용자가 의도하고 있는지, mysqlbinlog로 지정합니다. NEVER 와 마찬가지로 DECODE-ROWS 는 BINLOG 문의 표시를 억제하지만 NEVER 와 달리 행 이벤트가 발생해도 오류로 종료하지 않습니다.

    --base64-output 및 --verbose 줄 이벤트 출력에 영향을 예제는 섹션 4.6.8.2 "mysqlbinlog 행 이벤트보기" 를 참조하십시오.

  • --bind-address = ip_address

    여러 네트워크 인터페이스가있는 시스템에서이 옵션을 사용하여 MySQL 서버에 연결하는 데 사용하는 인터페이스를 선택합니다.

    이 옵션은 MySQL 5.6.1에서 지원되고 있습니다.

  • --binlog-row-event-max-size = N

    명령 줄 형식 --binlog-row-event-max-size = #
    허용되는 값 (64 비트 플랫폼) 유형 수치
    기본 4294967040
    최소 256
    최대 값 18446744073709547520

    행 기반의 바이너리 로그 이벤트의 최대 크기를 바이트 단위로 지정합니다. 가능하면 행이 크기보다 작은 이벤트로 그룹화됩니다. 값은 256의 배수 여야합니다. 기본값은 4G 바이트입니다.

  • --character-sets-dir = path

    문자 세트가 설치되어있는 디렉토리. 섹션 10.5 "문자 세트 구성" 을 참조하십시오.

  • --connection-server-id = server_id

    이 옵션은 MySQL 서버가 BINLOG_DUMP_NON_BLOCK 연결 플래그를 지원하는지 여부를 테스트하는 데 사용됩니다. 이 플래그는 어떠한 사정으로 MySQL 5.6.5에서 삭제되고 MySQL 5.6.20에서 복원되었습니다 (Bug # 18000079, Bug # 71178). 정상 작동은 필요하지 않습니다.

    이 옵션의 실질적인 기본값 및 최소값은 mysqlbinlog가 차단 모드에서 실행되고 있는지 비 블로킹 모드에서 실행되고 있는지에 따라 다릅니다. mysqlbinlog가 차단 모드에서 실행되고있는 경우는, 디폴트 (및 최소) 값은 1입니다. 비 블로킹 모드에서 실행되고있는 경우는, 디폴트 (및 최소) 값은 0입니다.

    이 옵션은 MySQL 5.6.20에서 추가되었다.

  • --database= db_name , -d db_name

    이 옵션을 사용하면 mysqlbinlog는 USE 에 의해 db_name 이 기본 데이터베이스로 선택되어있는 동안 발생하는 바이너리 로그 (로컬 로그 만)에서 항목을 출력하게됩니다.

    mysqlbinlog의 --database 옵션은 mysqld의 --binlog-do-db 옵션과 비슷하지만 지정할 수 하나의 데이터베이스 만입니다. --database 을 여러 번 지정하면 마지막 인스턴스 만 사용됩니다.

    이 옵션의 영향은 명령문 기반 또는 행 기반 로깅 형식의 어느 쪽이 사용되었는지에 따라 다릅니다. 이것은 --binlog-do-db 의 영향이 명령문 기반 또는 행 기반 중의 로깅을 사용하는지에 따라 다른 것과 같습니다.

    명령문 기반 로깅 --database 옵션은 다음과 같이 작동합니다.

    • db_name 이 기본 데이터베이스 인 동안 문 db_name 또는 다른 데이터베이스의 테이블을 수정하는 경우에도 출력됩니다.

    • db_name 이 기본 데이터베이스로 선택되어 있지 않으면 db_name 테이블을 수정하는 경우에도 문은 출력되지 않습니다.

    • CREATE DATABASE , ALTER DATABASE 및 DROP DATABASE 는 예외입니다. 문을 출력할지 여부를 판단 할 때, 생성, 변경 또는 삭제 된 데이터베이스가 기본 데이터베이스로 간주됩니다.

    이 문을 실행하여 명령문 기반 로깅을 사용하여 바이너리 로그가 생성되었다고합니다.

     INSERT INTO test.t1 (i) VALUES (100);
     INSERT INTO db2.t2 (j) VALUES (200);
     USE test;
     INSERT INTO test.t1 (i) VALUES (101);
     INSERT INTO t1 (i) VALUES (102);
     INSERT INTO db2.t2 (j) VALUES (201);
     USE db2;
     INSERT INTO test.t1 (i) VALUES (103);
     INSERT INTO db2.t2 (j) VALUES (202);
     INSERT INTO t2 (j) VALUES (203);
    

    기본 데이터베이스가 없기 때문에 mysqlbinlog --database = test는 처음 두 개의 INSERT 문을 출력하지 않습니다. USE test 에 이은 3 개의 INSERT 문은 출력되지만 USE db2 에 이은 3 개의 INSERT 문은 출력하지 않습니다.

    기본 데이터베이스가 없기 때문에 mysqlbinlog --database = db2은 처음 두 개의 INSERT 문을 출력하지 않습니다. USE test 에 이은 3 개의 INSERT 문은 출력하지 않지만 USE db2 에 이은 3 개의 INSERT 문을 출력합니다.

    행 기반 로깅 mysqlbinlog는 db_name 에 속하는 테이블을 변경하는 항목 만 출력합니다. 여기에는 기본 데이터베이스에 영향을주지 않습니다. 지금 설명했다 바이너리 로그가 문 기반 로깅이 아닌 행 기반 로깅을 사용하여 작성되었다고합니다. mysqlbinlog --database = test는 USE 가 발행 된 또는 기본 데이터베이스가 뭔가에 관계없이 테스트 데이터베이스 t1 을 변경하는 항목 만 출력합니다.

    서버가 binlog_format 이 MIXED 로 설정된 상태에서 실행하고, mysqlbinlog를 --database 옵션으로 사용할 수 있도록하는 경우 변경되는 테이블 USE 에서 선택된 데이터베이스임을 보장해야 있습니다. (특히 크로스 데이터베이스의 업데이트는 사용하지 않도록하십시오.)

    MySQL 5.6.10 이전에는, GTID가 유효한 MySQL 서버에 의해 기록 된 로그는 --database 옵션은 제대로 작동하지 않았습니다. (Bug # 15912728)

  • --debug[= debug_options ] , -# [ debug_options ]

    디버그 로그를 기록합니다. 일반적인 debug_options 문자열은 d:t:o, file_name 입니다. 기본값은 d:t:o,/tmp/mysqlbinlog.trace 입니다.

  • --debug-check

    프로그램 종료시 디버그 정보를 출력합니다.

  • --debug-info

    프로그램 종료시 디버그 정보와 메모리 및 CPU 사용량 통계를 출력합니다.

  • --default-auth = plugin

    사용하는 클라이언트 인증 플러그인. 섹션 6.3.7 "플러그 인증" 을 참조하십시오.

    이 옵션은 MySQL 5.6.2에서 추가되었습니다.

  • --defaults-extra-file = file_name

    이 옵션 파일은 글로벌 옵션 파일 다음에 읽을 수 있지만 (UNIX의 경우) 사용자 옵션 파일 전에 읽도록​​하십시오. 파일이 없거나 액세스 할 수없는 경우 오류가 발생합니다. file_name 은 전체 경로 이름이 ​​아닌 상대 경로 이름으로 지정된 경우 현재 디렉토리를 기준으로 해석됩니다.

  • --defaults-file = file_name

    지정된 옵션 파일 만 사용합니다. 파일이 없거나 액세스 할 수없는 경우 오류가 발생합니다. file_name 은 전체 경로 이름이 ​​아닌 상대 경로 이름으로 지정된 경우 현재 디렉토리를 기준으로 해석됩니다.

  • --defaults-group-suffix = str

    일반적인 옵션 그룹뿐만 아니라 일반 이름에 str 의 접미사가 붙은 그룹도 읽습니다. 예를 들어, mysqlbinlog은 보통 [client] 그룹과 [mysqlbinlog] 그룹을 읽습니다. --defaults-group-suffix=_other 옵션을 지정했을 경우, mysqlbinlog은 [client_other] 그룹과 [mysqlbinlog_other] 그룹도 읽습니다.

  • --disable-log-bin , -D

    바이너리 로깅을 비활성화합니다. 이것은 --to-last-log 옵션을 사용하여 동일한 MySQL 서버에 출력을 전송하는 경우 무한 루프를 방지하는 데 유용합니다. 이 옵션은 충돌 후 이미 기록 된 문 중복을 방지하는 데에도 유용합니다.

    이 옵션은 SUPER 권한을 보유하고 있어야합니다. mysqlbinlog가 출력에 SET sql_log_bin = 0 문을 포함하여 그 후의 출력 바이너리 로깅을 비활성화 할 수 있습니다. SET 문은 SUPER 권한이없는 경우에는 효과가 없습니다.

  • --exclude-gtids = gtid_set

    gtid_set 에 나열된 그룹을 표시하지 않습니다. MySQL 5.6.5에서 추가되었습니다.

  • --force-if-open , -F

    바이너리 로그 파일이 열려 있거나 제대로 닫혀 있지 않은 경우에도 읽습니다.

  • --force-read , -f

    이 옵션은 mysqlbinlog가 인식하지 못하는 바이너리 로그 이벤트를 읽은 경우에 경고를 출력하고, 이벤트를 무시하고 계속합니다. 이 옵션을 사용하지 않는 경우는 mysqlbinlog는 그런 이벤트를 읽을 중지합니다.

  • --hexdump , -H

    섹션 4.6.8.1 "mysqlbinlog 16 진수 덤프 형식" 에 설명 된대로 로그의 16 진수 덤프를 댓글로 표시합니다. 16 강 력은 복제 디버깅에 유용 할 수 있습니다.

  • --host= host_name , -h host_name

    지정된 호스트의 MySQL 서버에서 바이너리 로그를 가져옵니다.

  • --include-gtids = gtid_set

    gtid_set 에 나열된 그룹 만 표시합니다. MySQL 5.6.5에서 추가되었습니다.

  • --local-load= path , -l path

    지정된 디렉토리에 LOAD DATA INFILE 을위한 로컬 임시 파일을 준비합니다.

    중요

    이러한 임시 파일은 mysqlbinlog 및 기타 모든 MySQL 프로그램에 의해 자동으로 삭제되지 않습니다.

  • --login-path = name

    지명 된 로그인 경로에서 .mylogin.cnf 로그인 파일의 옵션을 읽습니다. "로그인 경로"는 host , user 및 password 라는 제한된 옵션 집합 만 허용 옵션 그룹입니다. 로그인 경로는 서버 호스트 및 서버에서 인증을위한 인증 정보를 나타내는 값의 집합이라고 생각합니다. 로그인 경로 파일을 작성하려면 mysql_config_editor 유틸리티를 사용합니다. 섹션 4.6.6 "mysql_config_editor - MySQL 구성 유틸리티" 를 참조하십시오. 이 옵션은 MySQL 5.6.6에서 추가되었습니다.

  • --no-defaults

    옵션 파일을 읽지 않습니다. 옵션 파일에서 알 수없는 옵션을 읽을로 인해 프로그램의 실행에 실패 할 경우 --no-defaults 를 사용하여 옵션을 읽는 것을 방지 할 수 있습니다.

    예외적으로 .mylogin.cnf 파일은 존재하는 경우는 모든 경우에 읽습니다. 이는 --no-defaults 가 사용 된 경우에도 명령 행보다 안전한 방법으로 암호를 지정할 수 있습니다. ( .mylogin.cnf 는 mysql_config_editor 유틸리티가 작성됩니다. 섹션 4.6.6 "mysql_config_editor - MySQL 구성 유틸리티" 를 참조하십시오).

  • --offset= N , -o N

    로그의 첫 번째 N 개의 항목을 생략합니다.

  • --password[= password ] , -p[ password ]

    서버에 연결할 때 사용하는 암호입니다. 짧은 옵션 형식 ( -p )을 사용하는 경우, 옵션과 패스워드 사이에 스페이스를 가질 수 없습니다. 명령 행에서 --password 옵션 또는 -p 옵션 뒤에 password 의 값을 지정하지 않으면, mysqlbinlog 그것을 요구합니다.

    명령 행에서 암호를 지정하는 것은 안전하지 않은 것으로 간주한다. 섹션 6.1.2.1 "비밀번호 보안에 대한 최종 사용자 지침" 을 참조하십시오. 옵션 파일을 사용하면 명령 행에서 암호를 지정하는 것을 방지 할 수 있습니다.

  • --plugin-dir = path

    플러그인을 검색하는 디렉토리. --default-auth 옵션을 사용하여 인증 플러그인을 지정했지만, mysqlbinlog이 그것을 찾을 수없는 경우이 옵션을 지정해야 할 수도 있습니다. 섹션 6.3.7 "플러그 인증" 을 참조하십시오.

    이 옵션은 MySQL 5.6.2에서 추가되었습니다.

  • --port= port_num , -P port_num

    원격 서버에 연결하는 데 사용하는 TCP / IP 포트 번호.

  • --print-defaults

    프로그램 이름과 옵션 파일에서받는 모든 옵션을 출력합니다.

  • --protocol = {TCP | SOCKET | PIPE | MEMORY}

    서버에 연결하는 데 사용하는 연결 프로토콜. 이 옵션은 다른 연결 매개 변수는 필요한 프로토콜 이외의 것이 일반적으로 사용되는 경우에 유용합니다. 허용되는 값의 자세한 내용은 섹션 4.2.2 "MySQL 서버에 연결" 을 참조하십시오.

  • --raw

    기본적으로 mysqlbinlog 바이너리 로그 파일을 읽고 이벤트를 텍스트 형식으로 내 보냅니다. --raw 옵션은 mysqlbinlog에 원래 바이너리 포맷으로 내보낼 것을 지시합니다. 파일은 서버에서 요구되기 때문에이를 사용하려면 --read-from-remote-server 도 사용해야합니다. mysqlbinlog는 서버에서 읽은 각 파일에 대해 하나의 출력 파일을 내 보냅니다. --raw 옵션은 서버의 바이너리 로그를 백업하는 데 사용할 수 있습니다. --stop-never 옵션을 사용하면 mysqlbinlog은 서버에 연결된 상태로되기 때문에 백업은 "라이브"입니다. 기본적으로 출력 파일은 현재 디렉토리에 원래 로그 파일과 동일한 이름으로 작성됩니다. 출력 파일 이름은 --result-file 옵션을 사용하여 변경할 수 있습니다. 자세한 내용은 섹션 4.6.8.3 "바이너리 로그 파일의 백업을위한 mysqlbinlog 사용" 을 참조하십시오.

    이 옵션은 MySQL 5.6.0에서 추가되었습니다.

  • --read-from-remote-master = type

    COM_BINLOG_DUMP 명령 또는 COM_BINLOG_DUMP_GTID 명령에서 옵션 값을 각각 BINLOG-DUMP-NON-GTIDS 또는 BINLOG-DUMP-GTIDS 로 설정하여 MySQL 서버에서 바이너리 로그를 읽습니다. --read-from-remote-master=BINLOG-DUMP-GTIDS 이 --exclude-gtids 와 결합되면 트랜잭션을 마스터로 필터링 할 수 불필요한 네트워크 트래픽을 방지 할 수 있습니다.

    --read-from-remote-server 설명을 참조하십시오.

    이 옵션은 MySQL 5.6.5에서 추가되었습니다.

  • --read-from-remote-server , -R

    바이너리 로그를 로컬 로그 파일에서가 아니라 MySQL 서버에서 읽습니다. 다음 옵션도 지정되어 있지 않은 한, 연결 매개 변수 옵션은 무시됩니다. 이 옵션은 --host , --password , --port , --protocol , --socket 및 --user 입니다.

    이 옵션은 원격 서버에서 실행하는 것이 필요합니다. 원격 서버의 바이너리 로그 파일에 대해서만 작동합니다. 릴레이 로그 파일에는 작동하지 않습니다.

    MySQL 5.6.5에서는이 옵션은 --read-from-remote-master=BINLOG-DUMP-NON-GTIDS 과 같습니다.

  • --result-file= name , -r name

    --raw 옵션이없는 경우이 옵션은 mysqlbinlog이 텍스트 출력을 내보낼 파일을 보여줍니다. --raw 이있는 경우 mysqlbinlog는 서버로부터 전송되는 각 로그 파일에 대해 하나의 바이너리 출력 파일을 기본적으로 현재 디렉토리에 원래 로그 파일과 동일한 이름으로 내 보냅니다. 이 경우 --result-file 옵션 값은 출력 파일 이름을 변경하는 접두어로 처리됩니다.

  • --secure-auth

    이전 (4.1 이전) 형식으로 서버에 암호를 전송하지 않습니다. 그러면 새 암호 형식을 사용하는 서버 이외의 연결을 방지합니다. 이 옵션은 기본적으로 활성화됩니다. 해제하려면 --skip-secure-auth 를 사용합니다. 이 옵션은 MySQL 5.6.17에서 추가되었다.

    참고

    4.1 이전의 해시 방식을 사용하는 암호는 기본 암호 해시 방식을 사용하는 암호보다 안전하지 않기 때문에 사용하지 않도록하십시오. 4.1 이전 암호는 사용되지 않으며, 이러한 지원은 향후 MySQL 릴리스에서 제거 될 예정입니다. 계정 업그레이드 지침은 섹션 6.3.8.3 "4.1 이전 암호 해시 방식과 mysql_old_password 플러그인에서 마이그레이션" 을 참조하십시오.

  • --server-id = id

    지정된 서버 ID를 가진 서버에서 생성 된 이벤트 만 표시합니다.

  • --server-id-bits = N

    서버를 특정하기 위해 server_id 의 첫 번째 N 비트만을 사용합니다. server-id-bits가 32 미만으로 설정되고 사용자 데이터가 최상위 비트에 저장되는 mysqld가 바이너리 로그가 기록 된 경우 --server-id-bits 를 32으로 설정하고 mysqlbinlog를 실행하면 이 데이터를 볼 수 있습니다.

    이 옵션은 MySQL Cluster 배포에서 제공되는 버전 또는 MySQL Cluster 소스에서 빌드 된 mysqlbinlog에서만 지원됩니다.

  • --set-charset = charset_name

    SET NAMES charset_name 문을 출력에 추가하여 로그 파일 처리에 사용되는 문자 세트를 지정합니다.

  • --shared-memory-base-name = name

    Windows에서 공유 메모리를 사용하여 생성되는 로컬 서버에 연결 공유 메모리 이름. 기본값은 MYSQL 입니다. 공유 메모리 이름은 대소 문자를 구분합니다.

    공유 메모리 연결을 가능하게하려면 서버는 --shared-memory 옵션으로 시작해야합니다.

  • --short-form , -s

    추가 정보 및 행 기반의 이벤트없이 로그에 포함 된 명령문만을 표시합니다. 이것은 테스트 전용 프로덕션 시스템에 사용해서는 없습니다.

  • --skip-gtids [= (true | false)]

    출력에 GTID을 표시하지 않습니다. 이것은 다음의 예와 같이 GTID를 포함하는 하나 이상의 바이너리 로그에서 덤프 파일로 내보낼 경우에 필요합니다.

     shell> mysqlbinlog --skip-gtids binlog.000001 > /tmp/dump.sql
     shell> mysqlbinlog --skip-gtids binlog.000002 >> /tmp/dump.sql
     shell> mysql -u root -p -e "source /tmp/dump.sql"
    

    그렇지 않은 경우에는이 옵션을 프로덕션 환경에서 사용하는 것은 일반적으로 권장되지 않습니다.

    이 옵션은 MySQL 5.6.5에서 추가되었습니다.

  • --socket= path , -S path

    localhost 에 연결하는 데 사용되는 Unix 소켓 파일 또는 Windows에서 사용하는 명명 된 파이프의 이름.

  • --start-datetime = datetime

    datetime 인수와 동일하거나 느린 타임 스탬프를 가지는 첫 번째 이벤트에서 바이너리 로그를 읽기 시작합니다. datetime 값은 mysqlbinlog를 실행하는 컴퓨터의 로컬 시간대에 상대적입니다. 값은 DATETIME 또는 TIMESTAMP 데이터 유형에 받아 들일 수있는 형식으로하십시오. 예 :

     shell> mysqlbinlog --start-datetime="2005-12-25 11:25:56" binlog.000003
    

    이 옵션은 시점 ​​복구에 유용합니다. 섹션 7.3 "백업 및 복구 전략의 예" 를 참조하십시오.

  • --start-position= N , -j N

    N 이상의 위치를 가진 첫 번째 이벤트에서 바이너리 로그를 읽기 시작합니다. 이 옵션은 명령 행에서 첫 번째로 지명 된 로그 파일에 적용됩니다.

    이 옵션은 시점 ​​복구에 유용합니다. 섹션 7.3 "백업 및 복구 전략의 예" 를 참조하십시오.

  • --stop-datetime = datetime

    datetime 인수와 동일하거나 느린 타임 스탬프를 가지는 첫 번째 이벤트에서 바이너리 로그를 읽기를 종료합니다. 이 옵션은 시점 ​​복구에 유용합니다. datetime 값에 대한 자세한 내용은 --start-datetime 옵션에 대한 설명을 참조하십시오.

    이 옵션은 시점 ​​복구에 유용합니다. 섹션 7.3 "백업 및 복구 전략의 예" 를 참조하십시오.

  • --stop-never

    이 옵션은 --read-from-remote-server 와 함께 사용됩니다. mysqlbinlog 대해 서버에 접속 한 상태를 유지하는 것을 지시합니다. 그렇지 않으면, mysqlbinlog는 마지막 로그 파일이 서버에서 전송 된 시점에서 종료합니다. --stop-never 는 암묵적으로 --to-last-log 를 지정하기 위해 명령 행에서 지명 할 필요가있는 것은 전송되는 첫 번째 로그 파일뿐입니다.

    --stop-never 는 일반적으로 라이브 바이너리 로그 백업을 만드는 데 --raw 와 함께 사용되지만, --raw 없이 사용하여 서버가 로그 이벤트를 생성함에 따라 그들을 지속적으로 텍스트 표시 할 수 있습니다.

    이 옵션은 MySQL 5.6.0에서 추가되었습니다.

  • --stop-never-slave-server-id = id

    --stop-never 를 사용하면 mysqlbinlog는 서버에 연결할 때 서버 ID 65535을보고합니다. --stop-never-slave-server-id 는 보고서 서버 ID를 명시 적으로 지정합니다. 슬레이브 서버 또는 다른 mysqlbinlog 프로세스의 ID와의 충돌을 피하기 위해 사용할 수 있습니다. 섹션 4.6.8.4 "mysqlbinlog 서버 ID 지정" 을 참조하십시오.

    이 옵션은 MySQL 5.6.0에서 추가되었습니다.

  • --stop-position = N

    N 이상의 위치를 가진 첫 번째 이벤트에서 바이너리 로그를 읽기를 종료합니다. 이 옵션은 명령 행에서 마지막에 지명 된 로그 파일에 적용됩니다.

    이 옵션은 시점 ​​복구에 유용합니다. 섹션 7.3 "백업 및 복구 전략의 예" 를 참조하십시오.

  • --to-last-log , -t

    MySQL 서버에서 요청 된 바이너리 로그의 마지막으로 종료하지 않고, 마지막 바이너리 로그의 끝까지 계속 출력합니다. 동일한 MySQL 서버에 출력을 전송 한 경우 무한 루프 될 수 있습니다. 이 옵션은 --read-from-remote-server 가 필요합니다.

  • --user= user_name , -u user_name

    원격 서버에 연결할 때 사용하는 MySQL 사용자 이름.

  • --verbose , -v

    행 이벤트를 재 구축하고 댓글 된 SQL 문으로 표시합니다. 이 옵션을 두 번 지정하면 출력은 컬럼 데이터 형과 일부 메타 데이터를 나타내는 주석이 포함됩니다.

    --base64-output 및 --verbose 줄 이벤트 출력에 영향을 예제는 섹션 4.6.8.2 "mysqlbinlog 행 이벤트보기" 를 참조하십시오.

  • --verify-binlog-checksum , -c

    바이너리 로그 파일의 체크섬을 확인합니다. 이 옵션은 MySQL 5.6.1에서 추가되었습니다.

  • --version , -V

    버전 정보를 출력하고 종료합니다.

    MySQL 5.6.11 이전에는 표시된 mysqlbinlog의 버전 번호는 3.3이었습니다. MySQL 5.6.11 이후로는 3.4입니다. (Bug # 15894381, Bug # 67643)

-- var_name = value 구문을 사용하여 다음 변수를 설정할 수도 있습니다.

  • open_files_limit

    예약 오픈 파일 디스크립터의 수를 지정합니다.

mysqlbinlog의 출력을 mysql 클라이언트에 파이프하여 바이너리 로그에 포함 된 이벤트를 실행할 수 있습니다. 이 기술은 오래된 백업이있는 경우에 오류를 복구하는 데 사용됩니다 ( 섹션 7.5 "바이너리 로그를 사용한 시점 (증분) 복구" 를 참조하십시오). 예 :

 shell> mysqlbinlog binlog.000001 | mysql -u root -p

또는 :

 shell> mysqlbinlog binlog.[0-9]* | mysql -u root -p

mysqlbinlog가 생성 한 문에 BLOB 값이 포함될 가능성이있는 경우, mysql이 그들을 처리 할 때 문제가 발생할 수 있습니다. 이 경우 mysql을 --binary-mode 옵션에서 시작합니다.

문 로그를 먼저 변경해야하는 경우 (예를 들어, 어떤 이유로 실행하지 않는 문을 제거하는 등) 대신 mysqlbinlog의 출력을 텍스트 파일로 리디렉션 할 수 있습니다.파일을 편집 한 후 mysql 프로그램의 입력으로 사용하여 거기에 포함 된 문을 실행합니다.

shell> mysqlbinlog binlog.000001> tmpfile 
shell> ... edit tmpfile ...
shell> mysql -u root -p <tmpfile

mysqlbinlog 은 --start-position 옵션에서 시작 된 경우, 바이너리 로그의 오프셋이 지정된 위치 이상의 이벤트 만 표시합니다 (지정된 위치는 하나의 이벤트의 시작 위치와 일치해야 합니다). 지정된 날짜와 시간을 가지는 이벤트를 감지 할 때 정지 및 시작하는 옵션도 있습니다. 이렇게하면 --stop-datetime 옵션을 사용하여 특정 시점 복구를 수행 할 수 있습니다 (예를 들어, "데이터베이스를 오늘 10:30 am 현재 상태로 롤백하는 ' 것이 가능합니다).

MySQL 서버에 실행하는 여러 바이너리 로그가있는 경우 안전한 방법은 서버에 하나의 연결을 사용하여 그들 모두를 처리하는 것입니다. 이것은 안전하지 않은 가능성이 있음을 나타내는 예입니다.

shell> mysqlbinlog binlog.000001 | mysql -u root -p # DANGER! 
shell> mysqlbinlog binlog.000002 | mysql -u root -p # DANGER!

서버에 대해 이렇게 여러 연결을 사용하여 바이너리 로그를 처리하려면 먼저 로그 파일에 CREATE TEMPORARY TABLE 문이 포함되어 있으며, 두 번째 로그는 임시 테이블을 사용하는 명령문이 포함 되어 있으면 문제가 발생합니다. 첫 번째 mysql 프로세스가 종료하면 서버는 임시 테이블을 삭제합니다. 두 번째 mysql 프로세스에서 테이블의 사용을 시도하면 서버는 "알 수없는 테이블" 로보고합니다.

이러한 문제를 해결하려면 하나 의 mysql 프로세스를 사용하여 처리하는 모든 바이너리 로그의 내용을 실행합니다. 이것은 그것을 실행하는 하나의 방법입니다.

shell> mysqlbinlog binlog.000001 binlog.000002 | mysql -u root -p

또 다른 방법은 모든 로그를 하나의 파일에 기록한 다음 그 파일을 처리하는 것입니다.

shell> mysqlbinlog binlog.000001> /tmp/statements.sql 
shell> mysqlbinlog binlog.000002 >> /tmp/statements.sql 
shell> mysql -u root -p -e "source /tmp/statements.sql"

mysqlbinlog 는 원본 데이터 파일없이 LOAD DATA INFILE 동작을 재현하는 출력을 생성 할 수 있습니다. mysqlbinlog 은 데이터를 임시 파일에 복사하고 해당 파일을 참조하는 LOAD DATA LOCAL INFILE 명령문을 작성한다. 이러한 파일이 기록 될 디렉토리의 기본 위치는 시스템마다 다릅니다. 디렉토리를 명시 적으로 지정하려면 --local-load 옵션을 사용합니다.

mysqlbinlog 은 LOAD DATA INFILE 문을 LOAD DATA LOCAL INFILE 문으로 변환하기 위해 (즉, LOCAL 를 추가합니다) 문의 처리에 사용하는 클라이언트와 서버 모두가 LOCAL 기능을 사용하여 구성되어 있지 않으면 안됩니다. 섹션 6.1.6 "LOAD DATA LOCAL의 보안 문제" 를 참조하십시오.

경고

LOAD DATA LOCAL 명령문 용으로 생성 된 임시 파일이 문을 사용자가 실제로 실행될 때까지 필요하기 때문에 자동으로 삭제되지 않습니다 . 문 로그가 필요 없어진 시점에서 사용자가 임시 파일을 삭제하도록하십시오. 이 파일은 임시 파일 디렉토리에 존재하고 original_file_name - # - # 와 같은 이름이 붙어 있습니다.


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