• 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 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 1. Replication 구성
    1. Replication 설정 방법
    2. Replication Formats
    3. 글로벌 트랜잭션 식별자를 사용하여 복제
    4. Replication 및 바이너리 Logging 옵션 과 변수
    1. Replication 및 바이러리 Logging 옵션 과 변수 설명
    2. Replication 마스터 옵션 및 변수
    3. Replication 슬레이브 옵션 및 변수
    4. 바이너리 로그 옵션 및 변수
    5. 글로벌 트랜잭션 ID 옵션 및 변수
    5. 일반적인 Replication 관리 작업
    2. Replication 구현
    3. Replication 솔루션
    4. Replication Notes and Tips
  • 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 새로운 기능

17.1.4.5 글로벌 트랜잭션 ID 옵션 및 변수

GTID 복제에 사용되는 부트 옵션

GTID 복제에 사용되는 시스템 변수

이 섹션에 설명 된 MySQL Server 옵션 및 시스템 변수는 MySQL 5.6.5에서 도입 된 글로벌 트랜잭션 식별자 (GTID) 모니터 및 제어에 사용됩니다.

참고

이러한 옵션과 변수의 대부분은 MySQL 5.6.9에서 이름이 바뀌 었습니다. 자세한 내용은이 섹션의 설명을 참조하십시오.

자세한 내용은 섹션 17.1.3 "글로벌 트랜잭션 식별자를 사용한 복제" 를 참조하십시오.

GTID 복제에 사용되는 부트 옵션

