구성 :MySQL 클러스터 데이터 노드가 다시 시작 쌍둥이가 실패
- 서버 # 1 : 1 개 MGM 노드 (# 49), 1 개 데이터 노드 (# 1), 1 개 SQL 노드 (리얼 IP 192.168.1.128)
- 서버 # 1 : 1 mgm 노드 (# 50), 1 데이터 노드 (# 2), 1 sql 노드 (실제 IP 192.168.1.130)
- 가상 IP : 192.168.1.240 (keepalived를 사용하여 서버 # 1을 마스터)
사양 :
,451,515,- MySQL 클러스터 7.3.6 x86_64의
- 데비안 7.6 x86_64의는
그것은 MySQL 클러스터 자동 설치 프로그램을 사용하여 배포되었습니다. 모든 것은 잘 작동합니다.
그러나 하나의 노드를 종료하면 다른 서버의 데이터 노드가 다시 시작됩니다. NDB_MGM은 그것이 "시작"되었음을 보여줍니다. 그리고 "시작"상태를 종료하는 데 시간이 오래 걸립니다.
테스트 한 결과 노드가 4 개인 경우에는 발생하지 않습니다.
Doe 누구든지이 재시작의 이유를 알고 있습니까?
미리 감사드립니다.
업데이트 :
: 구성 파일 및 명령 줄
NDB_MGMD 번호 1. 구성 파일 (50)
#
# Configuration file for MyCluster NDB_MGMD #49
# /usr/local/mysql/data/49/config.ini
[NDB_MGMD DEFAULT]
Portnumber=1186
[NDB_MGMD]
NodeId=49
HostName=192.168.1.128
DataDir=/usr/local/mysql/data/49/
Portnumber=1186
[NDB_MGMD]
NodeId=50
HostName=192.168.1.130
DataDir=/usr/local/mysql/data/50/
Portnumber=1186
[TCP DEFAULT]
SendBufferMemory=4M
ReceiveBufferMemory=4M
[NDBD DEFAULT]
BackupMaxWriteSize=1M
BackupDataBufferSize=16M
BackupLogBufferSize=4M
BackupMemory=20M
BackupReportFrequency=10
MemReportFrequency=30
LogLevelStartup=15
LogLevelShutdown=15
LogLevelCheckpoint=8
LogLevelNodeRestart=15
DataMemory=1M
IndexMemory=1M
MaxNoOfTables=4096
MaxNoOfTriggers=3500
NoOfReplicas=2
StringMemory=25
DiskPageBufferMemory=64M
SharedGlobalMemory=20M
LongMessageBuffer=32M
MaxNoOfConcurrentTransactions=16384
BatchSizePerLocalScan=512
FragmentLogFileSize=64M
NoOfFragmentLogFiles=16
RedoBuffer=32M
MaxNoOfExecutionThreads=2
StopOnError=false
LockPagesInMainMemory=1
TimeBetweenEpochsTimeout=32000
TimeBetweenWatchdogCheckInitial=60000
TransactionInactiveTimeout=60000
HeartbeatIntervalDbDb=15000
HeartbeatIntervalDbApi=15000
[NDBD]
NodeId=1
HostName=192.168.1.128
DataDir=/usr/local/mysql/data/1/
[NDBD]
NodeId=2
HostName=192.168.1.130
DataDir=/usr/local/mysql/data/2/
[MYSQLD DEFAULT]
[MYSQLD]
NodeId=53
HostName=192.168.1.128
[MYSQLD]
NodeId=54
HostName=192.168.1.130
NDB_MGMD 번호 2. 구성 파일 (50)
#
# Configuration file for MyCluster NDB_MGMD #50
# /usr/local/mysql/data/50/config.ini
[NDB_MGMD DEFAULT]
Portnumber=1186
[NDB_MGMD]
NodeId=49
HostName=192.168.1.128
DataDir=/usr/local/mysql/data/49/
Portnumber=1186
[NDB_MGMD]
NodeId=50
HostName=192.168.1.130
DataDir=/usr/local/mysql/data/50/
Portnumber=1186
[TCP DEFAULT]
SendBufferMemory=4M
ReceiveBufferMemory=4M
[NDBD DEFAULT]
BackupMaxWriteSize=1M
BackupDataBufferSize=16M
BackupLogBufferSize=4M
BackupMemory=20M
BackupReportFrequency=10
MemReportFrequency=30
LogLevelStartup=15
LogLevelShutdown=15
LogLevelCheckpoint=8
LogLevelNodeRestart=15
DataMemory=1M
IndexMemory=1M
MaxNoOfTables=4096
MaxNoOfTriggers=3500
NoOfReplicas=2
StringMemory=25
DiskPageBufferMemory=64M
SharedGlobalMemory=20M
LongMessageBuffer=32M
MaxNoOfConcurrentTransactions=16384
BatchSizePerLocalScan=512
FragmentLogFileSize=64M
NoOfFragmentLogFiles=16
RedoBuffer=32M
MaxNoOfExecutionThreads=2
StopOnError=false
LockPagesInMainMemory=1
TimeBetweenEpochsTimeout=32000
TimeBetweenWatchdogCheckInitial=60000
TransactionInactiveTimeout=60000
HeartbeatIntervalDbDb=15000
HeartbeatIntervalDbApi=15000
[NDBD]
NodeId=1
HostName=192.168.1.128
DataDir=/usr/local/mysql/data/1/
[NDBD]
NodeId=2
HostName=192.168.1.130
DataDir=/usr/local/mysql/data/2/
[MYSQLD DEFAULT]
[MYSQLD]
NodeId=53
HostName=192.168.1.128
[MYSQLD]
NodeId=54
HostName=192.168.1.130
명령 줄 매개 변수를 매개 변수 1. 서버 # 1에서 ndb_mgmd를 시작하려면
/usr/local/mysql/bin/ndb_mgmd --initial --ndb-nodeid=49 \
--config-dir=/usr/local/mysql/data/49/ \
--config-file=/usr/local/mysql/data/49/config.ini
,210
2. 2
/usr/local/mysql/bin/ndb_mgmd --initial --ndb-nodeid=50 \
--config-dir=/usr/local/mysql/data/50/ \
--config-file=/usr/local/mysql/data/50/config.ini
3. 1
/usr/local/mysql/bin/ndbmtd --ndb-nodeid=1 --bind-address=192.168.1.128 \
--ndb-connectstring=192.168.1.240:1186,
4. 서버에 # ndbmtd 시작하려면 서버에 # ndbmtd 시작하려면 서버에 # ndb_mgmd 시작하려면 2
/usr/local/mysql/bin/ndbmtd --ndb-nodeid=2 --bind-address=192.168.1.130 \
--ndb-connectstring=192.168.1.240:1186,
답장을 보내 주셔서 감사합니다. 그것을 명확하게 이해하려면 어느 노드를 의미합니까? 그리고 그런데 왜 4 개의 노드에서 이런 일이 일어나지 않을까요? 내가 깨달은 것처럼, 연결이 끊긴 서버 (인터페이스가 다운 됨)에있는 데이터 노드가 다운됩니다. 그러나 다른 하나는 다시 시작됩니다. 그리고 mgm 노드가 동일한 서버에서 실행 중이더라도 4 개의 노드에서 다시는 발생하지 않습니다. 그건 그렇고, 나는 디자인을 바꿀 수 없다. – Rad
"nowait-nodes"매개 변수를 아무런 성공없이 사용하려고 시도했습니다 (두 노드 유형 모두에 대해). 하나의 노드 만 다시 시작되는 것을 방지합니다. MGM 노드에 대해 "ArbitrationRank"에 대한 정보를 찾았습니다. 어느 정보도 도움이되지 않았습니다. 또한 서버에서 두 개의 MGM 노드에 VIP를 사용하려고했습니다. MGM 노드가 실행중인 동일한 시스템에있는 데이터 노드가 MGM 노드에 연결할 수 없으므로 작동하지 않습니다. MGM 노드는 실제 IP가 아닌 가상 IP에서 통신하는 데이터 노드를 봅니다. 어떻게 해결할 수있는 아이디어가 있습니까? 감사합니다 – Rad
우리는 수정 된대로 데이터 노드가 실제 IP를 사용하도록 강제하는 VIP 문제를 해결합니다. –