18.3.3.1 MySQL Cluster 구성의 기본적인 예제
MySQL Cluster를 지원하려면 다음 예제와 같이 my.cnf
를 업데이트해야합니다. 이러한 매개 변수를 실행 파일을 시작할 때 명령 행에 지정할 수도 있습니다.
여기에 표시된 옵션을 config.ini
글로벌 구성 파일에 사용되는 것으로 혼동하지 않도록하십시오. 글로벌 구성 옵션은이 섹션 뒷부분에서 설명합니다.
# my.cnf # example additions to my.cnf for MySQL Cluster # (valid in MySQL 5.6) # enable ndbcluster storage engine, and provide connection string for # management server host (default port is 1186) [mysqld] ndbcluster ndb-connectstring=ndb_mgmd.mysql.com # provide connection string for management server host (default port: 1186) [ndbd] connect-string=ndb_mgmd.mysql.com # provide connection string for management server host (default port: 1186) [ndb_mgm] connect-string=ndb_mgmd.mysql.com # provide location of cluster configuration file [ndb_mgmd] config-file=/etc/config.ini
(연결 문자열의 자세한 내용은 섹션 18.3.2.3 "MySQL Cluster의 연결 문자열" 을 참조하십시오.)
# my.cnf # example additions to my.cnf for MySQL Cluster # (will work on all versions) # enable ndbcluster storage engine, and provide connection string for management # server host to the default port 1186 [mysqld] ndbcluster ndb-connectstring=ndb_mgmd.mysql.com:1186
앞에서 언급 한 바와 같이, my.cnf
파일의 [mysqld]
에 NDBCLUSTER
및 ndb-connectstring
매개 변수를 지정해 mysqld 프로세스를 시작한 후 클러스터를 실제로 시작하지 않으면 CREATE TABLE
또는 ALTER TABLE
문을 실행 수 없습니다. 그렇지 않은 경우 이러한 문은 오류와 함께 실패합니다. 이것은 의도적 인 것입니다.
클러스터 my.cnf
파일에서 모든 실행 파일에 의해 읽혀져 사용되는 설정에서 별도의 [mysql_cluster]
섹션을 사용할 수도 있습니다.
# cluster-specific settings [mysql_cluster] ndb-connectstring=ndb_mgmd.mysql.com:1186
my.cnf
파일에 설정할 수있는 추가 NDB
변수는 섹션 18.3.4.3 "MySQL Cluster 시스템 변수" 를 참조하십시오.
MySQL Cluster의 글로벌 구성 파일에는 관례에서 config.ini
라는 이름을 붙일 수 있습니다 (그러나 이것은 필수는 아닙니다). 이것은 필요에 따라 ndb_mgmd가 시작할 때 읽기 때문에 읽기가 가능한 임의의 장소에 배치 할 수 있습니다. 구성의 위치와 이름은 명령 행 ndb_mgmd에서 --config-file=
을 사용하여 지정합니다. 이 옵션에는 기본값이 아니라 ndb_mgmd로 구성 캐시를 사용하는 경우이 옵션은 무시됩니다. path_name
MySQL Cluster의 글로벌 구성에서는 여러 섹션으로 구성된 INI 형식이 사용됩니다. 각 섹션의 시작은 (대괄호로 둘러싸인) 섹션 제목이 붙어 그 뒤에 적절한 매개 변수 이름과 값이 나옵니다. 표준 INI 형식의 차이점 중 하나는 매개 변수 이름과 값을 등호 ( " =
")뿐만 아니라 콜론 (" :
")으로 구분도 할 수 있습니다 (단, 등호가 권장됩니다). 또 다른 차이점은 섹션이 섹션 이름으로 고유하게 식별되지 않는 것입니다. 대신 고유 한 섹션 (같은 종류의 두 가지 노드 등)은 섹션 내의 매개 변수로 지정된 고유 ID로 식별됩니다.
기본값은 대부분의 매개 변수에 정의되어 있으며, config.ini
에서 지정할 수도 있습니다. 기본값 섹션을 만들려면 섹션 이름에 default
라는 단어를 추가합니다. 예를 들어, [ndbd]
섹션에는 특정 데이터 노드에 적용되는 매개 변수가 포함되어 있습니다 만, [ndbd default]
섹션은 모든 데이터 노드에 적용되는 매개 변수가 포함되어 있습니다. 모든 데이터 노드가 같은 데이터 메모리 크기를 사용합니다. 이러한 모든 구성에는 데이터 메모리 크기를 지정하는 DataMemory
행을 포함 [ndbd default]
섹션을 만듭니다.
MySQL Cluster 일부 이전 릴리스에서는 NoOfReplicas
의 기본값이 존재하지 않기 때문에 항상 [ndbd default]
섹션에 명시 적으로 값을 지정해야했습니다. 현재이 매개 변수의 기본값은 대부분의 일반적인 사용 시나리오에서 권장 설정 인 2되어 있습니다 만, 앞으로도이 매개 변수를 명시 적으로 설정하는 것이 권장됩니다.
글로벌 구성 파일은 클러스터에 참여하는 컴퓨터와 노드와 노드를 모든 컴퓨터에 배치하는 방법을 정의해야합니다. 하나의 관리 서버, 두 개의 데이터 노드 및 2 개의 MySQL 서버로 구성된 클러스터에 대한 간단한 예제 구성 파일을 여기에 나타냅니다.
# file "config.ini" - 2 data nodes and 2 SQL nodes # This file is placed in the startup directory of ndb_mgmd (the # management server) # The first MySQL Server can be started from any host. The second # can be started only on the host mysqld_5.mysql.com [ndbd default] NoOfReplicas= 2 DataDir= /var/lib/mysql-cluster [ndb_mgmd] Hostname= ndb_mgmd.mysql.com DataDir= /var/lib/mysql-cluster [ndbd] HostName= ndbd_2.mysql.com [ndbd] HostName= ndbd_3.mysql.com [mysqld] [mysqld] HostName= mysqld_5.mysql.com
위의 예제는 MySQL Cluster에 익숙하기 위해 필요한 최소한의 초기 구성이며, 프로덕션 환경 설정으로 충분하지 않습니다. 전체 초기 구성 예는 섹션 18.3.2.2 "MySQL Cluster의 권장 초기 구성" 을 참조하십시오.
config.ini
파일에는 각 노드에 고유 한 섹션이 있습니다. 예를 들어,이 클러스터는 2 개의 데이터 노드가 있기 때문에 앞에서 언급 한 구성 파일에는 이러한 노드를 정의하는 두 개의 [ndbd]
섹션이 있습니다.
config.ini
파일에서 섹션 제목과 같은 행에 주석을 배치하지 마십시오. 이렇게하면 관리 서버는 이러한 구성 파일을 구문 분석 할 수 없기 때문에 시작하지 않습니다.
config.ini 파일의 섹션
다음 목록에 설명 된대로 config.ini
구성 파일에서 6 가지 섹션을 사용할 수 있습니다.
[computer]
: 클러스터 호스트를 정의합니다. 이것은 실행 가능한 MySQL Cluster 구성에 필수는 아니지만 대규모 클러스터를 설정할 때 사용하면 편리합니다. 자세한 내용은 섹션 18.3.2.4 "MySQL Cluster의 컴퓨터의 정의" 를 참조하십시오.[ndbd]
: 클러스터 데이터 노드 (ndbd 프로세스)를 정의합니다. 자세한 내용은 섹션 18.3.2.6 "MySQL Cluster 데이터 노드의 정의" 를 참조하십시오.[mysqld]
: 클러스터의 MySQL 서버 노드 (SQL 노드와 API 노드라고도 함)를 정의합니다. SQL 노드의 구성 내용은 섹션 18.3.2.7 "MySQL Cluster의 SQL 노드 및 기타 API 노드의 정의" 를 참조하십시오.[mgm]
또는[ndb_mgmd]
: 클러스터 관리 서버 노드 (MGM)를 정의합니다. 관리 노드의 구성 내용은 섹션 18.3.2.5 "MySQL Cluster 관리 서버의 정의" 를 참조하십시오.[tcp]
: TCP / IP가 기본 연결 프로토콜 인 클러스터 노드 간의 TCP / IP 연결을 정의합니다. 일반적으로[tcp]
또는[tcp default]
섹션은 클러스터가 자동으로 처리하기 위해 MySQL Cluster를 설치하는 경우에는 필요하지 않습니다. 그러나 상황에 따라 클러스터가 제공하는 기본값을 재정의하는 데 필요할 수 있습니다. 사용 가능한 TCP / IP 구성 매개 변수와 사용 방법은 섹션 18.3.2.8 "MySQL 클러스터의 TCP / IP 연결" 을 참조하십시오. (경우에 따라서는 섹션 18.3.2.9 "직접 연결을 사용하는 MySQL Cluster의 TCP / IP 연결" 도 도움이 될 수 있습니다.)[shm]
: 노드 간 공유 메모리 연결을 정의합니다. 이것은 MySQL 5.6에서는 기본적으로 활성화되어 있습니다 만, 아직 실험적인 것이라고 생각합니다. SHM 상호 연결에 대해서는 섹션 18.3.2.10 "MySQL Cluster의 공유 메모리 연결" 을 참조하십시오.[sci]
: 클러스터 데이터 노드의 확장 코히 런트 인터페이스 연결을 정의합니다. 이러한 연결에는 무료로 얻을 수 MySQL Cluster 배포에 포함되지 않는 소프트웨어와 전용 하드웨어가 필요합니다. SCI 상호 연결의 자세한 내용은 섹션 18.3.2.11 "MySQL Cluster에서 SCI 전송 연결" 을 참조하십시오.
각 섹션에 default
값을 정의 할 수 있습니다. my.cnf
또는 my.ini
파일에 지정된 매개 변수와 달리 모든 클러스터 매개 변수 이름은 대소 문자를 구별하지 않습니다.