Loading...
MySQL 9.5 Reference Manual 9.5의 25.6.1 Commands in the NDB Cluster Management Client의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
중앙 구성 파일(configuration file) 외에도, 클러스터는 관리 클라이언트 ndb_mgm을 통해 제공되는 명령줄 인터페이스(command-line interface)를 사용하여 제어할 수 있습니다. 이것이 실행 중인 클러스터의 기본 관리 인터페이스입니다.
이벤트 로그(event log)에 대한 명령은 Section 25.6.3, “Event Reports Generated in NDB Cluster”에 나와 있으며, 백업을 생성하고 그로부터 복구하는 명령은 Section 25.6.8, “Online Backup of NDB Cluster”에 제공됩니다.
Using ndb_mgm with MySQL Cluster Manager.
MySQL Cluster Manager는 프로세스의 시작과 중지를 처리하고 그 상태를 내부적으로 추적하므로, MySQL Cluster Manager의 제어(control) 아래에 있는 NDB Cluster에 대해서는 이러한 작업에 ndb_mgm을 사용할 필요가 없습니다.
또한 NDB Cluster 배포판(distribution)에 포함된
ndb_mgm 명령줄 클라이언트(command-line client)를 사용하여 노드의 시작 또는 중지를 포함하는 작업(operation)을 수행하지 않을 것을 권장합니다. 여기에는 다음 명령이 포함되지만 이에 한정되지는 않습니다:
START,
STOP,
RESTART,
SHUTDOWN 명령. 더 자세한 내용은 MySQL Cluster Manager Process Commands를 참조하십시오.
관리 클라이언트에는 다음과 같은 기본 명령이 있습니다. 다음에 나오는 목록에서 node_id 는 데이터 노드 ID 또는 키워드 ALL을 나타내며, 이는 해당 명령이 클러스터의 모든 데이터 노드에 적용되어야 함을 의미합니다.
연결 문자열(connection string)로 지정된 관리 서버(management server)에 연결합니다. 클라이언트가 이미 이 서버에 연결되어 있는 경우, 클라이언트는 재연결합니다.
새로운 NDB Cluster 노드 그룹(node group)을 생성하고 데이터 노드가 여기에 조인(join)하도록 합니다.
이 명령은 새로운 데이터 노드를 NDB Cluster에 온라인으로 추가한 후에 사용되며, 이들이 새로운 노드 그룹에 조인하여 클러스터에 완전히 참여하기 시작하게 합니다. 이 명령은 하나의 매개변수(parameter)만을 받는데, 이는 콤마(comma)로 구분된 노드 ID의 목록입니다. 여기에는 방금 추가되고 시작된 노드, 그리고 새로운 노드 그룹에 조인할 노드의 ID가 포함됩니다.
목록에는 중복된 ID가 포함되어서는 안 되며, 중복이 있으면 명령은 에러(error)를 반환합니다. 목록에 있는 노드 수는 이미 클러스터의 일부인 각 노드 그룹에 있는 노드 수와 동일해야 합니다(각 NDB Cluster 노드 그룹은 동일한 수의 노드를 가져야 합니다). 다시 말해, NDB Cluster가 각각 2개의 데이터 노드를 가진 2개의 노드 그룹으로 구성된 경우, 새로운 노드 그룹도 2개의 데이터 노드를 가져야 합니다.
이 명령으로 생성된 새로운 노드 그룹의 노드 그룹 ID는 자동으로 결정되며, 항상 클러스터에서 아직 사용되지 않은 가장 높은 노드 그룹 ID 다음 값이 됩니다. 이를 수동으로 설정하는 것은 불가능합니다.
자세한 내용은 Section 25.6.7, “Adding NDB Cluster Data Nodes Online”을 참조하십시오.
지정된 nodegroup_id 를 가진 NDB Cluster 노드 그룹을 드롭(drop)합니다.
이 명령은 NDB Cluster에서 노드 그룹을 드롭하는 데 사용할 수 있습니다. DROP NODEGROUP은 드롭할 노드 그룹의 노드 그룹 ID를 유일한 인자(argument)로 사용합니다.
DROP NODEGROUP은 해당 노드 그룹의 데이터 노드를 그 노드 그룹에서 제거하는 역할만 합니다. 데이터 노드를 중지하거나, 다른 노드 그룹에 할당하거나, 클러스터의 구성(configuration)에서 제거하지는 않습니다. 노드 그룹에 속하지 않는 데이터 노드는 관리 클라이언트의
SHOW 명령 출력에서 노드 그룹 ID 대신
no nodegroup으로 표시되며, 다음과 같습니다(굵게 표시된 부분 참조):
1id=3 @10.100.2.67 (9.5.0-ndb-9.5.0, no nodegroup)
DROP NODEGROUP은 드롭하려는 노드 그룹의 모든 데이터 노드가 테이블 데이터와 테이블 정의가 완전히 비어 있는 경우에만 동작합니다. 현재 특정 데이터 노드 또는 노드 그룹에서 모든 데이터를 제거할 수 있는 방법이
ndb_mgm이나
mysql 클라이언트에는 없기 때문에, 이 명령은 다음 두 가지 경우에만 성공합니다:
ndb_mgm
클라이언트에서 CREATE NODEGROUP을 실행한 이후,
mysql 클라이언트에서
ALTER TABLE ... REORGANIZE PARTITION 문(statement)을 실행하기 전까지.
DROP TABLE을 사용하여 모든 NDBCLUSTER
테이블을 드롭한 이후.
TRUNCATE TABLE은 이 목적에는 동작하지 않습니다. 이는 테이블 데이터만 제거할 뿐이며, 데이터 노드는
DROP TABLE 문이 실행되어 테이블 메타데이터가 드롭될 때까지 여전히
NDBCLUSTER 테이블의 정의를 저장하기 때문입니다.
DROP NODEGROUP에 대한 자세한 내용은
Section 25.6.7, “Adding NDB Cluster Data Nodes Online”을 참조하십시오.
싱글 유저 모드(single user mode)로 진입하며, 이 모드에서는 노드 ID가 node_id 인 MySQL 서버만 데이터베이스에 접근할 수 있습니다.
ndb_mgm 클라이언트는 이 명령이 실행되어 적용되었음을 다음과 같이 명확하게 알려 줍니다:
1ndb_mgm> ENTER SINGLE USER MODE 100 2Single user mode entered 3Access is granted for API node 100 only.
또한, 싱글 유저 모드에서 배타적(exclusive) 접근 권한을 가진 API 또는 SQL 노드는
SHOW 명령 출력에 다음과 같이 표시됩니다:
1ndb_mgm> SHOW 2Cluster Configuration 3 --------------------- 4[ndbd(NDB)] 2 node(s) 5id=5 @127.0.0.1 (mysql-9.5.0 ndb-9.5.0, single user mode, Nodegroup: 0, *) 6id=6 @127.0.0.1 (mysql-9.5.0 ndb-9.5.0, single user mode, Nodegroup: 0) 7 8[ndb_mgmd(MGM)] 1 node(s) 9id=50 @127.0.0.1 (mysql-9.5.0 ndb-9.5.0) 10 11[mysqld(API)] 2 node(s) 12id=100 @127.0.0.1 (mysql-9.5.0 ndb-9.5.0, allowed single user) 13id=101 (not connected, accepting connect from any host)
싱글 유저 모드를 종료하여 모든 SQL 노드(즉, 실행 중인 모든 mysqld 프로세스)가 데이터베이스에 접근할 수 있게 합니다.
참고
싱글 유저 모드가 아닐 때도 EXIT SINGLE USER MODE를 사용할 수 있지만, 이 경우 명령은 아무런 효과가 없습니다.
사용 가능한 모든 명령에 대한 정보를 표시합니다.
해당 데이터 노드 또는 노드들이
--verbose 옵션으로 시작된 것처럼 노드 로그(node log)에서 디버그 로깅(debug logging)을 토글합니다.
NODELOG DEBUG ON은 디버그 로깅을 시작하고,
NODELOG DEBUG OFF는 디버그 로깅을 중지합니다.
ndb_mgm에 표시되는 프롬프트(prompt)를 문자열 리터럴(literal) prompt 로 변경합니다.
prompt 는 따옴표로 묶지 않아야 합니다(따옴표를 프롬프트에 포함시키고 싶다면 예외입니다). mysql 클라이언트와는 달리, 특수 문자 시퀀스와 이스케이프(escape)는 인식되지 않습니다. 인자 없이 호출하면 프롬프트를 기본값(ndb_mgm>)으로 재설정합니다.
다음은 몇 가지 예시입니다:
1ndb_mgm> PROMPT mgm#1: 2mgm#1: SHOW 3Cluster Configuration 4... 5mgm#1: PROMPT mymgm > 6mymgm > PROMPT 'mymgm:' 7'mymgm:' PROMPT mymgm: 8mymgm: PROMPT 9ndb_mgm> EXIT 10$>
선행 공백 및 prompt 문자열 내의 공백은 제거되지 않습니다.
후행 공백은 제거됩니다.
관리 클라이언트를 종료합니다.
이 명령은 클러스터에 연결된 어떤 노드에도 영향을 미치지 않습니다.
node_id 로 지정된 데이터 노드(또는 ALL을 사용하는 경우 모든 데이터 노드)에 대해, 타입이
report-type 인 리포트(report)를 표시합니다.
현재, report-type 에 사용할 수 있는 값은 세 가지입니다:
BackupStatus: 진행 중인 클러스터 백업에 대한 상태 보고를 제공합니다.
MemoryUsage: 각 데이터 노드가 사용 중인 데이터 메모리(data memory)와 인덱스 메모리(index memory)를 표시합니다. 예시는 다음과 같습니다:
1ndb_mgm> ALL REPORT MEMORY 2 3Node 1: Data usage is 5%(177 32K pages of total 3200) 4Node 1: Index usage is 0%(108 8K pages of total 12832) 5Node 2: Data usage is 5%(177 32K pages of total 3200) 6Node 2: Index usage is 0%(108 8K pages of total 12832)
이 정보는 ndbinfo.memoryusage
테이블에서도 얻을 수 있습니다.
EventLog: 하나 이상의 데이터 노드의 이벤트 로그 버퍼(event log buffer)로부터 이벤트를 보고합니다.
report-type 은 대소문자를 구분하지 않으며 “fuzzy”합니다. 예를 들어 MemoryUsage의 경우, MEMORY(앞의 예시와 같이), memory, 또는 MEM(또는 mem)만 사용해도 됩니다.
BackupStatus 역시 비슷한 방식으로 줄여 쓸 수 있습니다.
node_id 로 지정된 데이터 노드(또는 모든 데이터 노드)를 리스타트(restart)합니다.
RESTART에 -i 옵션을 사용하면 데이터 노드가 이니셜 리스타트(initial restart)를 수행합니다. 즉, 노드의 파일 시스템(file system)이 삭제되고 다시 생성됩니다. 이는 데이터 노드 프로세스를 중지한 후 시스템 셸(system shell)에서
ndbd --initial로 다시 시작하는 것과 동일한 효과를 가집니다.
참고
이 옵션을 사용할 때 백업 파일 및 디스크 데이터 파일(Disk Data file)은 삭제되지 않습니다.
-n 옵션을 사용하면 데이터 노드 프로세스를 리스타트하지만, 적절한
START 명령이 실행될 때까지 데이터 노드는 실제로 온라인 상태가 되지 않습니다. 이 옵션의 효과는 데이터 노드를 중지한 후 시스템 셸에서
ndbd --nostart
또는 ndbd -n으로 다시 시작하는 것과 동일합니다.
-a 옵션을 사용하면 이 노드에 의존하는 현재의 모든 트랜잭션(transaction)이 어보트(abort)됩니다. 노드가 클러스터에 다시 합류할 때 GCP 체크는 수행되지 않습니다.
일반적으로, 노드를 오프라인으로 만드는 것이 불완전한 클러스터를 초래하는 경우 RESTART는 실패합니다. -f 옵션은 이러한 체크 없이 노드를 리스타트하도록 강제합니다. 이 옵션을 사용한 결과 불완전한 클러스터가 되면, 전체 클러스터가 리스타트됩니다.
클러스터와 클러스터 노드에 대한 기본 정보를 표시합니다. 모든 노드에 대해 출력에는 노드의 ID, 유형(type), 그리고 NDB 소프트웨어 버전이 포함됩니다. 노드가 연결되어 있으면 IP 주소도 표시되며, 연결되어 있지 않으면
not connected, accepting connect from ip_address가 표시됩니다.
any host는 어떤 주소에서든 접속이 허용되는 노드에 사용됩니다.
또한, 데이터 노드의 경우, 노드가 아직 시작되지 않은 경우 starting이 포함되며, 노드가 속한 노드 그룹을 표시합니다. 데이터 노드가 마스터 노드(master node) 역할을 하는 경우, 이는 애스터리스크(asterisk, *)로 표시됩니다.
다음과 같은 정보가 포함된 구성 파일(configuration file)을 가진 클러스터(추가 설정은 이해를 돕기 위해 생략)를 고려해 보겠습니다:
1[ndbd default] 2DataMemory= 128G 3NoOfReplicas= 2 4 5[ndb_mgmd] 6NodeId=50 7HostName=198.51.100.150 8 9[ndbd] 10NodeId=5 11HostName=198.51.100.10 12DataDir=/var/lib/mysql-cluster 13 14[ndbd] 15NodeId=6 16HostName=198.51.100.20 17DataDir=/var/lib/mysql-cluster 18 19[ndbd] 20NodeId=7 21HostName=198.51.100.30 22DataDir=/var/lib/mysql-cluster 23 24[ndbd] 25NodeId=8 26HostName=198.51.100.40 27DataDir=/var/lib/mysql-cluster 28 29[mysqld] 30NodeId=100 31HostName=198.51.100.100 32 33[api] 34NodeId=101
이 클러스터(하나의 SQL 노드 포함)를 시작한 후, SHOW는 다음과 같은 출력을 표시합니다:
1ndb_mgm> SHOW 2Connected to Management Server at: localhost:1186 (using cleartext) 3Cluster Configuration 4 --------------------- 5[ndbd(NDB)] 4 node(s) 6id=5 @198.51.100.10 (mysql-9.5.0 ndb-9.5.0, Nodegroup: 0, *) 7id=6 @198.51.100.20 (mysql-9.5.0 ndb-9.5.0, Nodegroup: 0) 8id=7 @198.51.100.30 (mysql-9.5.0 ndb-9.5.0, Nodegroup: 1) 9id=8 @198.51.100.40 (mysql-9.5.0 ndb-9.5.0, Nodegroup: 1) 10 11[ndb_mgmd(MGM)] 1 node(s) 12id=50 @198.51.100.150 (mysql-9.5.0 ndb-9.5.0) 13 14[mysqld(API)] 2 node(s) 15id=100 @198.51.100.100 (mysql-9.5.0 ndb-9.5.0) 16id=101 (not connected, accepting connect from any host)
이 명령의 출력은 클러스터가 싱글 유저 모드에 있는지도 나타냅니다(ENTER SINGLE USER MODE
명령 설명과
Section 25.6.6, “NDB Cluster Single User Mode”를 참조하십시오). 또한 이 모드가 적용될 때 어떤 API 또는 SQL 노드가 배타적 접근 권한을 가지는지도 표시합니다.
모든 클러스터 데이터 노드와 관리 노드(management node)를 셧다운(shutdown)합니다. 그 후 관리 클라이언트를 종료하려면
EXIT 또는
QUIT을 사용하십시오.
이 명령은 클러스터에 연결된 SQL 노드나 API 노드는 셧다운하지 않습니다.
node_id 로 지정된 데이터 노드(또는 모든 데이터 노드)를 온라인 상태로 전환합니다.
ALL START는 모든 데이터 노드에만 동작하며, 관리 노드에는 영향을 미치지 않습니다.
주의
이 명령을 사용해 데이터 노드를 온라인 상태로 전환하려면, 해당 데이터 노드가
--nostart 또는
-n으로 시작되어 있어야 합니다.
node_id 로 지정된 데이터 노드(또는 모든 데이터 노드)에 대한 상태(status) 정보를 표시합니다.
가능한 노드 상태 값에는
UNKNOWN, NO_CONTACT,
NOT_STARTED, STARTING,
STARTED, SHUTTING_DOWN,
RESTARTING이 포함됩니다.
이 명령의 출력은 또한 클러스터가 싱글 유저 모드에 있는지도 나타냅니다.
node_id 로 지정된 데이터 또는 관리 노드를 스톱(stop)합니다.
참고
ALL STOP은 모든 데이터 노드를 스톱하는 데만 동작하며, 관리 노드에는 영향을 미치지 않습니다.
이 명령의 영향을 받는 노드는 클러스터에서 디스커넥트(disconnect)되며, 연관된 ndbd 또는 ndb_mgmd 프로세스는 종료됩니다.
-a 옵션은 미결 트랜잭션의 완료를 기다리지 않고 노드를 즉시 스톱합니다.
일반적으로, 결과적으로 불완전한 클러스터가 되는 경우 STOP은 실패합니다.
-f 옵션은 이러한 체크 없이 노드를 셧다운하도록 강제합니다. 이 옵션을 사용한 결과가 불완전한 클러스터라면, 클러스터는 즉시 셧다운됩니다.
주의
-a 옵션을 사용하면, 노드를 스톱할 때 불완전한 클러스터를 초래하지 않는지 확인하기 위해 STOP이 수행하는 세이프티 체크(safety check) 또한 비활성화됩니다. 다시 말해, STOP 명령에서 -a 옵션을 사용할 경우, 이 옵션이
NDB에 저장된 모든 데이터의 완전한 사본을 더 이상 클러스터가 보유하지 않게 되어 강제 셧다운이 발생할 가능성을 만든다는 점에서 극도로 주의해야 합니다.
현재 연결이 TLS를 사용하는지 여부, 관리 노드에 현재 알려진 TLS 인증서(certificate), 그리고 리스타트 이후 관리 노드의 총 연결 수, TLS로 업그레이드된 연결 수, 인증 실패(authorization failure) 수와 같은 클러스터 TLS 정보를 표시합니다. 예시는 다음과 같습니다:
1ndb_mgm> TLS INFO 2 3Session ID: 1 4Peer address: 127.0.0.1 5Certificate name: NDB Management Node Jun 2023 6Certificate serial: B5:23:8F:D1:11:85:E5:93:ED 7Certificate expires: 23-Nov-2023 8 9Server statistics since restart 10Total accepted connections: 6 11Total connections upgraded to TLS: 2 12Current connections: 3 13Current connections using TLS: 2 14Authorization failures: 0 15 16ndb_mgm>
더 자세한 내용은 Section 25.6.19.5, “TLS Link Encryption for NDB Cluster”를 참조하십시오.
Additional commands.
ndb_mgm 클라이언트에서 사용 가능한 일부 다른 명령은 다음 목록과 같이 다른 위치에서 설명합니다:
START BACKUP은
ndb_mgm
클라이언트에서 온라인 백업을 수행하는 데 사용되며,
ABORT BACKUP
명령은 이미 진행 중인 백업을 취소하는 데 사용됩니다. 자세한 내용은
Section 25.6.8, “Online Backup of NDB Cluster”를 참조하십시오.
CLUSTERLOG 명령은 다양한 로깅(logging) 기능을 수행하는 데 사용됩니다. 자세한 정보와 예시는
Section 25.6.3, “Event Reports Generated in NDB Cluster”를 참조하십시오.
NODELOG DEBUG는 이 절에서 앞서 설명한 대로 노드 로그에서 디버그 출력(debug printout)을 활성화하거나 비활성화합니다.
테스트(testing) 및 진단(diagnostics) 작업을 위해, 클라이언트는 클러스터에서 내부 명령(internal command)을 실행하는 데 사용할 수 있는
DUMP 명령을 지원합니다. 이는 MySQL Support의 지시가 없는 한 프로덕션(production) 환경에서는 절대 사용해서는 안 됩니다. 자세한 내용은
NDB Cluster Management Client DUMP Commands를 참조하십시오.
25.6 Management of NDB Cluster
25.6.2 NDB Cluster Log Messages