다음 서버 시작 옵션은 GTID 기반 복제에 사용됩니다.

  • --disable-gtid-unsafe-statements

    도입 5.6.5
    삭제 5.6.9
    명령 줄 형식 --disable-gtid-unsafe-statements[=value]
    시스템 변수 이름 disable_gtid_unsafe_statements
    변수 범위 글로벌
    동적 변수 아니오
    허용되는 값 유형

    boolean
    기본 false

    폐지 : MySQL 5.6.9에서 --enforce-gtid-consistency 로 대체되었습니다. (Bug # 14775984)

  • --enforce-gtid-consistency

    도입 5.6.9
    명령 줄 형식 --enforce-gtid-consistency[=value]
    시스템 변수 이름 enforce_gtid_consistency
    변수 범위 글로벌
    동적 변수 아니오
    허용되는 값 유형 boolean
    기본 false

    이 옵션을 활성화하면 트랜잭션 안전한 방법으로 로그를 기록 할 수있는 문만 실행을 허용함으로써 GTID 일관성을 적용합니다. --enforce-gtid-consistency 를 활성화하고 --gtid-mode 를 ON 으로 설정해야합니다. 그렇게하지 ​​GTID 모드를 사용하면 오류와 함​​께 실패합니다. 시스템이 GTID을 사용할 준비가되어 있는지를 테스트하기 위해 --gtid-mode 를 사용하기 전에이 옵션을 사용할 수 있습니다 (사용하는 것을 권장합니다).

    --enforce-gtid-consistency 가 켜져있을 때 트랜잭션 안전 확인서를 기록 할 수 있기 때문에 다음 작업은이 옵션을 사용할 수없는 것입니다.

    • CREATE TABLE ... SELECT 문

    • 트랜잭션의 CREATE TEMPORARY TABLE 문

    • 트랜잭션 및 비 트랜잭션 테이블을 모두 업데이트하는 트랜잭션 또는 문.

    MySQL 5.6.9 이전 버전에서는이 옵션의 이름은 --disable-gtid-unsafe-statements 이었습니다. (Bug # 14775984)

    MySQL 5.6.7 이전 버전에서는이 옵션을 사용하여 임시 테​​이블의 비 트랜잭션 DML이 실패했습니다 (행 기반 바이너리 로깅을 사용하면 임시 테​​이블에 대한 변경 로그가 기록되지 않는다). MySQL 5.6.7 이후에서는 영향을받는 모든 테이블이 임시 테이블 인 한, --disable-gtid-unsafe-statements (MySQL 5.6.9 이후에서는 --enforce-gtid-consistency ) 상태에서 비 트랜잭션 DML 문이 임시 테​​이블에서 허용됩니다 (Bug # 14272672).

    MySQL 5.6.7 이전에서는 --write-binlog 가 명시 적으로 비활성화 된 mysql_upgrade가 실행되고 있지 않은 한, mysql_upgrade이 옵션이 활성화 된 상태에서 동작하는 MySQL Server에서 사용할 수 없습니다. (Bug # 13833710, Bug # 14221043) MySQL 5.6.7 이후에서는 --gtid-mode=ON 상태의 서버에서 mysql_upgrade를 실행할 수 있지만 권장되지 않습니다. MySQL 시스템 테이블이 비 트랜잭션 인 MyISAM 스토리지 엔진을 사용하기 때문입니다.

    MySQL 5.6.8 이전 버전에서는 --enforce-gtid-consistency 가 사용될 때 (이 옵션 --disable-gtid-unsafe-statements 라고했습니다)에 비 트랜잭션 테이블에 영향을 미치는 문을 사용 수 없습니다. MySQL 5.6.9 이후에서는이 옵션은 비 트랜잭션 테이블을 업데이트하는 단일 명령문을 허용합니다. 이것은 주로 mysql_install_db과 mysql_upgrade 등의 프로그램에서 사용되는 것을 의도하고 있습니다. (Bug # 14722659)

  • --gtid-mode

    도입 5.6.5
    명령 줄 형식 --gtid-mode=MODE
    시스템 변수 이름 gtid_mode
    변수 범위 글로벌
    동적 변수 아니오
    허용되는 값 유형

    enumeration
    기본 OFF
    유효한 값 OFF
    UPGRADE_STEP_1
    UPGRADE_STEP_2
    ON

    이 옵션은 GTID이 유효한지 여부를 지정합니다. --gtid-mode=ON 에서 서버를 시작하려면 서버를 --log-bin , --log-slave-updates 및 --enforce-gtid-consistency 옵션에서 시작되어야합니다.

    이 옵션을 바이너리 로그 또는 릴레이 로그에 GTID가있을 때 OFF 로 또는 실행해야 이름 트랜잭션이 남아있을 때 ON 으로 설정하면 오류가 발생합니다.

    중요

    이 옵션은 boolean 값을 사용하지 않습니다. 즉 열거됩니다. 이 옵션을 설정하면 수치의 사용을 시도하지 마십시오. 예기치 않은 결과를 초래할 수 있습니다. 값 UPGRADE_STEP_1 및 UPGRADE_STEP_2 는 향후 사용을 위해 예약되어 있습니다 만, 현재 운영 환경에서 지원되지 않습니다. 이 두 값 중 하나를 --gtid-mode 에서 사용하는 경우 서버는 시작을 거부합니다.

    MySQL 5.6.7 이전에서는 --write-binlog 가 명시 적으로 비활성화 된 mysql_upgrade가 실행되고 있지 않은 한, mysql_upgrade이 옵션이 활성화 된 상태에서 동작하는 MySQL Server에서 사용할 수 없습니다. (Bug # 13833710, Bug # 14221043) MySQL 5.6.7 이후에서는 --gtid-mode=ON 상태의 서버에서 mysql_upgrade를 실행할 수 있지만 권장되지 않습니다. 비 트랜잭션 인 MyISAM 스토리지 엔진을 사용하는 MySQL 시스템 테이블을 변경할 수 있기 때문입니다.

    MySQL 5.6.10 이전에는, --gtid-mode 가 ON 으로 설정되어있을 때 sql_slave_skip_counter 전역 변수의 값을 1로 설정해도 효과가 없습니다. (Bug # 15833516) MySQL 5.6.9 이전 버전에서의 해결 방법은 CHANGE MASTER TO ... MASTER_LOG_FILE = ... MASTER_LOG_POS = ... 을 사용하여 (필요에 따라이 문에 MASTER_AUTO_POSITION = 0 옵션 포함), 슬레이브의 위치를​​ 재설정하는 것입니다.

GTID 복제에 사용되는 시스템 변수

다음 시스템 변수는 GTID 기반 복제에 사용됩니다.

  • disable_gtid_unsafe_statements

    도입 5.6.5
    삭제 5.6.9
    명령 줄 형식 --disable-gtid-unsafe-statements[=value]
    시스템 변수 이름 disable_gtid_unsafe_statements
    변수 범위 글로벌
    동적 변수 아니오
    허용되는 값 유형 boolean
    기본 false

    폐지 : MySQL 5.6.9에서 enforce_gtid_consistency 로 대체되었습니다. (Bug # 14775984)

  • gtid_done

    도입 5.6.5
    삭제 5.6.9
    시스템 변수 이름 gtid_done
    변수 범위 글로벌 세션
    동적 변수 아니오
    허용되는 값 유형

    string

    폐지 : MySQL 5.6.9에서 gtid_executed 로 대체되었습니다. (Bug # 14775984)

  • enforce_gtid_consistency

    도입 5.6.9
    명령 줄 형식 --enforce-gtid-consistency[=value]
    시스템 변수 이름 enforce_gtid_consistency
    변수 범위 글로벌
    동적 변수 아니오
    허용되는 값 유형 boolean
    기본 false

    이 변수가 true의 경우는 트랜잭션 안전한 방법으로 로그를 기록 할 수있는 문만 실행을 허용하는 것으로, 서버는 GTID 일관성을 적용합니다. 서버를 --gtid-mode=ON 으로 시작하기 전에 GTID 일관성을 사용 ( --enforce-gtid-consistency 를 사용하여)해야합니다. 그렇게하지 ​​GTID 모드를 사용하면 오류와 함​​께 실패합니다. 시스템이 GTID을 사용할 준비가되어 있는지를 테스트하기 위해 --gtid-mode 를 사용하기 전에 GTID 일관성을 사용할 수 있습니다 (권장).

    enforce_gtid_consistency 가 true의 경우는 트랜잭션 안전 확인서를 기록 할 수 있기 때문에 다음 작업은이 경우에는 사용할 수없는 것입니다.

    • CREATE TABLE ... SELECT 문

    • 트랜잭션의 CREATE TEMPORARY TABLE 문

    • 트랜잭션 및 비 트랜잭션 테이블을 모두 업데이트하는 트랜잭션 또는 문.

    이 변수는 읽기 전용입니다. 이것을 설정하려면 MySQL Server를 시작할 때 명령 행 또는 옵션 파일에서 --enforce-gtid-consistency 옵션을 사용하십시오.

    MySQL 5.6.9 이전 버전에서는이 변수의 이름은 disable_gtid_unsafe_statements 이었습니다. (Bug # 14775984)

  • gtid_executed

    도입 5.6.9
    시스템 변수 이름 gtid_executed
    변수 범위 글로벌 세션
    동적 변수 아니오
    허용되는 값 유형 string

    이 변수는 글로벌 범위에서 사용하면 바이너리 로그에 로그가 기록 된 모든 트랜잭션 집합의 표현을 포함합니다. 이것은 SHOW MASTER STATUS 및 SHOW SLAVE STATUS 출력의 Executed_Gtid_Set 컬럼의 값과 동일합니다.

    이 변수는 세션 범위에서 사용될 때 현재 세션 캐시에 기록 된 모든 트랜잭션 집합의 표현을 포함합니다.

    언제든지 바이너리 로그에서 발견 트랜잭션 세트는 GTID_SUBTRACT(@@global.gtid_executed, @@global.gtid_purged) 와 동일합니다 (즉, 바이너리 로그에서 아직 제거되지 않은 모든 트랜잭션).

    서버가 시작되면 @@global.gtid_executed 는 다음 두 세트의 합집합에 초기화됩니다.

    • 가장 새로운 바이너리 로그 Previous_gtids_log_event 에 나열된 GTID

    • 가장 새로운 바이너리 로그의 모든 Gtid_log_event 에서 발견 GTID

    이후 트랜잭션이 수행 될 때 GTID이 그 세트에 추가됩니다.

    RESET MASTER 을 발행하여 전역 변수의 값 (그러나 세션 값이 아닌)은 빈 문자열로 초기화됩니다. GTID은 세트가 RESET MASTER 의해 삭제 될 경우를 제외하고 세트에서 제거되지 않습니다. 세트는 서버가 종료되어 모든 바이너리 로그가 삭제되는 경우에도 취소됩니다.

    MySQL 5.6.9 이전 버전에서는이 변수는 gtid_done 라고했습니다.

  • gtid_lost

    도입 5.6.5
    삭제 5.6.9
    시스템 변수 이름 gtid_lost
    변수 범위 글로벌
    동적 변수 아니오
    허용되는 값 유형 string

    폐지 : MySQL 5.6.9에서 gtid_purged 로 대체되었습니다. (Bug # 14775984)

  • gtid_mode

    도입 5.6.5
    시스템 변수 이름 gtid_mode
    변수 범위 글로벌
    동적 변수 아니오
    허용되는 값 유형 enumeration
    기본 OFF
    유효한 값 OFF
    UPGRADE_STEP_1
    UPGRADE_STEP_2
    ON

    GTID이 유효한지 여부를 나타냅니다. 읽기 전용. --gtid-mode 를 사용하여 설정합니다.

  • gtid_next

    도입 5.6.5
    시스템 변수 이름 gtid_next
    변수 범위 세션
    동적 변수 예
    허용되는 값 유형 enumeration
    기본 AUTOMATIC
    유효한 값 AUTOMATIC
    ANONYMOUS
    UUID:NUMBER

    이 변수는 다음 GTID가 취득 된 것인지, 그리고 어떻게 취득했는지를 지정하는 데 사용됩니다. gtid_next 는 다음 값 중 하나를 취할 수 있습니다.

    • AUTOMATIC : 자동으로 생성되는 다음의 글로벌 트랜잭션 ID를 사용합니다.

    • ANONYMOUS : 트랜잭션은 글로벌 식별자를 가지지 않고, 파일 위치 만 확인됩니다.

    • UUID : NUMBER 형식의 글로벌 트랜잭션 ID입니다.

    이 변수를 설정하려면 SUPER 권한이 필요합니다. gtid_mode 이 OFF 이면이 변수를 설정해도 효과는 없습니다.

    MySQL 5.6.20 이전에는 GTID은 유효도 gtid_next 가 AUTOMATIC 이 아닌 경우, DROP TABLE 이 아닌 임시 테이블 및 테이블 또는 트랜잭션 스토리지 엔진을 사용하는 임시 테이블과 비 트랜잭션 스토리지 엔진을 사용하는 임시 테이블의 조합 에서 사용 된 때 제대로 작동하지 않습니다. MySQL 5.6.20 이상에서 DROP TABLE 또는 DROP TEMPORARY TABLE 은 테이블의 이러한 조합 중 하나에서 사용되는 명시적인 오류로 실패합니다. (Bug # 17620053)

    MySQL 5.6.11뿐입니다 만, gtid_next 가 AUTOMATIC 이외의 값으로 설정되어있을 때, 문 CHANGE MASTER TO , START SLAVE , STOP SLAVE , REPAIR TABLE , OPTIMIZE TABLE , ANALYZE TABLE , CHECK TABLE , CREATE SERVER , ALTER SERVER , DROP SERVER , CACHE INDEX , LOAD INDEX INTO CACHE , FLUSH 또는 RESET 을 수행 할 수 없습니다. 이러한 경우 문은 오류로 실패합니다. 이러한 문은 MySQL 5.6.12 이후에서는 거부되지 않습니다. (Bug # 16062608, Bug # 16715809, Bug # 69045)

  • gtid_owned

    도입 5.6.5
    시스템 변수 이름 gtid_owned
    변수 범위 글로벌 세션
    동적 변수 아니오
    허용되는 값 유형 string

    이 읽기 전용 변수는 내용이 그 범위에 따라 목록을 유지합니다. 세션 범위에서 사용되는 경우에는 목록이 클라이언트가 소유하는 모든 GTID을 유지합니다. 전역 범위에서 사용될 때 모든 GTID과 소유자의 목록을 유지합니다.

  • gtid_purged

    도입 5.6.9
    시스템 변수 이름 gtid_purged
    변수 범위 글로벌
    동적 변수 예
    허용되는 값 유형 string

    바이너리 로그에서 제거 된 모든 트랜잭션 세트.

    서버가 시작할 때 gtid_purged 전역 값은 가장 오래된 바이너리 로그 Previous_gtid_log_event 에 포함 된 GTID 세트에 초기화됩니다. 바이너리 로그가 제거 될 때 가장 낡은 것이되고 바이너리 로그에서 @@global.gtid_purged 가 다시 읽습니다.

    RESET MASTER 을 발행하는 것으로,이 변수의 값은 빈 문자열로 초기화됩니다.

    MySQL 5.6.9 이전 버전에서는이 변수는 gtid_lost 라고 읽기 전용이었습니다. MySQL 5.6.9 이후에서는이 변수의 값을 업데이트 할 수 있습니다 (그러나 이미 열거 된 것에 GTID를 추가 할에서만 및 gtid_executed 가 설정 해제 된 경우, 즉 새로운 서버에서만). (Bug # 14797808)

  • simplified_binlog_gtid_recovery

    도입 5.6.21
    비추천 5.6.23
    명령 줄 형식 --simplified-binlog-gtid-recovery
    시스템 변수 이름 simplified_binlog_gtid_recovery
    변수 범위 글로벌
    동적 변수 아니오
    허용되는 값 유형 boolean
    기본 FALSE

    이 옵션은 비추천으로 향후 MySQL 릴리스에서 제거 될 예정입니다. 이름이 변경된 binlog_gtid_recovery_simplified 를 사용하여 충돌 후 MySQL 바이너리 로그 파일을 어떻게 반복할지 여부를 제어합니다.


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