18.5.1 MySQL Cluster의 시작 단계 요약
이 섹션에서는 MySQL Cluster 데이터 노드가 시작될 때 수행하는 단계에 대한 간략한 개요를 보여줍니다. " NDB
Internals Guide」의 MySQL Cluster Start Phases 는 또한 완전한 정보를 찾을 수 있습니다.
이러한 단계는 관리 클라이언트에서
명령의 출력에보고 된 것과 동일합니다 ( 섹션 18.5.2 "MySQL Cluster 관리 클라이언트 명령" 을 참조하십시오). 이러한 시작 단계는 node_id
STATUSndbinfo.nodes
테이블 start_phase
컬럼에보고됩니다.
시작 유형 다음 목록과 같이 다양한 시작 유형 및 모드가 있습니다.
초기 시작 모든 데이터 노드의 깨끗한 파일 시스템에서 클러스터를 시작합니다. 이것은 완전히 처음 클러스터가 시작될 때 또는
--initial
옵션을 사용하여 모든 데이터 노드가 재시작 될 때 발생합니다.참고--initial
을 사용하여 노드를 다시 시작하면 디스크 데이터 파일이 삭제되지 않습니다.시스템 재시작 클러스터가 시작되고 데이터 노드에 저장된 데이터를 읽습니다. 이것은 클러스터가 사용 된 후 종료 된 경우, 클러스터가 가동을 중단 한 시점부터 다시 시작하는 것이 바람직 때 발생합니다.
노드 재부팅 이것은 클러스터 자체가 실행중인 경우 클러스터 노드의 온라인 다시 시작합니다.
노드의 초기 재부팅이 깨끗한 파일 시스템에서 노드가 다시 초기화 및 시작되는 점을 제외하고 노드의 재부팅과 동일합니다.
설정 및 초기화 (단계 -1) 시작하기 전에 각 데이터 노드 (ndbd 프로세스)가 초기화되어 있어야합니다. 초기화는 다음 단계로 구성됩니다.
노드 ID를 가져옵니다
구성 데이터를 가져옵니다
노드 간 통신에 사용되는 포트를 지정합니다
구성 파일에서 가져온 설정에 따라 메모리를 할당합니다
데이터 노드 또는 SQL 노드가 처음으로 관리 노드에 연결하면 클러스터 노드 ID를 예약합니다. 다른 노드에 의해 동일한 노드 ID가 할당되지 않도록 ID는 노드에서 클러스터에 연결이 완료되면이 노드가 연결된 것이 하나의 ndbd에서보고 될 때까지 유지됩니다. 이러한 노드 ID의 유지는 해당 노드와 ndb_mgmd 간의 연결 보호됩니다.
각 데이터 노드가 초기화되면 클러스터의 부팅 과정을 진행할 수 있습니다. 이 과정에서 클러스터가 진행 단계를 보여줍니다.
단계 0
NDBFS
및NDBCNTR
블록을 시작합니다 ( NDB Kernel Blocks 를 참조하십시오).--initial
옵션으로 시작 된 데이터 노드에서 데이터 노드 파일 시스템이 삭제됩니다.1 단계이 단계에서는 나머지 모든
NDB
커널 블록이 시작됩니다. MySQL Cluster 연결이 설정되고, 블록 간의 통신이 확립되어 심장 박동이 시작됩니다. 노드의 재시작 경우 API 노드의 연결도 확인됩니다.참고1 단계에서 하나 이상의 노드가 중단하고 2 단계에서 나머지 1 개 이상의 노드가 중단 될 때 많은 경우 네트워크 문제를 보여줍니다. 이러한 문제가 발생하는 원인의 하나로서 여러 네트워크 인터페이스를 가지는 하나 이상의 클러스터 호스트가있을 수 있습니다. 이러한 상황이 발생하는 문제의 또 다른 일반적인 원인은 클러스터 노드 간의 통신에 필요한 TCP / IP 포트를 차단합니다. 후자에서는 이것은 종종 방화벽이 잘못 구성되어 있기 때문입니다.
2 단계
NDBCNTR
커널 블록은 기존의 모든 노드의 상태를 확인합니다. 마스터 노드가 선택되어 클러스터 스키마 파일이 초기화됩니다.3 단계
DBLQH
및DBTC
커널 블록은 그들 사이의 통신을 설정합니다. 시작 유형이 결정됩니다. 이것이 재시작 경우DBDIH
블록은 재부팅을 수행 할 수있는 권한을 가져옵니다.4 단계 초기 시작하거나 노드의 초기 재시작하면 Redo 로그 파일이 생성됩니다. 이러한 파일의 숫자는
NoOfFragmentLogFiles
에 동일합니다.시스템 재시작 경우 :
하나 이상의 스키마를 읽습니다.
로컬 체크 포인트에서 데이터를 읽습니다.
최신 복원 가능한 글로벌 체크 포인트에 도달 할 때까지 모든 Redo 정보를 적용합니다.
노드를 다시 시작하면 Redo 로그의 끝을 검색합니다.
5 단계이 단계에서 데이터 노드 시작의 데이터베이스 관련 부분의 대부분이 실행됩니다. 초기 시작하거나 시스템을 다시 시작하면 로컬 체크 포인트에 이어 글로벌 체크 포인트가 실행됩니다. 이 단계에서 메모리 사용량의 정기적 인 검사가 시작되고 필요한 노드의 인계가 실행됩니다.
6 단계이 단계에서는 노드 그룹이 정의 및 구성됩니다.
단계 7 아 비토 레이터 노드가 선택되어 작동이 시작됩니다. 다음 백업 ID 및 백업 디스크의 쓰기 속도가 설정됩니다. 이 시작 단계에 도달 한 노드는
Started
로 표시됩니다. 이 시점에서, API 노드 (SQL 노드 포함)는 클러스터에 연결할 수 있습니다.단계 8이 시스템의 재시작하면 모든 인덱스가 (
DBDIH
의해) 재 구축됩니다.단계 9 노드 내부의 시작 변수가 초기화됩니다.
단계 100 (폐지) 이전 노드를 다시 시작하거나 노드의 초기 재시작이 시점에서 API 노드는 노드에 연결하여 이벤트를 받기 시작했습니다. 현재는이 단계가 비어 있습니다.
단계 101 노드를 다시 시작하거나 노드의 초기 재시작이 시점에서 클러스터에 참여하는 노드에 이벤트 전달이 전달됩니다. 새롭게 참가한 노드는 기본 데이터를 가입자에게 전달하는 책임을 맡고 있습니다. 이 단계는
SUMA
핸드 오버 단계라고도합니다.
초기 시작하거나 시스템을 다시 시작하면이 프로세스가 완료되면 트랜잭션 처리가 유효하게됩니다. 노드를 다시 시작하거나 노드의 초기 재부팅하면 부팅 프로세스가 완료되었음을 현재 노드가 트랜잭션 코디네이터 역할을 할 수 있다는 것을 의미합니다.