18.3.3.7 MySQL Cluster의 SQL 노드 및 기타 API 노드의 정의
config.ini
파일의 [mysqld]
및 [api]
섹션은 클러스터 데이터에 액세스하는 데 사용되는 MySQL 서버 (SQL 노드) 및 기타 응용 프로그램 (API 노드)가 정의됩니다. 표시된 어떤 매개 변수도 필요하지 않습니다. 컴퓨터 이름 또는 호스트 이름이 지정되어 있지 않으면 모든 호스트에서이 SQL 또는 API 노드를 사용할 수 있습니다. 일반적으로는 [mysqld]
섹션은 클러스터에 SQL 인터페이스를 제공하는 MySQL 서버를 나타내는 데 사용되며 [api]
섹션은 클러스터 데이터에 액세스 할 mysqld 프로세스 이외의 응용 프로그램을 위해 사용되지만, 이 두 값은 실제로는 동의어이다. 예를 들어, SQL 노드 역할을하는 MySQL 서버의 매개 변수를 [api]
섹션에 지정할 수 있습니다.
MySQL Cluster 용 MySQL 서버 옵션은 섹션 18.3.4.2 "MySQL Cluster 용 MySQL Server 옵션" 을 참조하십시오. MySQL Cluster 관련 MySQL 서버 시스템 변수는 섹션 18.3.4.3 "MySQL Cluster 시스템 변수" 를 참조하십시오.
Id
Effective Version Type/Units Default Range/Values Restart Type NDB 7.3.0 unsigned [none] 1 - 255 IS Id
모든 클러스터 내부 메시지에서 노드를 식별하는 데 사용되는 정수 값입니다. 허용되는 값의 범위는 1-255 (이들을 포함)입니다. 이 값은 노드의 유형에 관계없이 클러스터의 각 노드에서 고유해야합니다.참고데이터 노드 ID는 사용하는 MySQL Cluster 버전에 관계없이 49 미만이어야합니다. 다수의 데이터 노드를 배치하려는 경우, API 노드 (관리 노드)의 노드 ID를 48보다 큰 값으로 제한하는 것이 좋습니다.
NodeId
는 API 노드를 식별 할 때 사용하는 것이 좋습니다되는 매개 변수 이름입니다. (Id
는 하위 호환성을 계속 지원하지만 현재는 비추천이며, 사용시 경고를 생성합니다. 이것은 또한 앞으로 삭제 될 예정입니다.)ConnectionMap
Effective Version Type/Units Default Range/Values Restart Type NDB 7.3.0 string [none] ... N 연결 데이터 노드를 지정합니다.
NodeId
Effective Version Type/Units Default Range/Values Restart Type NDB 7.3.0 unsigned [none] 1 - 255 IS NodeId
는 모든 클러스터 내부 메시지에서 노드를 식별하는 데 사용되는 정수 값입니다. 허용되는 값의 범위는 1-255 (이들을 포함)입니다. 이 값은 노드의 유형에 관계없이 클러스터의 각 노드에서 고유해야합니다.참고데이터 노드 ID는 사용하는 MySQL Cluster 버전에 관계없이 49 미만이어야합니다. 다수의 데이터 노드를 배치하려는 경우, API 노드 (관리 노드)의 노드 ID를 48보다 큰 값으로 제한하는 것이 좋습니다.
NodeId
은 관리 노드를 식별 할 때 사용하는 것이 좋습니다되는 매개 변수 이름입니다. MySQL Cluster의 아주 오래된 버전에서는이 목적을 위해 별칭 (Id
)가 사용되고있었습니다. 이것은 하위 호환성에 계속 대응하고 있습니다 만, 현재는 비추천이며, 사용시 경고를 생성합니다. 또한 MySQL Cluster의 향후 릴리스에서 제거 될 예정입니다.ExecuteOnComputer
Effective Version Type/Units Default Range/Values Restart Type NDB 7.3.0 name [none] ... S 이것은 구성 파일의
[computer]
섹션에 정의 된 하나의 컴퓨터 (호스트)에 설정되어있는Id
를 참조하십시오.HostName
Effective Version Type/Units Default Range/Values Restart Type NDB 7.3.0 name or IP address [none] ... N ExecuteOnComputer
중 하나가 필요합니다.config.ini
파일의 특정[mysql]
또는[api]
섹션에HostName
또는ExecuteOnComputer
가 지정되어 있지 않은 경우, SQL 또는 API 노드는 네트워크 연결을 설정할 수있는 모든 호스트에서 해당 "슬롯"을 사용하여 관리 서버 호스트 시스템에 연결할 수 있습니다. 이것은, 그 밖에 지정되어 있지 않은 경우localhost
가HostName
으로 사용되는 데이터 노드의 기본 동작과 다릅니다.ArbitrationRank
Effective Version Type/Units Default Range/Values Restart Type NDB 7.3.0 0-2 0 0 - 2 N ArbitrationRank
1 (관리 노드의 기본값)로 설정된 각 SQL 노드는 0 (SQL 노드의 기본값)로 설정되기 때문에 관리 서버가 중재자로 사용됩니다.모든 관리 및 SQL 노드에서
ArbitrationRank
를 0으로 설정하면 중재를 완전히 비활성화 할 수 있습니다. 이 빠라메라을 무시하고 중재를 제어 할 수 있습니다. 그러기 위해서는,config.ini
글로벌 구성 파일의[ndbd default]
섹션에Arbitration
매개 변수를 설정합니다.ArbitrationDelay
Effective Version Type/Units Default Range/Values Restart Type NDB 7.3.0 milliseconds 0 0 - 4294967039 (0xFFFFFEFF) N 이 매개 변수를 0 (기본값) 이외의 값으로 설정하면 중재 요청에 대한 중재자의 응답이 지정된 밀리 초만큼 지연됩니다. 일반적으로이 값을 변경할 필요가 없습니다.
BatchByteSize
Effective Version Type/Units Default Range/Values Restart Type NDB 7.3.0 bytes 16K 1024 - 1M N BatchSize
)와 바이트 (BatchByteSize
) 모두에서 적절한 크기를 설정할 수 있습니다. 실제 배치 크기는 두 매개 변수에 의해 제한됩니다.이 매개 변수의 설정 방법에 따라 쿼리의 실행 속도의 변화율이 40 %를 초과 할 수 있습니다.
이 매개 변수는 바이트 단위로 측정됩니다. MySQL Cluster NDB 7.3 이상에서는 디폴트 값은 16K입니다.
BatchSize
Effective Version Type/Units Default Range/Values Restart Type NDB 7.3.0 records 256 1 - 992 N 이 매개 변수는 레코드 단위로 측정되며 기본적으로 256으로 설정됩니다. 최대 크기는 992입니다.
ExtraSendBufferMemory
Effective Version Type/Units Default Range/Values Restart Type NDB 7.3.0 bytes 0 0 - 4294967039 (0xFFFFFEFF) N 이 매개 변수를 사용하여 관리 및 API 노드의 하트 비트 스레드의 스케줄링 정책과 우선 순위를 설정합니다. 이 매개 변수를 설정하는 구문을 여기에 나타냅니다.
HeartbeatThreadPriority
Effective Version Type/Units Default Range/Values Restart Type NDB 7.3.0 string [none] ... S Use this parameter to set the scheduling policy and priority of heartbeat threads for management and API nodes. The syntax for setting this parameter is shown here:
HeartbeatThreadPriority =
policy
[,priority
]policy
: {FIFO | RR}이 매개 변수를 설정할 때 정책을 지정해야합니다. 이것은
FIFO
(선입 선출) 또는RR
(라운드 로빈) 중 하나입니다. 이후에 선택적으로 우선 순위 (정수)를 지정할 수 있습니다.MaxScanBatchSize
Effective Version Type/Units Default Range/Values Restart Type NDB 7.3.0 bytes 256K 32K - 16M N 이 매개 변수의 디폴트 값은 256K 바이트입니다. 최대 크기는 16M 바이트입니다.
TotalSendBufferMemory
Effective Version Type/Units Default Range/Values Restart Type NDB 7.3.0 bytes 0 256K - 4294967039 (0xFFFFFEFF) N 이 매개 변수를 설정하는 경우 허용되는 최소값은 256K 바이트 최대 값은 4294967039입니다.
TotalSendBufferMemory
동작과 사용 및 MySQL Cluster에서의 전송 버퍼 메모리 매개 변수 구성 자세한 내용은 섹션 18.3.2.12 "MySQL Cluster의 전송 버퍼 매개 변수 구성" 을 참조하십시오.AutoReconnect
Effective Version Type/Units Default Range/Values Restart Type NDB 7.3.0 boolean false true, false N false
입니다. 이에 따라 절단 된 API 노드 (SQL 노드 역할을하는 MySQL 서버 포함)가 기존 연결을 다시 사용하려고하지 않고 클러스터에 새 연결을 강제로 사용하게됩니다 (연결을 다시 사용하면 동적으로 할당 된 노드 ID를 사용할 때 문제가 발생할 수 있기 때문에). (Bug # 45921)참고이 매개 변수는 NDB API를 사용하여 재정의 할 수 있습니다. 자세한 내용은 Ndb_cluster_connection :: set_auto_reconnect () 및 Ndb_cluster_connection :: get_auto_reconnect () 를 참조하십시오.
DefaultOperationRedoProblemAction
Effective Version Type/Units Default Range/Values Restart Type NDB 7.3.0 enumeration QUEUE ABORT, QUEUE S RedoOverCommitLimit
및RedoOverCommitCounter
함께) Redo 로그를 디스크에 플러시하는 시간이 너무 긴 경우 데이터 노드가 작업 처리를 제어합니다. 이것은 특정 Redo 로그의 플래시가RedoOverCommitLimit
초보다 긴 시간이 지남에RedoOverCommitCounter
회 이상의 횟수만큼 수행 보류중인 트랜잭션이 중단 된 경우에 발생합니다.이 발생시는 노드는 다음에 나와
DefaultOperationRedoProblemAction
의 값에 따라 두 가지 방법 중 하나를받을 수 있습니다.ABORT
: 중단 된 트랜잭션에 포함 된 보류중인 작업도 중지됩니다.QUEUE
: 중단 된 트랜잭션에 포함 된 보류중인 작업이 대기열에 다시 시도됩니다.
DefaultHashMapSize
Effective Version Type/Units Default Range/Values Restart Type NDB 7.3.0 buckets 3840 0 - 3840 N MySQL Cluster NDB 7.2.7 이상에서는 이전 릴리스 (240)보다 큰 테이블 해시 맵의 기본 크기 (3840)가 사용됩니다. MySQL Cluster NDB 7.2.11 이후 버전에서는이 매개 변수를 사용하여
NDB
가 사용하는 테이블 해시 맵의 크기를 구성 할 수 있습니다 (이전에는이 값은 하드 코딩되어있었습니다).DefaultHashMapSize
에는 3 개의 값 (0,240,3840) 중 하나를 지정할 수 있습니다. 이러한 값과 그 효과에 대해 다음 표에서 설명합니다.Value Description / Effect 0
클러스터의 모든 데이터 및 API 노드에서이 매개 변수에 설정된 가장 작은 값을 (있으면) 사용합니다. 어떤 데이터 또는 API 노드에 설정되어 있지 않으면 기본값을 사용합니다.
240
MySQL Cluster NDB 7.2.7 이전의 모든 MySQL Cluster 릴리스에서 기본적으로 사용되어 원래 해시 맵 크기입니다
3840
MySQL Cluster NDB 7.2.7 이상에서 기본적으로 사용되는 더 큰 해시 맵 크기
DefaultHashMapSize
는 개별 데이터 노드 API 노드 또는 둘 모두에 설정할 수 있지만,config.ini
파일의[ndbd default]
섹션에 한 번만 설정하는 방법을 권장합니다.이 매개 변수를 늘린 후 기존 테이블에 새로운 크기를 사용하려면 해당 테이블에
ALTER TABLE ... REORGANIZE PARTITION
을 실행합니다. 그런 다음 테이블에서 더 큰 해시 맵 크기를 사용할 수있게됩니다. 이것은 롤링 재시작 실행 이외에합니다. 롤링 재시작을 수행하면 더 큰 해시 맵을 새로운 테이블로 사용 할 수 있지만, 기존의 테이블에서는 사용할 수 없습니다.DefaultHashMapSize
을 3840으로 설정하여 테이블을 생성하거나 수정 한 후 온라인으로이 매개 변수를 줄이는 방법은 현재 지원되지 않습니다.Wan
Effective Version Type/Units Default Range/Values Restart Type NDB 7.3.0 boolean false true, false N WAN의 TCP 설정을 기본값으로 사용합니다.
ConnectBackoffMaxTime
Effective Version Type/Units Default Range/Values Restart Type NDB 7.3.7 integer 0 0 - 4294967039 (0xFFFFFEFF) N NDB 7.4.2 integer 0 0 - 4294967039 (0xFFFFFEFF) N StartConnectBackoffMaxTime
매개 변수 값이 적용됩니다. 그렇지 않으면ConnectBackoffMaxTime
을 사용하여 연결 시도 간의 대기 시간 (밀리 초)이 결정됩니다.이 매개 변수의 경과 시간을 계산 할 때 노드의 접속 시행 중에 경과 시간은 고려되지 않습니다. 제한 시간은 100 밀리 초 지연 시작 약 100 밀리 초 분해능으로 적용됩니다. 후속 시도 때마다
ConnectBackoffMaxTime
밀리 초 (최대 100,000 밀리 초 (100 초))에 도달 할 때까지이 기간의 길이가 배가됩니다.API 노드가 데이터 노드에 연결된 노드가 (하트 비트 메시지) 다른 데이터 노드에 연결 한 것을보고하면 데이터 노드에 대한 연결 시도는이 매개 변수의 영향을받지 않습니다 다음 연결될 때까지 100 밀리 초 간격으로 이루어집니다. 데이터 노드가 시작하면이 문제가 발생 적이 API 노드에 통지 될 때까지
HeartbeatIntervalDbApi
을 필요로합니다StartConnectBackoffMaxTime
Effective Version Type/Units Default Range/Values Restart Type NDB 7.3.7 integer 0 0 - 4294967039 (0xFFFFFEFF) N NDB 7.4.2 integer 0 0 - 4294967039 (0xFFFFFEFF) N StartConnectBackoffMaxTime
매개 변수 값이 적용됩니다. 그렇지 않으면ConnectBackoffMaxTime
을 사용하여 연결 시도 간의 대기 시간 (밀리 초)이 결정됩니다.이 매개 변수의 경과 시간을 계산 할 때 노드의 접속 시행 중에 경과 시간은 고려되지 않습니다. 제한 시간은 100 밀리 초 지연 시작 약 100 밀리 초 분해능으로 적용됩니다. 후속 시도 때마다
StartConnectBackoffMaxTime
밀리 초 (최대 100,000 밀리 초 (100 초))에 도달 할 때까지이 기간의 길이가 배가됩니다.API 노드가 데이터 노드에 연결된 노드가 (하트 비트 메시지) 다른 데이터 노드에 연결 한 것을보고하면 데이터 노드에 대한 연결 시도는이 매개 변수의 영향을받지 않습니다 다음 연결될 때까지 100 밀리 초 간격으로 이루어집니다. 데이터 노드가 시작하면이 문제가 발생 적이 API 노드에 통지 될 때까지
HeartbeatIntervalDbApi
을 필요로합니다.여기에 같이 mysql 클라이언트의
SHOW STATUS
를 사용하여 MySQL Cluster SQL 노드로 실행되는 MySQL 서버에서 정보를 검색 할 수 있습니다.
mysql> SHOW STATUS LIKE 'ndb%';
+-----------------------------+---------------+
| Variable_name | Value |
+-----------------------------+---------------+
| Ndb_cluster_node_id | 5 |
| Ndb_config_from_host | 192.168.0.112 |
| Ndb_config_from_port | 1186 |
| Ndb_number_of_storage_nodes | 4 |
+-----------------------------+---------------+
4 rows in set (0.02 sec)
이 문 출력에 표시되는 상태 변수는 섹션 18.3.4.4 "MySQL Cluster의 상태 변수" 를 참조하십시오. 실행중인 MySQL Cluster 구성에 새로운 SQL 또는 API 노드를 추가하려면 config.ini
파일 (여러 관리 서버를 사용하는 경우 여러 파일)에 새로운 [mysqld]
또는 [api]
섹션을 추가 한 나중에 모든 클러스터 노드의 롤링 재시작을 수행해야합니다. 이것은 새로운 SQL 또는 API 노드를 클러스터에 연결하기 전에 실행해야합니다.
새로운 SQL 또는 API 노드가 클러스터 구성에서 이전에 사용되지 않은 API 슬롯을 사용하여 클러스터에 연결하는 경우 클러스터 재부팅을 수행 할 필요가 없습니다.