17.4.1.34 복제 및 변수
시스템 변수는 다음 변수를 제외 (세션 범위에서 사용될 때), STATEMENT 모드 사용시 제대로 복제되지 않습니다.
auto_increment_incrementauto_increment_offsetcharacter_set_clientcharacter_set_connectioncharacter_set_databasecharacter_set_servercollation_connectioncollation_databasecollation_serverforeign_key_checksidentitylast_insert_idlc_time_namespseudo_thread_idsql_auto_is_nulltime_zonetimestampunique_checks
MIXED 모드 사용시 위의 목록에서 변수가 세션 범위에서 사용될 때 명령문 기반에서 행 기반 로깅로 전환됩니다. 섹션 5.2.4.3 "혼합 형식의 바이너리 로깅 형식" 을 참조하십시오.
NO_DIR_IN_CREATE 모드의 경우를 제외하고 sql_mode 도 복제됩니다. 슬레이브는 항상 NO_DIR_IN_CREATE 에 그 자신의 가치를 유지합니다 (마스터에서 변경에 관계없이). 이것은 모든 복제 형식에 적용됩니다.
그러나 mysqlbinlog가 SET @@sql_mode = 문을 분석 할 때, modeNO_DIR_IN_CREATE 을 포함한 전체 mode 값이 수신 서버에 전달됩니다. 따라서 이러한 문 복제는 STATEMENT 모드 사용시 안전하지 않을 수 있습니다.
default_storage_engine 및 storage_engine 시스템 변수는 로깅 모드에 관계없이 복제되지 않습니다. 이것은 서로 다른 스토리지 엔진 간의 복제를 용이하게하기위한 것입니다.
read_only 시스템 변수는 복제되지 않습니다. 또한이 변수를 사용하면 임시 테이블, 테이블 잠금 및 SET PASSWORD 명령문에 대한 효과는 MySQL 버전에 따라 다릅니다.
max_heap_table_size 시스템 변수는 복제되지 않습니다. 슬레이브에서이 변수의 값을 늘리지 않고 마스터에서 늘리면 결국 슬레이브에서 Table is full 오류가 발생할 수 있습니다 (슬레이브 대응하는 것보다 커질 수 허용 된 마스터에서 MEMORY 테이블에서 INSERT 문을 실행하려고 할 때). 자세한 내용은 섹션 17.4.1.21 "복제 및 MEMORY 테이블" 을 참조하십시오.
문 기반 복제 세션 변수는 테이블을 업데이트하는 명령문에서 사용할 때 제대로 복제되지 않습니다. 예를 들어, 다음 순서의 문은 마스터와 슬레이브로 동일한 데이터를 삽입하지 않습니다.
SET max_join_size = 1000; INSERT INTO mytable VALUES (@@ max_join_size);
이것은 일반적인 순서에는 적용되지 않습니다.
SET time_zone = ...; INSERT INTO mytable VALUES (CONVERT_TZ (..., ..., @@ time_zone));
세션 변수의 복제는 열 기반 리플리케이션을 사용하는 경우에는 문제가 없습니다. 이 경우, 세션 변수는 항상 안전하게 복제됩니다. 섹션 17.1.2 "복제 형식" 을 참조하십시오.
MySQL 5.6에서는 다음의 세션 변수는 로깅 형식에 관계없이 바이너리 로그에 기록 된 바이너리 로그를 분석 할 때 리플리케이션에 의해 허용됩니다.
sql_modeforeign_key_checksunique_checkscharacter_set_clientcollation_connectioncollation_databasecollation_serversql_auto_is_null
문자 셋과 콜레 션에 관련된 세션 변수는 바이너리 로그에 기록 되더라도, 다른 문자 집합 사이의 복제는 지원되지 않습니다.
혼란의 가능성을 줄이기 위해 마스터와 슬레이브에서 lower_case_table_names 시스템 변수에 항상 동일한 설정을 사용하는 것이 좋습니다 (특히 파일 시스템이 대소 문자를 구별 플랫폼에서 MySQL을 실행하는 경우 ).
이전 버전의 MySQL에서 대소 문자를 구분하는 파일 시스템을 사용하는 경우이 변수를 슬레이브로 1 마스터에서 다른 값으로 설정하면 복제가 실패 할 수있었습니다. 이 문제는 MySQL 5.6.1에서 해결되고 있습니다. (Bug # 37656)