Loading...
MySQL 9.5 Reference Manual 9.5의 25.6.5 Performing a Rolling Restart of an NDB Cluster의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
이 섹션에서는 NDB Cluster 설치에 대해 rolling restart를 수행하는 방법을 다룹니다. rolling restart라는 명칭은, Cluster 자체는 동작 상태를 유지한 채 각 노드를 순차적으로 중지하고 시작(또는 재시작)하기 때문에 붙은 이름입니다. 이는 종종 rolling upgrade 또는 rolling downgrade의 일부로 수행되며, 여기서 Cluster의 고가용성이 필수이고 Cluster 전체의 다운타임은 허용되지 않습니다. 여기에서 upgrade에 대해 언급하는 부분은 일반적으로 downgrade에도 동일하게 적용됩니다.
rolling restart가 바람직할 수 있는 이유는 여러 가지가 있습니다. 다음 몇 개의 단락에서 이를 설명합니다.
Configuration change.
Cluster의 구성을 변경하기 위해서입니다. 예를 들어 Cluster에 SQL 노드를 추가하거나, 구성 파라미터 값을 새 값으로 설정하는 경우 등이 있습니다.
NDB Cluster software upgrade or downgrade.
NDB Cluster 소프트웨어의 새 버전으로 Cluster를 업그레이드(또는 더 오래된 버전으로 다운그레이드)하기 위해서입니다. 이는 보통 “rolling upgrade”(또는 더 오래된 NDB Cluster 버전으로 되돌릴 때는 “rolling downgrade”)라고 합니다.
Change on node host.
하나 이상의 NDB Cluster 노드 프로세스가 동작 중인 하드웨어 또는 운영 체제를 변경하기 위해서입니다.
System reset (cluster reset).
Cluster가 바람직하지 않은 상태에 도달했기 때문에 리셋하기 위해서입니다. 이러한 경우, 하나 이상의 데이터 노드의 데이터 및 메타데이터를 다시 로드하는 것이 바람직한 경우가 많습니다. 이는 다음 세 가지 방법 중 하나로 수행할 수 있습니다:
각 데이터 노드 프로세스( ndbd 또는 필요하다면 ndbmtd)를 --initial 옵션과 함께 시작합니다. 이 옵션은 데이터 노드가 자신의 파일 시스템을 비우고, 다른 데이터 노드들로부터 모든 NDB Cluster 데이터와 메타데이터를 다시 로드하도록 강제합니다. 이는 또한 모든 Disk Data 오브젝트 및 해당 오브젝트와 연관된 파일을 제거하도록 강제합니다.
재시작을 수행하기 전에 ndb_mgm 클라이언트의 START BACKUP 명령을 사용하여 백업을 생성합니다. upgrade 이후에, ndb_restore를 사용하여 노드들을 복구합니다.
자세한 내용은 Section 25.6.8, “Online Backup of NDB Cluster” 및 Section 25.5.23, “ndb_restore — Restore an NDB Cluster Backup”를 참조하십시오.
upgrade 이전에 mysqldump를 사용하여 백업을 생성합니다. 그런 다음, upgrade 후에 LOAD DATA를 사용하여 덤프를 복구합니다.
Resource Recovery.
다른 NDB Cluster 테이블이 다시 사용할 수 있도록, 연속적인 INSERT 및 DELETE 연산에 의해 테이블에 할당된 메모리를 해제하기 위해서입니다.
rolling restart를 수행하는 절차는 일반적으로 다음과 같이 요약할 수 있습니다:
모든 Cluster management 노드( ndb_mgmd 프로세스)를 중지하고, 재구성한 뒤 다시 시작합니다. (Rolling restarts with multiple management servers를 참조하십시오.)
각 Cluster 데이터 노드( ndbd 프로세스)를 순차적으로 중지하고, 재구성한 다음, 다시 시작합니다.
일부 노드 구성 파라미터는 이전 단계에 이어 ndb_mgm 클라이언트에서 각 데이터 노드에 대해 RESTART를 실행하여 갱신할 수 있습니다. 다른 파라미터는 management 클라이언트의 STOP 명령을 사용하여 데이터 노드를 완전히 중지한 다음, 시스템 셸에서 적절한 ndbd 또는 ndbmtd 실행 파일을 호출하여 다시 시작해야 합니다. (대부분의 Unix 시스템에서는 kill과 같은 셸 명령을 사용하여 데이터 노드 프로세스를 중지할 수도 있지만, STOP 명령이 더 바람직하며 대개 더 간단합니다.)
참고
Windows에서는, Windows 서비스로 설치된 노드를 중지하고 시작하기 위해 SC STOP 및 SC START 명령, NET STOP 및 NET START 명령, 또는 Windows Service Manager를 사용할 수도 있습니다(자세한 내용은 Section 25.3.2.4, “Installing NDB Cluster Processes as Windows Services”를 참조하십시오).
필요한 restart의 유형은 각 노드 구성 파라미터에 대한 문서에 명시되어 있습니다. Section 25.4.3, “NDB Cluster Configuration Files”를 참조하십시오.
NDB Cluster는 노드 upgrade 순서에 대해 어느 정도 유연성을 제공합니다. NDB Cluster를 upgrade할 때, management 노드나 데이터 노드보다 먼저 API 노드(SQL 노드 포함)를 upgrade할 수 있습니다. 즉, API 및 SQL 노드는 어떤 순서로든 upgrade할 수 있습니다. 단, 다음 조건을 충족해야 합니다:
이 기능은 온라인 upgrade의 일부로 사용하도록 설계되었습니다. 서로 다른 NDB Cluster 릴리스의 노드 바이너리를 혼합하여 프로덕션 환경에서 지속적이고 장기간 사용하는 것은 의도되지 않았으며 지원되지도 않습니다.
서로 다른 유형의 노드를 upgrade하기 전에 동일 유형의 모든 노드(Management, Data, 또는 API 노드)를 upgrade해야 합니다. 노드들이 어떤 순서로 upgrade되는지와 상관없이 이 규칙은 유지됩니다.
Cluster의 API 및 SQL 노드를 어떤 순서로 upgrade하든 상관없이, 어떤 데이터 노드보다도 먼저 모든 Management 노드를 upgrade해야 합니다.
“새로운” 버전에서만 사용 가능한 기능은, 모든 Management 노드 및 데이터 노드의 upgrade가 완료될 때까지 사용해서는 안 됩니다.
이는, NDB 엔진 버전 변경과 더불어 적용될 수 있는 모든 MySQL Server 버전 변경에도 마찬가지로 적용되므로, upgrade를 계획할 때 이를 잊지 말고 고려해야 합니다. (이는 일반적으로 NDB Cluster의 온라인 upgrade 전체에 대해 사실입니다.)
어떤 API 노드도 노드 restart 중에는 스키마 연산(예: 데이터 정의 문)을 수행할 수 없습니다. 이러한 제한 때문에, 온라인 upgrade 또는 downgrade 중에도 스키마 연산은 지원되지 않습니다. 또한, upgrade 또는 downgrade가 진행 중인 동안에는 네이티브 백업을 수행할 수 없습니다.
Rolling restarts with multiple management servers.
여러 Management 노드를 가진 NDB Cluster에서 rolling restart를 수행할 때는, [ndb_mgmd](https://dev.mysql.com/doc/refman/9.5/en/mysql-cluster-programs-ndbm gmd.html "25.5.4 ndb_mgmd — The NDB Cluster Management Server Daemon")가 다른 Management 노드가 실행 중인지 확인하고, 실행 중이라면 그 노드의 구성 데이터를 사용하려 한다는 점을 염두에 두어야 합니다. 이러한 동작을 방지하고, ndb_mgmd가 자신의 구성 파일을 다시 읽도록 강제하려면, 다음 단계를 수행하십시오:
모든 NDB Cluster ndb_mgmd 프로세스를 중지합니다.
모든 config.ini 파일을 업데이트합니다.
단일 ndb_mgmd를 --reload, --initial 또는 두 옵션 모두와 함께 원하는 대로 시작합니다.
첫 번째 ndb_mgmd를 --initial 옵션과 함께 시작한 경우, 나머지 모든 ndb_mgmd 프로세스도 --initial을 사용하여 시작해야 합니다.
첫 번째 ndb_mgmd를 시작할 때 사용한 다른 옵션과는 무관하게, 이후에 시작하는 어떠한 ndb_mgmd 프로세스도 --reload를 사용하여 시작해서는 안 됩니다.
데이터 노드 및 API 노드의 rolling restart를 일반적인 방식대로 완료합니다.
Cluster 구성을 업데이트하기 위해 rolling restart를 수행할 때는, config_generation 컬럼을 사용하여 새 구성으로 정상적으로 재시작된 데이터 노드를 추적할 수 있습니다. 이 컬럼은 ndbinfo.nodes 테이블에 있습니다. 자세한 내용은 Section 25.6.15.48, “The ndbinfo nodes Table”를 참조하십시오.
25.6.4 Summary of NDB Cluster Start Phases
25.6.6 NDB Cluster Single User Mode