Loading...
MySQL 9.5 Reference Manual 9.5의 20.9.1 Group Replication System Variables의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
이 섹션은 Group Replication 플러그인에 특정한 시스템 변수를 나열합니다.
각 Group Replication 시스템 변수의 이름은 group_replication_로 시작합니다.
참고
InnoDB Cluster는 Group Replication을 사용하지만, Group Replication 시스템 변수의 기본값은 이 섹션에 문서화된 기본값과 다를 수 있습니다. 예를 들어 InnoDB Cluster에서 group_replication_communication_stack의 기본값은 XCOM(기본 Group Replication 구현의 경우)이 아니라 MYSQL입니다.
자세한 내용은 MySQL InnoDB Cluster를 참조하십시오.
Group Replication 그룹 멤버의 일부 시스템 변수(일부 Group Replication 전용 시스템 변수 및 일부 일반 시스템 변수 포함)는 그룹 전체 구성 설정(group-wide configuration settings)입니다. 이러한 시스템 변수는 모든 그룹 멤버에서 동일한 값을 가져야 하며, 값 변경이 효과를 갖기 위해 그룹의 전체 재부팅(full reboot)(group_replication_bootstrap_group=ON인 서버에 의한 부트스트랩)이 필요합니다.
모든 멤버가 중지된 그룹을 재부팅하는 지침은 Section 20.5.2, “Restarting a Group”를 참조하십시오.
실행 중인 그룹에서 그룹 전체 구성 설정에 대한 값이 설정되어 있고, 조인(joining)하는 멤버에 해당 시스템 변수에 대해 다른 값이 설정되어 있으면, 조인하는 멤버는 값이 일치하도록 변경될 때까지 그룹에 조인할 수 없습니다. 그룹에 이러한 시스템 변수 중 하나에 대한 값이 설정되어 있는데 조인하는 멤버가 해당 시스템 변수를 지원하지 않으면, 조인하는 멤버는 그룹에 조인할 수 없습니다.
다음 시스템 변수는 그룹 전체 구성 설정입니다:
group_replication_view_change_uuid (deprecated)
group_replication_communication_stack (Group Replication 자체 검사(checks)에 의해 policed되지 않는 특수 사례(special case); 자세한 내용은 시스템 변수 설명을 참조)
그룹 전체 구성 설정은 Group Replication이 실행 중인 동안 일반적인 방법으로 변경될 수 없지만, group_replication_switch_to_single_primary_mode() 및 group_replication_switch_to_multi_primary_mode() 함수를 사용하여 그룹이 여전히 실행 중인 동안 group_replication_single_primary_mode 및 group_replication_enforce_update_everywhere_checks의 값을 변경하는 것이 가능합니다. 자세한 내용은 Section 20.5.1.2, “Changing the Group Mode”를 참조하십시오.
Group Replication을 위한 대부분의 시스템 변수는 서로 다른 그룹 멤버에서 서로 다른 값을 가질 수 있습니다. 다음 시스템 변수에 대해서는 불필요한 트랜잭션 롤백, 메시지 전달 실패, 또는 메시지 복구 실패를 피하기 위해 그룹의 모든 멤버에서 동일한 값을 설정하는 것이 바람직합니다:
group_replication_preemptive_garbage_collection의 값은 모든 그룹 멤버에서 동일해야 합니다.
Group Replication을 위한 대부분의 시스템 변수는 동적(dynamic)이라고 설명되며, 서버가 실행 중일 때 값을 변경할 수 있습니다. 그러나 대부분의 경우, 변경은 그룹 멤버에서 STOP GROUP_REPLICATION 문 뒤에 START GROUP_REPLICATION 문을 사용하여 Group Replication을 중지 및 재시작한 후에만 효과를 갖습니다. 다음 시스템 변수에 대한 변경은 Group Replication을 중지 및 재시작하지 않고도 효과를 갖습니다:
어떤 Group Replication 시스템 변수의 값을 변경할 때, STOP GROUP_REPLICATION 문 또는 시스템 종료에 의해 어느 시점에 Group Replication이 모든 멤버에서 동시에 중지되는 시점(point)이 있으면, 그룹은 처음 시작하는 것처럼 부트스트랩(bootstrapping)으로 재시작되어야 한다는 점을 염두에 두십시오. 이를 안전하게 수행하는 지침은 Section 20.5.2, “Restarting a Group”를 참조하십시오. 그룹 전체 구성 설정의 경우 이는 필요하지만, 다른 설정을 변경하는 경우에는 항상 적어도 한 멤버가 실행 중이도록 하십시오.
주의
Group Replication을 위한 여러 시스템 변수는 서버에 명령줄 인자(command line arguments)로 전달되는 경우 서버 시작(startup) 중에 완전히 검증(fully validated)되지 않습니다. 이러한 시스템 변수에는 group_replication_group_name, group_replication_single_primary_mode, group_replication_force_members, SSL 변수, 그리고 흐름 제어(flow control) 시스템 변수가 포함됩니다. 이들은 서버가 시작된 후에만 fully validated됩니다.
그룹 멤버에 대한 IP 주소 또는 호스트 이름을 지정하는 Group Replication의 시스템 변수는 START GROUP_REPLICATION 문이 실행(issued)될 때까지 검증(validated)되지 않습니다. Group Replication의 Group Communication System(GCS)은 그 시점까지 값을 검증하기 위해 available하지 않습니다.
Group Replication 플러그인에 특정한 서버 시스템 변수와, 그 기능 또는 목적에 대한 설명(descriptions)은 여기에서 나열됩니다:
| Property | Value |
|---|---|
| Command-Line Format | --group-replication-advertise-recovery-endpoints=value |
| System Variable | group_replication_advertise_recovery_endpoints |
| Scope | Global |
| Dynamic | Yes |
SET_VAR Hint Applies | No |
| Type | String |
| Default Value | DEFAULT |
이 시스템 변수의 값은 Group Replication이 실행 중일 때 변경될 수 있습니다. 변경은 멤버에서 즉시 효과를 갖습니다. 그러나 이미 시스템 변수의 이전 값을 받은 조인하는 멤버는 계속 그 값을 사용합니다. 값 변경 이후에 조인하는 멤버만 새 값을 받습니다.
group_replication_advertise_recovery_endpoints는 조인하는 멤버가 분산 복구(distributed recovery)를 위한 상태 전송(state transfer)을 위해 기존 멤버에 대한 연결(connection)을 설정(establish)할 수 있는 방법을 지정합니다. 연결은 원격 클로닝(remote cloning) 작업 및 donor의 바이너리 로그(binary log)로부터의 상태 전송 둘 다에 사용됩니다.
기본 설정인 DEFAULT 값은 조인하는 멤버가 MySQL Server의 hostname 및 port 시스템 변수로 지정되는 기존 멤버의 표준 SQL 클라이언트 연결을 사용한다는 것을 의미합니다. report_port 시스템 변수에 의해 대체 포트 번호(alternative port number)가 지정된 경우에는 그 포트가 대신 사용됩니다. Performance Schema 테이블 replication_group_members은 이 연결의 주소 및 포트 번호를 MEMBER_HOST 및 MEMBER_PORT 컬럼에 표시합니다.
DEFAULT 대신, 기존 멤버가 조인하는 멤버에게 사용하도록 advertise하는 하나 이상의 분산 복구 엔드포인트(distributed recovery endpoints)를 지정할 수 있습니다. 분산 복구 엔드포인트를 제공하면 관리자가 분산 복구 트래픽을 그룹 멤버에 대한 일반 MySQL 클라이언트 연결과 별도로 제어(control)할 수 있습니다. 조인하는 멤버는 목록에 지정된 순서대로 엔드포인트를 하나씩 시도합니다.
분산 복구 엔드포인트는 IP 주소 및 포트 번호의 쉼표로 구분된 목록(comma-separated list)으로 지정하십시오. 예:
1group_replication_advertise_recovery_endpoints= "127.0.0.1:3306,127.0.0.1:4567,[::1]:3306,localhost:3306"
IPv4 및 IPv6 주소와 호스트 이름은 어떤 조합(any combination)으로도 사용할 수 있습니다. IPv6 주소는 대괄호(square brackets)로 지정되어야 합니다. 호스트 이름은 로컬 IP 주소로 resolve되어야 합니다. 와일드카드(wildcard) 주소 형식은 사용할 수 없으며, 빈 목록(empty list)을 지정할 수 없습니다. 표준 SQL 클라이언트 연결은 분산 복구 엔드포인트 목록에 자동으로 포함되지 않는다는 점에 유의하십시오. 엔드포인트로 사용하려면 목록에 명시적으로 포함해야 합니다.
분산 복구 엔드포인트로서 IP 주소 및 포트를 선택하는 방법과 조인하는 멤버가 이를 사용하는 방법에 대한 자세한 내용은 Section 20.5.4.1.1, “Selecting addresses for distributed recovery endpoints”를 참조하십시오. 요구 사항(requirements)의 요약(summary)은 다음과 같습니다:
IP 주소는 MySQL Server에 대해 구성(configured)될 필요는 없지만, 서버에 할당(assigned)되어 있어야 합니다.
포트는 port, report_port, 또는 admin_port 시스템 변수를 사용하여 MySQL Server에 대해 구성(configured)되어야 합니다.
admin_port가 사용되는 경우, 분산 복구를 위한 복제 사용자(replication user)에 대해 적절한 권한(appropriate permissions)이 필요합니다.
IP 주소는 group_replication_ip_allowlist 시스템 변수로 지정되는 Group Replication 허용 목록(allowlist)에 추가될 필요가 없습니다.
연결에 대한 SSL 요구 사항은 group_replication_recovery_ssl_* 옵션에 의해 지정된 대로입니다.
| Property | Value |
|---|---|
| Command-Line Format | --group-replication-auto-increment-increment=# |
| System Variable | group_replication_auto_increment_increment |
| Scope | Global |
| Dynamic | Yes |
SET_VAR Hint Applies | No |
| Type | Integer |
| Default Value | 7 |
| Minimum Value | 1 |
| Maximum Value | 65535 |
이 시스템 변수는 모든 그룹 멤버에서 동일한 값을 가져야 합니다. Group Replication이 실행 중인 동안에는 이 시스템 변수의 값을 변경할 수 없습니다. 그룹 멤버 각각에서 Group Replication을 중지(stop)하고, 시스템 변수의 값을 변경한 다음, Group Replication을 재시작(restart)해야 합니다. 이 과정(process) 동안 시스템 변수의 값은 그룹 멤버 간에 달라지는 것이 허용(permitted)되지만, 그룹 멤버의 일부 트랜잭션은 롤백(rolled back)될 수 있습니다.
group_replication_auto_increment_increment는 이 서버 인스턴스(instance)에서 실행되는 트랜잭션에 대해 auto-incremented 컬럼의 연속 값(successive values) 간 간격(interval)을 결정합니다. 간격을 늘리면 그룹 멤버에서의 쓰기(writes)에 대해 중복 auto-increment 값 선택을 피할 수 있으며, 이는 트랜잭션의 롤백을 유발합니다. 기본값 7은 사용 가능한 값 수(usable values)와 복제 그룹의 허용 최대 크기(permitted maximum size)(9 멤버) 사이의 균형(balance)을 나타냅니다. 그룹에 멤버가 더 많거나 더 적으면, Group Replication이 시작되기 전에 이 시스템 변수를 예상 그룹 멤버 수(expected number of group members)에 맞추어 설정할 수 있습니다.
주의
group_replication_single_primary_mode가 ON인 경우 group_replication_auto_increment_increment를 설정해도 효과가 없습니다.
서버 인스턴스에서 Group Replication이 시작되면, 서버 시스템 변수 auto_increment_increment의 값은 이 값으로 변경되고, 서버 시스템 변수 auto_increment_offset의 값은 서버 ID로 변경됩니다. 이 변경은 Group Replication이 중지될 때 되돌려집니다(reverted). 이러한 변경은 auto_increment_increment 및 auto_increment_offset이 각각 기본값 1을 가질 때만 수행(made) 및 되돌려집니다. 값이 이미 기본값에서 수정(modified)된 경우 Group Replication은 이를 변경(alter)하지 않습니다. 시스템 변수는 Group Replication이 단일 프라이머리 모드(single-primary mode, 한 서버만 write하는 mode)에 있을 때도 수정(modified)되지 않습니다.
| Property | Value |
|---|---|
| Command-Line Format | --group-replication-autorejoin-tries=# |
| System Variable | group_replication_autorejoin_tries |
| Scope | Global |
| Dynamic | Yes |
SET_VAR Hint Applies | No |
| Type | Integer |
| Default Value | 3 |
| Minimum Value | 0 |
| Maximum Value | 2016 |
이 시스템 변수의 값은 Group Replication이 실행 중일 때 변경될 수 있으며, 변경은 즉시 효과를 갖습니다. 시스템 변수의 현재 값(current value)은 동작(behavior)이 필요한 이슈(issue)가 발생할 때 읽힙니다.
group_replication_autorejoin_tries는 멤버가 추방(expelled)되었을 때 또는 group_replication_unreachable_majority_timeout 설정에 도달하기 전에 그룹의 과반(majority)에 연락(contact)할 수 없을 때 멤버가 그룹에 자동으로 재조인(rejoin)하려고 시도하는 횟수(tries)를 지정합니다. 멤버의 추방 또는 unreachable majority timeout에 도달하면, 멤버는 재조인을 시도하고(현재 플러그인 옵션 값(current plugin option values)을 사용), 지정된 시도 횟수까지 추가 자동 재조인 시도(further auto-rejoin attempts)를 계속합니다. 실패한 자동 재조인 시도(unsuccessful auto-rejoin attempt) 후에는 다음 시도 전에 멤버가 5분 동안 기다립니다. 멤버가 재조인(rejoining)하거나 중지(being stopped)되지 않은 채로 지정된 시도 횟수가 소진(exhausted)되면, 멤버는 group_replication_exit_state_action 시스템 변수로 지정된 동작(action)으로 진행합니다.
자동 재조인 시도(auto-rejoin attempts) 동안 및 그 사이에서, 멤버는 super read only 모드를 유지하고 쓰기(writes)를 수락(accept)하지 않지만, 멤버에 대해 읽기(reads)는 여전히 수행될 수 있으며 시간이 지남에 따라 오래된 읽기(stale reads)의 가능성(likelihood)이 증가합니다. 어떤 기간이라도 stale reads의 가능성을 허용(tolerate)할 수 없다면, group_replication_autorejoin_tries를 0으로 설정하십시오. Auto-rejoin 기능(feature)에 대한 자세한 정보와, 이 옵션에 대한 값을 선택할 때의 고려 사항(considerations)은 Section 20.7.7.3, “Auto-Rejoin”을 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | `--group-replication-bootstrap-group[={OFF |
| System Variable | group_replication_bootstrap_group |
| Scope | Global |
| Dynamic | Yes |
SET_VAR Hint Applies | No |
| Type | Boolean |
| Default Value | OFF |
group_replication_bootstrap_group는 이 서버를 그룹을 부트스트랩(bootstrap)하도록 구성(configure)합니다. 이 시스템 변수는 서버 하나에서만, 그리고 그룹을 처음 시작할 때 또는 전체 그룹(entire group)을 재시작할 때에만 설정되어야 합니다. 그룹이 부트스트랩된 후에는 이 옵션을 OFF로 설정하십시오. 동적으로도, 구성 파일(configuration files)에서도 OFF로 설정되어야 합니다. 그룹이 실행 중인 상태에서 이 옵션이 설정된 채로 두 서버를 시작하거나 한 서버를 재시작하면 인위적인 스플릿 브레인(split brain) 상황으로 이어질 수 있으며, 여기서 동일한 이름을 가진 두 개의 독립 그룹(independent groups)이 부트스트랩됩니다.
그룹을 처음 부트스트랩하는 지침은 Section 20.2.1.5, “Bootstrapping the Group”를 참조하십시오. 트랜잭션이 실행(executed) 및 인증(certified)된 그룹을 안전하게 부트스트랩하는 지침은 Section 20.5.2, “Restarting a Group”를 참조하십시오.
20.9 Group Replication Variables
20.9.2 Group Replication Status Variables