17.1.4 Replication 및 바이너리 Logging 옵션 과 변수
특히 중요한 것은 --server-id
옵션입니다.
Command-Line Format | --server-id=# | ||
System Variable | Name | server_id | |
Variable Scope | Global | ||
Dynamic Variable | Yes | ||
Permitted Values | Type | integer | |
Default | 0 | ||
Min Value | 0 | ||
Max Value | 4294967295 |
마스터 및 각 슬레이브는 --server-id
옵션을 사용하여 범위가 1에서 2 32 - 1의 고유 복제 ID를 설정해야합니다. "고유"는 각 ID가 다른 복제 마스터 또는 슬레이브에서 사용되는 다른 모든 ID와 다르다 필요가 있다는 것입니다. 예를 들어, server-id=3
.
--server-id
를 생략하면 기본 ID는 0이되고,이 경우 마스터는 모든 슬레이브로부터의 접속을 거부하고 슬레이브는 마스터에 연결을 거부합니다. MySQL 5.6에서는 서버 ID가 명시 적으로 0으로 설정되어 있어도 기본 사용이 허가되고 있어도 서버는 server_id
시스템 변수를 1로 설정합니다. 이것은 MySQL 5.7에서 해결 된 알려진 문제입니다.
자세한 내용은 섹션 17.1.1.2 "리플리케이션 슬레이브 구성 설정" 을 참조하십시오.
server_uuid
MySQL 5.6 이상 서버는 사용자가 지정하는 --server-id
이외에 진정한 UUID를 생성합니다. 이것은 글로벌 읽기 전용 변수 server_uuid
로 사용할 수 있습니다.
System Variable | Name | server_uuid | |
Variable Scope | Global | ||
Dynamic Variable | No | ||
Permitted Values | Type | string |
파일
에 쓰여져있는 UUID를 읽고 사용하려고합니다 (여기서data_dir
/auto.cnfdata_dir
는 서버의 데이터 디렉토리).
이 없으면 새로운 UUID를 생성하고이 파일에 저장합니다 (필요에 따라 파일을 만듭니다).data_dir
/auto.cnf
auto.cnf
파일은 my.cnf
또는 my.ini
파일에 사용되는 것과 유사한 형식입니다. MySQL 5.6에서는 auto.cnf
단일 server_uuid
설정 값을 포함한 단일 [auto]
섹션 만 있습니다. 파일의 내용은 다음 물품과 비슷합니다.
[auto] server_uuid = 8a94f357-aab4-11df-86ab-c80aa9429562
auto.cnf
파일이 자동으로 생성됩니다. 이 파일을 쓰거나 수정할하려고하지 마십시오.
MySQL 5.6 이후에서는, MySQL 복제를 사용할 때 마스터와 슬레이브는 서로의 UUID 알 수 있습니다. 슬레이브의 UUID 값은 SHOW SLAVE HOSTS
의 출력에서 확인할 수 있습니다. START SLAVE
가 실행 된 후에는 (앞에서는 없습니다) 마스터 UUID 값은 슬레이브는 SHOW SLAVE STATUS
의 출력에서 확인할 수 있습니다.
STOP SLAVE
또는 RESET SLAVE
문을 발행해도 슬레이브에서 사용되는 마스터의 UUID는 재설정되지 않습니다.
MySQL 5.6.5 이후에서는 서버의 server_uuid
는 해당 서버에서 발생하는 트랜잭션의 GTID에도 사용됩니다. 자세한 내용은 섹션 17.1.3 "글로벌 트랜잭션 식별자를 사용한 복제" 를 참조하십시오.
시작할 때 슬레이브 I / O 쓰레드는 마스터의 UUID가 자체적으로 동일한 경우, --replicate-same-server-id
옵션이 설정되어있는 경우를 제외하고 오류를 생성하고 중단합니다. 또한 다음 중 하나가 true의 경우, 슬레이브 I / O 쓰레드는 경고를 생성합니다.
예상 된
server_uuid
를 가진 마스터가 존재하지 않는다.CHANGE MASTER TO
문이 지금까지 실행되지 않았다에만 마스터server_uuid
이 변화했다.
MySQL 5.6에서 server_uuid
시스템 변수가 추가 되어도이 섹션에서 이미 설명했듯이, MySQL 복제의 준비 및 실행의 일부로 MySQL 서버마다 고유의 --server-id
를 설정해야 함 는 바뀌지 않습니다.