Loading...
MySQL 9.5 Reference Manual 9.5의 25.5.1 ndbd — The NDB Cluster Data Node Daemon의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
ndbd binary는 NDBCLUSTER 스토리지
엔진을 사용하는 테이블의 모든 데이터를 처리하는 데 사용되는
싱글 스레드 버전의 프로세스를 제공합니다. 이 데이터 노드 프로세스는 데이터 노드가
분산 트랜잭션 처리, 노드 복구, 디스크로의 체크포인팅,
온라인 백업 및 관련 작업을 수행할 수 있게 합니다. 시작 시,
ndbd는 다음과 유사한 경고를 로그로 남깁니다:
12024-05-28 13:32:16 [ndbd] WARNING -- Running ndbd with a single thread of 2signal execution. For multi-threaded signal execution run the ndbmtd binary.
ndbmtd는 이 binary의 멀티스레드 버전입니다.
NDB Cluster에서, 일련의 데이터 노드 프로세스들이 협력하여 데이터를 처리합니다. 이러한 프로세스들은 동일한 컴퓨터 (호스트)에서 실행될 수도 있고, 서로 다른 컴퓨터에서 실행될 수도 있습니다. 데이터 노드와 클러스터 호스트 사이의 대응 관계는 완전히 구성 가능(configurable)합니다.
ndbd와 함께 사용할 수 있는 옵션들은 다음 표에 나와 있습니다. 추가 설명은 표 다음에 이어집니다.
참고
이들 옵션은 모두 이 프로그램의 멀티스레드 버전 (ndbmtd)에도 적용되며, 이 절(section)에서 “ndbd”가 나오는 곳마다 “ndbmtd”로 대체할 수 있습니다.
| Property | Value |
|---|---|
| Command-Line Format | --bind-address=name |
| Type | String |
| Default Value | `` |
ndbd가 특정 네트워크 인터페이스 (호스트 이름 또는 IP 주소)에 바인드하도록 합니다. 이 옵션에는 기본값이 없습니다.
| Property | Value |
|---|---|
| Command-Line Format | --character-sets-dir=path |
character set이 포함된 디렉터리입니다.
| Property | Value |
|---|---|
| Command-Line Format | --connect-delay=# |
| Deprecated | Yes |
| Type | Numeric |
| Default Value | 5 |
| Minimum Value | 0 |
| Maximum Value | 3600 |
시작 시 management 서버에 접속을 시도하는
각 시도 사이에 대기할 시간을 결정합니다 (시도 횟수는
--connect-retries 옵션으로
제어합니다). 기본값은 5초입니다.
이 옵션은 deprecated 되었으며,
향후 NDB Cluster 릴리스에서 제거될 수 있습니다.
대신 --connect-retry-delay를 사용하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --connect-retries=# |
| Type | Numeric |
| Default Value | 12 |
| Minimum Value | -1 |
| Maximum Value | 65535 |
포기하기 전에 커넥션을 재시도할 횟수를 설정합니다.
0은 1회만 시도(재시도 없음)함을 의미합니다. 기본값은
12회 시도입니다. 각 시도 사이의 대기 시간은
--connect-retry-delay
옵션으로 제어합니다.
이 옵션을 -1로 설정하는 것도 가능한데, 이 경우 데이터 노드 프로세스는 커넥션이 될 때까지 무기한으로 계속해서 커넥션을 시도합니다.
| Property | Value |
|---|---|
| Command-Line Format | --connect-retry-delay=# |
| Type | Numeric |
| Default Value | 5 |
| Minimum Value | 0 |
| Maximum Value | 4294967295 |
시작 시 management 서버에 접속을 시도하는
각 시도 사이에 대기할 시간을 결정합니다 (시도 횟수는
--connect-retries 옵션으로
제어합니다). 기본값은 5초입니다.
이 옵션은 이제 deprecated 상태인
--connect-delay 옵션을
대체하며, 후자는 향후 NDB Cluster 릴리스에서 제거될 수 있습니다.
이 옵션의 short form인 -r 또한
deprecated 상태이며, 따라서 제거 대상입니다.
대신 long form을 사용하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --connect-string=connection_string |
| Type | String |
| Default Value | [none] |
--ndb-connectstring과 동일합니다.
| Property | Value |
|---|---|
| Command-Line Format | --core-file |
에러 발생 시 코어 파일을 기록합니다; 디버깅에 사용됩니다.
--daemon, -d| Property | Value |
|---|---|
| Command-Line Format | --daemon |
ndbd 또는
ndbmtd가 데몬 프로세스로 실행되도록
지시합니다. 이것이 기본 동작입니다.
프로세스가 데몬으로 실행되는 것을 방지하려면
--nodaemon을 사용합니다.
Windows 플랫폼에서 ndbd 또는 ndbmtd를 실행할 때는 이 옵션이 아무 효과도 없습니다.
| Property | Value |
|---|---|
| Command-Line Format | --defaults-extra-file=path |
| Type | String |
| Default Value | [none] |
글로벌 파일들을 읽은 후에 주어진 파일을 읽습니다.
| Property | Value |
|---|---|
| Command-Line Format | --defaults-file=path |
| Type | String |
| Default Value | [none] |
지정된 파일에서만 기본 옵션을 읽습니다.
| Property | Value |
|---|---|
| Command-Line Format | --defaults-group-suffix=string |
| Type | String |
| Default Value | [none] |
concat(group, suffix)에 해당하는 그룹도 읽습니다.
| Property | Value |
|---|---|
| Command-Line Format | --filesystem-password=password |
파일 시스템 암호화 및 복호화 패스워드를 stdin,
tty 또는 my.cnf
파일을 사용하여 데이터 노드 프로세스에 전달합니다.
EncryptedFileSystem = 1이 필요합니다.
자세한 내용은 Section 25.6.19.4, “File System Encryption for NDB Cluster”를 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | `--filesystem-password-from-stdin={TRUE |
파일 시스템 암호화 및 복호화 패스워드를
(오직) stdin으로부터 데이터 노드 프로세스에
전달합니다.
EncryptedFileSystem = 1이 필요합니다.
자세한 내용은 Section 25.6.19.4, “File System Encryption for NDB Cluster”를 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --foreground |
ndbd 또는 ndbmtd가
주로 디버깅 목적을 위해 포그라운드 프로세스로
실행되도록 합니다. 이 옵션은
--nodaemon 옵션을
암시합니다.
Windows 플랫폼에서 ndbd 또는 ndbmtd를 실행할 때는 이 옵션이 아무 효과도 없습니다.
| Property | Value |
|---|---|
| Command-Line Format | --help |
도움말 텍스트를 표시하고 종료합니다.
| Property | Value |
|---|---|
| Command-Line Format | --initial |
ndbd에게 initial start를 수행하도록 지시합니다. initial start는 이전에 실행된 ndbd 인스턴스에 의해 복구 목적으로 생성된 모든 파일을 삭제합니다. 또한 복구 로그 파일을 다시 생성합니다. 일부 운영 체제에서는 이 과정에 상당한 시간이 소요될 수 있습니다.
이 옵션은 또한 Disk Data 테이블스페이스와 이 데이터 노드에 이전에 존재했던 로그 파일 그룹에 연결된 undo 로그 파일과 연관된 모든 데이터 파일을 제거합니다 (자세한 내용은 Section 25.6.11, “NDB Cluster Disk Data Tables”를 참조하십시오).
--initial start는
매우 특별한 상황에서
ndbd 프로세스를 시작할 때에만 사용해야
합니다. 이 옵션은 NDB Cluster 파일 시스템에서 모든 파일을
제거하고 모든 redo 로그 파일을 다시 생성하기 때문입니다.
이러한 상황은 다음과 같습니다:
파일의 내용이 변경되는 소프트웨어 업그레이드를 수행하는 경우.
새로운 버전의 ndbd로 노드를 재시작하는 경우.
어떤 이유로 노드 재시작 또는 시스템 재시작이 반복적으로 실패할 때 최후의 수단으로 사용하는 경우. 이 경우 데이터 파일이 파기되므로 이 노드는 더 이상 데이터 복원에 사용할 수 없다는 점에 유의해야 합니다.
주의
잠재적인 데이터 손실 가능성을 피하기 위해,
--initial 옵션을
StopOnError = 0과 함께 사용하지
않을 것을 권장합니다. 대신, 클러스터가
시작된 후에만 config.ini에서
StopOnError를 0으로 설정한 다음,
--initial 옵션 없이 데이터 노드들을
정상적으로 재시작하십시오. 이 문제에 대한 자세한 설명은
StopOnError
파라미터 설명을 참조하십시오. (Bug
#24945638)
이 옵션을 사용하면
StartPartialTimeout 및
StartPartitionedTimeout
구성 파라미터가 아무런 효과도 갖지 못하게 됩니다.
주의
이 옵션은 영향을 받는 노드가 이미 생성한 백업 파일에는 아무 영향도 미치지 않습니다.
이 옵션은 또한, (initial restart의 일부로
--initial로 시작된 경우를 제외하고)
이미 실행 중인 데이터 노드들로부터 막 시작(또는 재시작)하는
데이터 노드가 데이터를 복구하는 것에는 아무런 영향을 주지 않습니다.
이러한 데이터 복구는 자동으로 수행되며,
정상적으로 동작 중인 NDB Cluster에서는 사용자가 개입할 필요가 없습니다.
클러스터를 처음 시작할 때(즉, 아직 어떤 데이터 노드 파일도 생성되지 않은 상태) 이 옵션을 사용하는 것은 허용되지만, 그럴 필요는 없습니다.
| Property | Value |
|---|---|
| Command-Line Format | --initial-start |
이 옵션은 클러스터의 partial initial start를
수행할 때 사용됩니다. 각 노드는 이 옵션과 함께
--nowait-nodes도
지정하여 시작해야 합니다.
예를 들어, 데이터 노드 ID가 2, 3, 4, 5인 4-node 클러스터가 있고, 노드 3을 제외한 노드 2, 4, 5만을 사용하여 partial initial start를 수행하고자 한다고 가정해 봅시다:
1$> ndbd --ndb-nodeid=2 --nowait-nodes=3 --initial-start 2$> ndbd --ndb-nodeid=4 --nowait-nodes=3 --initial-start 3$> ndbd --ndb-nodeid=5 --nowait-nodes=3 --initial-start
이 옵션을 사용할 때는 시작 중인 데이터 노드에 대해
--ndb-nodeid 옵션으로
노드 ID도 반드시 지정해야 합니다.
주의
이 옵션을
ndb_mgmd에 대한
--nowait-nodes 옵션과
혼동하지 마십시오. 후자는 여러 management 서버로
구성된 클러스터가 모든 management 서버가 온라인 상태가 아니더라도
시작될 수 있도록 할 때 사용할 수 있습니다.
| Property | Value |
|---|---|
| Command-Line Format | --install[=name] |
| Platform Specific | Windows |
| Type | String |
| Default Value | ndbd |
ndbd를 Windows
서비스로 설치하도록 합니다. 선택적으로 서비스 이름을 지정할 수 있습니다;
지정하지 않으면 서비스 이름은 기본적으로
ndbd가 됩니다. 다른 ndbd 프로그램 옵션들을
my.ini 또는 my.cnf
구성 파일에 지정하는 것이 바람직하지만,
이 옵션은 --install과 함께 사용할 수도 있습니다.
그러나 이 경우 Windows 서비스 설치가 성공하려면
--install 옵션을 반드시 다른 옵션보다 먼저,
즉, 가장 먼저 지정해야 합니다.
이 옵션을 --initial 옵션과
함께 사용하는 것은 일반적으로 바람직하지 않습니다.
서비스가 중지 및 시작될 때마다 데이터 노드 파일 시스템이
삭제되었다가 다시 구축되기 때문입니다.
또한 데이터 노드의 시작에 영향을 미치는 다른
ndbd 옵션—예를 들어
--initial-start,
--nostart,
--nowait-nodes—을
--install과 함께 사용하려는 경우에는
극도의 주의를 기울여야 하며,
이로 인해 발생할 수 있는 모든 결과를 충분히 이해하고
감안했는지 반드시 확인해야 합니다.
--install 옵션은
Windows 이외의 플랫폼에서는 아무런 효과도 없습니다.
| Property | Value |
|---|---|
| Command-Line Format | --logbuffer-size=# |
| Type | Integer |
| Default Value | 32768 |
| Minimum Value | 2048 |
| Maximum Value | 4294967295 |
데이터 노드 로그 버퍼의 크기를 설정합니다. 많은 양의 추가 로깅을 수반하는 디버깅 시에는 로그 버퍼가 공간을 소진하여 로그 메시지가 너무 많을 경우 일부 로그 메시지가 손실될 수 있습니다. 정상적인 운영 중에는 이런 일이 발생하지 않아야 합니다.
| Property | Value |
|---|---|
| Command-Line Format | --login-path=path |
| Type | String |
| Default Value | [none] |
로그인 파일에서 주어진 경로를 읽습니다.
| Property | Value |
|---|---|
| Command-Line Format | --no-login-paths |
로그인 경로 파일에서 옵션을 읽는 과정을 건너뜁니다.
| Property | Value |
|---|---|
| Command-Line Format | --ndb-connectstring=connection_string |
| Type | String |
| Default Value | [none] |
ndb_mgmd에 연결하기 위한
커넥션 문자열을 설정합니다. 구문:
[nodeid=id;][host=]hostname[:port].
NDB_CONNECTSTRING과
my.cnf의 항목을 오버라이드합니다.
| Property | Value |
|---|---|
| Command-Line Format | --ndb-log-timestamps |
| Type | Enumeration |
| Default Value | UTC |
| Valid Values | LEGACY<br>UTC<br>SYSTEM |
노드 로그에서 사용되는 타임스탬프 포맷을 설정합니다. 다음 값 중 하나입니다:
LEGACY: 시스템 타임존,
초 단위 해상도.
UTC:
RFC 3339 포맷, 마이크로초 단위 해상도.
SYSTEM: RFC 3339 포맷.
MySQL 9.5에서 기본값은 UTC입니다.
| Property | Value |
|---|---|
| Command-Line Format | --ndb-mgmd-host=connection_string |
| Type | String |
| Default Value | [none] |
--ndb-connectstring과 동일합니다.
| Property | Value |
|---|---|
| Command-Line Format | --ndb-mgm-tls=level |
| Type | Enumeration |
| Default Value | relaxed |
| Valid Values | relaxed<br>strict |
management 서버에 연결할 때 요구되는 TLS 지원 수준을 설정합니다;
relaxed 또는 strict 중 하나입니다.
기본값인 relaxed는 TLS 커넥션을 시도하지만
성공이 필수는 아님을 의미합니다;
strict는 연결을 위해 TLS가 필수임을 의미합니다.
| Property | Value |
|---|---|
| Command-Line Format | --ndb-nodeid=# |
| Type | Integer |
| Default Value | [none] |
이 노드에 대한 노드 ID를 설정하며, --ndb-connectstring에 의해 설정된 ID를 오버라이드합니다.
| Property | Value |
|---|---|
| Command-Line Format | --ndb-optimized-node-selection |
트랜잭션을 위한 노드 선택에 대한 최적화를 활성화합니다.
기본적으로 활성화되어 있으며,
비활성화하려면 --skip-ndb-optimized-node-selection을
사용합니다.
| Property | Value |
|---|---|
| Command-Line Format | --ndb-tls-search-path=list |
| Type | Path name |
| Default Value (Unix) | $HOME/ndb-tls |
| Default Value (Windows) | $HOMEDIR/ndb-tls |
CA 파일을 검색할 디렉터리 목록을 지정합니다.
Unix 플랫폼에서는 디렉터리 이름이 콜론(:)으로
구분되고, Windows 시스템에서는 세미콜론(;)이
구분자로 사용됩니다. 디렉터리 참조는
상대 또는 절대일 수 있습니다; 또한 하나 이상의
환경 변수를 포함할 수 있으며, 각각은
앞에 달러 기호($)가 붙고 사용 전에 확장됩니다.
검색은 가장 왼쪽에 있는 디렉터리부터 시작하여
파일이 발견될 때까지 왼쪽에서 오른쪽으로 진행됩니다.
빈 문자열은 빈 검색 경로를 나타내며,
이 경우 모든 검색이 실패합니다.
마침표(.) 하나만으로 구성된 문자열은
검색 경로가 현재 작업 디렉터리로 제한됨을 나타냅니다.
검색 경로를 제공하지 않으면 컴파일된 기본값이
사용됩니다. 이 값은 사용하는 플랫폼에 따라 달라집니다:
Windows에서는 \ndb-tls, 그 외 플랫폼
(Linux 포함)에서는 $HOME/ndb-tls입니다.
이는 NDB Cluster를 컴파일할 때
-DWITH_NDB_TLS_SEARCH_PATH를
사용하여 오버라이드할 수 있습니다.
| Property | Value |
|---|---|
| Command-Line Format | --nodaemon |
ndbd 또는
ndbmtd가 데몬
프로세스로 실행되지 않도록 합니다. 이 옵션은
--daemon 옵션을 오버라이드합니다.
binary를 디버깅할 때 출력을 화면으로
리다이렉트하는 데 유용합니다.
Windows에서 ndbd 및 ndbmtd의 기본 동작은 포그라운드에서 실행되는 것이므로, Windows 플랫폼에서는 이 옵션이 필요 없으며 아무런 효과도 없습니다.
| Property | Value |
|---|---|
| Command-Line Format | --no-defaults |
로그인 파일 이외의 어떤 옵션 파일에서도 기본 옵션을 읽지 않습니다.
--nostart, -n| Property | Value |
|---|---|
| Command-Line Format | --nostart |
ndbd가 자동으로
시작되지 않도록 지시합니다. 이 옵션이 사용되면
ndbd는 management 서버에 연결하고,
거기서 구성 데이터를 가져오며,
통신 오브젝트를 초기화합니다. 그러나
management 서버가 명시적으로 요청할 때까지
실행 엔진을 실제로 시작하지는 않습니다.
이는 management 클라이언트에서 적절한
START
커맨드를 실행함으로써 수행할 수 있습니다 (자세한 내용은
Section 25.6.1, “Commands in the NDB Cluster Management Client”를
참조하십시오).
| Property | Value |
|---|---|
| Command-Line Format | --nowait-nodes=list |
| Type | String |
| Default Value | `` |
이 옵션은 클러스터가 시작되기 전에 기다리지 않을 데이터 노드 목록을 받습니다.
이를 사용하여 클러스터를 partitioned 상태로
시작할 수 있습니다. 예를 들어, 4-node 클러스터에서
데이터 노드가 2, 3, 4, 5이고,
오직 절반의 데이터 노드만 (노드 2, 3, 4, 5 중 2와 4) 실행되도록
클러스터를 시작하려면, 각 ndbd 프로세스를
--nowait-nodes=3,5와 함께 시작할 수 있습니다.
이 경우, 노드 2와 4가 연결되는 즉시 클러스터가 시작되며,
StartPartitionedTimeout
밀리초 동안 노드 3과 5가 연결되기를
wait하지 않습니다.
만약 앞선 예에서와 같은 클러스터를, 하나의
ndbd 없이 시작하고자 한다면 (예를 들어
노드 3의 호스트 머신에 하드웨어 장애가 발생한 경우),
노드 2, 4, 5를 --nowait-nodes=3과 함께 시작합니다.
그러면 노드 2, 4, 5가 연결되는 즉시 클러스터가 시작되고,
노드 3이 시작되기를 기다리지 않습니다.
| Property | Value |
|---|---|
| Command-Line Format | --print-defaults |
프로그램 인자 목록을 출력하고 종료합니다.
| Property | Value |
|---|---|
| Command-Line Format | --remove[=name] |
| Platform Specific | Windows |
| Type | String |
| Default Value | ndbd |
이전에 Windows 서비스로 설치된
ndbd 프로세스를 제거합니다.
선택적으로 제거할 서비스의 이름을 지정할 수 있습니다;
지정하지 않으면 서비스 이름은 기본적으로
ndbd입니다.
--remove 옵션은
Windows 이외의 플랫폼에서는 아무런 효과도 없습니다.
| Property | Value |
|---|---|
| Command-Line Format | --usage |
도움말 텍스트를 표시하고 종료합니다; --help와 동일합니다.
--verbose, -v추가 디버그 출력이 노드 로그에 기록되도록 합니다.
또한 데이터 노드가 실행 중일 때
추가 로깅을 활성화 및 비활성화하기 위해
NODELOG DEBUG ON 및 NODELOG DEBUG OFF을 사용할 수도 있습니다.
| Property | Value |
|---|---|
| Command-Line Format | --version |
버전 정보를 표시하고 종료합니다.
ndbd는
config.ini 구성 파일의
DataDir에 지정된
디렉터리에 일련의 로그 파일을 생성합니다.
이러한 로그 파일들은 아래에 나열되어 있습니다.
_node_id_는 노드의 고유 식별자를 나타냅니다.
예를 들어,
ndb_2_error.log는 노드 ID가 2인
데이터 노드가 생성한 에러 로그입니다.
ndb_node_id_error.log
는 해당 ndbd 프로세스가 겪은 모든 크래시의
레코드를 담고 있는 파일입니다.
이 파일의 각 레코드에는 간단한 에러 문자열과
이 크래시에 대한 트레이스 파일 참조가 포함됩니다.
이 파일의 typical entry는 다음과 비슷합니다:1Date/Time: Saturday 30 July 2004 - 00:20:01 2Type of error: error 3Message: Internal program error (failed ndbrequire) 4Fault ID: 2341 5Problem data: DbtupFixAlloc.cpp 6Object of reference: DBTUP (Line: 173) 7ProgramName: NDB Kernel 8ProcessID: 14909 9TraceFile: ndb_2_trace.log.2 10***EOM***
데이터 노드 프로세스가 조기 종료될 때 생성되는 ndbd exit 코드 및 메시지 목록은 Data Node Error Messages에서 찾을 수 있습니다.
주의
error 로그 파일의 마지막 entry가
반드시 가장 최신 entry는 아닙니다
(그럴 가능성도 낮습니다).
에러 로그의 entry는 시간 순서대로
나열되지 않습니다; 대신
ndb_node_id_trace.log.next
파일(아래 참조)에 의해 결정되는 트레이스 파일 순서에
해당합니다. 따라서 에러 로그 entry는
순차적으로가 아니라 순환 방식으로 overwrite됩니다.
ndb_node_id_trace.log.trace_id
는 에러가 발생하기 직전에 어떤 일이 있었는지를
정확히 설명하는 트레이스 파일입니다.
이 정보는 NDB Cluster 개발 팀의 분석에 유용합니다.이러한 트레이스 파일들이 오래된 파일이 overwrite되기 전에
얼마나 많이 생성되는지는 구성 가능하며,
_trace_id_는 각각의 연속된 트레이스 파일에 대해
증가하는 숫자입니다.
ndb_node_id_trace.log.next
는 다음에 할당될 트레이스 파일 번호를
기록해 두는 파일입니다.
ndb_node_id_out.log
는 ndbd 프로세스가 출력한
모든 데이터를 담고 있는 파일입니다.
이 파일은 ndbd가 데몬으로 (기본 동작)
시작된 경우에만 생성됩니다.
ndb_node_id.pid
는 데몬으로 시작된
ndbd 프로세스의 프로세스 ID를 담고 있는
파일입니다. 또한 동일한 식별자를 가진 노드가
여러 개 시작되는 것을 방지하기 위한 lock 파일 역할도 합니다.
ndb_node_id_signal.log
는 디버그 버전의
ndbd에서만 사용되는 파일로,
ndbd 프로세스 내의 모든
incoming, outgoing, internal 메시지 및 그 데이터를
트레이스할 수 있습니다.
일부 환경에서는 프로세스가 종료된 후에도
.pid 파일에 대한 lock이 유지되어
문제가 발생할 수 있으므로,
NFS를 통해 마운트된 디렉터리를 사용하는 것은
권장되지 않습니다.
ndbd를 시작하려면, management 서버의 호스트 이름과, 해당 서버가 리스닝 중인 포트를 지정해야 할 수도 있습니다. 선택적으로, 프로세스가 사용할 노드 ID를 지정할 수도 있습니다.
1$> ndbd --connect-string="nodeid=2;host=ndb_mgmd.mysql.com:1186"
이 문제에 대한 추가 정보는 Section 25.4.3.3, “NDB Cluster Connection Strings”를 참조하십시오. 데이터 노드 구성 파라미터에 관한 더 많은 정보는 Section 25.4.3.6, “Defining NDB Cluster Data Nodes”를 참조하십시오.
ndbd가 시작되면 실제로 두 개의 프로세스를 기동합니다. 첫 번째는 “angel process”라고 불리며, 이 프로세스의 유일한 역할은 execution 프로세스가 종료되었는지를 감지한 뒤, 구성이 그렇게 되어 있다면 ndbd 프로세스를 다시 시작하는 것입니다. 따라서 Unix의 kill 커맨드를 사용하여 ndbd를 종료하려는 경우, angel 프로세스부터 시작하여 두 프로세스 모두를 kill해야 합니다. ndbd 프로세스를 종료하는 권장 방법은 management 클라이언트를 사용하여 그곳에서 프로세스를 stop하는 것입니다.
execution 프로세스는 데이터를 읽고 쓰고 스캔하는 작업뿐만 아니라 다른 모든 활동을 위해 단일 스레드를 사용합니다. 이 스레드는 수천 개의 동시 작업을 쉽게 처리할 수 있도록 비동기적으로 구현되어 있습니다. 또한 watch-dog 스레드가 execution 스레드를 감시하여 endless loop에 걸리지 않도록 합니다. 파일 I/O는 스레드 풀(thread pool)이 처리하며, 각 스레드는 하나의 open 파일을 처리할 수 있습니다. 또한 스레드는 ndbd 프로세스의 transporter에서 transporter 커넥션을 처리하는 데에도 사용될 수 있습니다. 다중 프로세서 시스템에서 많은 수의 작업(업데이트 포함)을 수행하는 경우, 허용된다면 ndbd 프로세스는 최대 2개의 CPU를 사용할 수 있습니다.
CPU가 많은 머신에서는 서로 다른 노드 그룹에 속하는 여러 개의 ndbd 프로세스를 사용하는 것이 가능하지만, 이러한 구성은 여전히 experimental로 간주되며 MySQL 9.5의 프로덕션 환경에서는 지원되지 않습니다. 자세한 내용은 Section 25.2.7, “Known Limitations of NDB Cluster”를 참조하십시오.
25.5 NDB Cluster Programs
25.5.2 ndbinfo_select_all — Select From ndbinfo Tables