Loading...
MySQL 9.5 Reference Manual 9.5의 25.6.10 MySQL Server Usage for NDB Cluster의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
mysqld는 전통적인 MySQL 서버 프로세스입니다.
NDB Cluster와 함께 사용하려면, mysqld는 NDB
스토리지 엔진에 대한 지원을 포함하여 빌드되어야 하며, 이는
https://dev.mysql.com/downloads/에서 제공되는 프리컴파일된 바이너리에서도 마찬가지입니다.
소스에서 MySQL을 빌드하는 경우, NDB 지원을 포함하려면 CMake를
-DWITH_NDB=1 또는 (사용 중단됨)
-DWITH_NDBCLUSTER=1 옵션과 함께 호출해야 합니다.
소스에서 NDB Cluster를 컴파일하는 방법에 대한 자세한 내용은 Section 25.3.1.4, “Building NDB Cluster from Source on Linux” 및 Section 25.3.2.2, “Compiling and Installing NDB Cluster from Source on Windows”를 참조하십시오.
이 절에서 다루는 것 외에, NDB Cluster와 관련된 mysqld 옵션 및 변수에 대한 정보는 Section 25.4.3.9, “MySQL Server Options and Variables for NDB Cluster”를 참조하십시오.
mysqld 바이너리가 Cluster 지원을 포함하여 빌드된 경우에도,
NDBCLUSTER
스토리지 엔진은 기본적으로 비활성화되어 있습니다. 이 엔진을 활성화하려면
다음 두 가지 옵션 중 하나를 사용할 수 있습니다:
mysqld를 시작할 때 커맨드 라인에서
시작 옵션으로 --ndbcluster를 사용합니다.
my.cnf 파일의 [mysqld] 섹션에
ndbcluster가 포함된 행을 추가합니다.
서버가 NDBCLUSTER 스토리지 엔진이 활성화된 상태로
실행되고 있는지 쉽게 확인하는 방법은
MySQL 모니터( mysql)에서
SHOW ENGINES 문을 실행하는 것입니다.
출력에서 NDBCLUSTER에 해당하는 행의
Support 값으로 YES가 표시되어야 합니다. 이 행에서 NO가
표시되거나 출력에 해당 행이 없다면,
NDB 지원이 포함된 MySQL 버전을 실행 중이 아닌 것입니다.
이 행에 DISABLED가 표시되면,
방금 설명한 두 가지 방법 중 하나로 이를 활성화해야 합니다.
Cluster 구성 데이터를 읽기 위해, MySQL 서버에는 최소한 다음 세 가지 정보가 필요합니다:
MySQL 서버 자신의 클러스터 노드 ID
매니지먼트 서버의 호스트 이름 또는 IP 주소
매니지먼트 서버에 연결할 수 있는 TCP/IP 포트 번호
노드 ID는 동적으로 할당될 수 있으므로, 이를 명시적으로 지정하는 것은 엄밀히 필요하지는 않습니다.
mysqld 파라미터
ndb-connectstring은
mysqld를 시작할 때 커맨드 라인에서
또는 my.cnf에서 커넥션 문자열을 지정하는 데 사용됩니다.
커넥션 문자열에는 매니지먼트 서버를 찾을 수 있는
호스트 이름 또는 IP 주소와, 매니지먼트 서버가 사용하는
TCP/IP 포트가 포함됩니다.
다음 예에서 ndb_mgmd.mysql.com은
매니지먼트 서버가 있는 호스트이며, 매니지먼트 서버는
포트 1186에서 클러스터 메시지를 수신 대기합니다:
1$> mysqld --ndbcluster --ndb-connectstring=ndb_mgmd.mysql.com:1186
커넥션 문자열에 대한 자세한 내용은 Section 25.4.3.3, “NDB Cluster Connection Strings”를 참조하십시오.
이 정보가 주어지면, MySQL 서버는 클러스터의 완전한 참가자로 동작할 수 있습니다. (이와 같이 실행 중인 mysqld 프로세스를 SQL 노드라고 부르기도 합니다.)
서버는 모든 클러스터 데이터 노드와 그 상태를 완전히 인지하고, 모든 데이터 노드에 대한 연결을 설정합니다. 이 경우, 어느 데이터 노드든 트랜잭션 코디네이터로 사용할 수 있으며 노드 데이터를 읽고 갱신할 수 있습니다.
MySQL 서버가 클러스터에 연결되어 있는지는
mysql 클라이언트에서
SHOW PROCESSLIST를 사용해 확인할 수 있습니다.
MySQL 서버가 클러스터에 연결되어 있고,
PROCESS
권한을 가지고 있다면, 출력의 첫 번째 행은 다음과 같습니다:
1mysql> SHOW PROCESSLIST \G 2*************************** 1. row *************************** 3 Id: 1 4 User: system user 5 Host: 6 db: 7Command: Daemon 8 Time: 1 9 State: Waiting for event from ndbcluster 10 Info: NULL
주의
NDB Cluster에 참여하려면, mysqld
프로세스는
--ndbcluster 옵션과
--ndb-connectstring 옵션(또는 my.cnf에 있는
이들과 동등한 항목) _둘 다_를 지정하여 시작해야 합니다.
mysqld를
--ndbcluster 옵션만으로 시작했거나,
클러스터에 접속할 수 없는 경우,
NDB 테이블을 다루는 것은 불가능하며,
storage engine에 관계없이 새로운 테이블을 생성하는 것 또한
_불가능_합니다.
후자의 제한은 SQL 노드가 클러스터에
연결되어 있지 않을 때, NDB 테이블과
이름이 같은 테이블이 생성되는 것을 막기 위한
안전 장치입니다. mysqld
프로세스가 NDB Cluster에 참여하지 않는 동안
다른 스토리지 엔진을 사용하여 테이블을 생성하려면,
--ndbcluster 옵션 없이 서버를 다시
시작해야 합니다.
25.6.9 Importing Data Into MySQL Cluster
25.6.11 NDB Cluster Disk Data Tables