MySQL Cluster 7.1 в Windows 2008 с несколькими узлами управления

Я надеюсь, что кто-нибудь может подсказать мне, где я ошибаюсь при кластеризации 3 серверов с MySQL Cluster 7.1 с несколькими узлами управления.

На данный момент кластер отлично работает с одним управляющим узлом. Это установка:

  1. Первый сервер запускает только экземпляр ndb_mgmd (192.168.66.114)
  2. Второй сервер запускает экземпляр ndbd и mysqld (192.168.66.2)
  3. Третий сервер запускает экземпляр ndbd и mysqld (192.168.66.113).

Я хочу ввести в кластер второй узел управления. У меня точно такой же config.ini для обоих серверов управления. Вот:

[NDBD DEFAULT]
NoOfReplicas=2

[MYSQLD DEFAULT]

[NDB_MGMD DEFAULT]
PortNumber=1186
datadir=c:/Progra~1/mysql-cluster-gpl-7.1.3-win32
LogDestination=FILE:filename=c:/Progra~1/mysql-cluster-gpl-7.1.3-win32/clusterlog.log


[TCP DEFAULT]

# Management Server
[NDB_MGMD]
Id=1
HostName=192.168.66.114
ArbitrationRank=1

[NDB_MGMD]
Id=6
HostName=192.168.66.2
ArbitrationRank=2

# Storage Engines
[NDBD]
Id=2
HostName=192.168.66.2
DataDir= D:/AppData/ndb-7.1.3

[NDBD]
Id=3
HostName=192.168.66.113
DataDir= D:/AppData/ndb-7.1.3

[MYSQLD]
Id=4
HostName=192.168.66.2

[MYSQLD]
Id=5
HostName=192.168.66.113

Когда я запускаю экземпляры ndb_mgmd на обоих серверах и запускаю команду show в ndb_mgm, на первом сервере управления я вижу, что он запущен:

ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @192.168.66.2  (mysql-5.1.44 ndb-7.1.3, Nodegroup: 0, Master)
id=3    @192.168.66.113  (mysql-5.1.44 ndb-7.1.3, Nodegroup: 0)

[ndb_mgmd(MGM)] 2 node(s)
id=1    @192.168.66.114  (mysql-5.1.44 ndb-7.1.3)
id=6 (not connected, accepting connect from 192.168.66.2)

[mysqld(API)]   2 node(s)
id=4    @192.168.66.2  (mysql-5.1.44 ndb-7.1.3)
id=5    @192.168.66.113  (mysql-5.1.44 ndb-7.1.3)

ndb_mgm>

Мне еще предстоит запустить второй экземпляр управления на втором сервере управления, поэтому следующие строки в порядке (вывод ndb_mgm выше):

id=6 (not connected, accepting connect from 192.168.66.2)

Затем я иду на второй сервер управления (192.168.66.2) и запускаю ndb_mgmd. После запуска я запускаю против него команду show:

ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2 (not connected, accepting connect from 192.168.66.2)
id=3 (not connected, accepting connect from 192.168.66.113)

[ndb_mgmd(MGM)] 2 node(s)
id=1 (not connected, accepting connect from 192.168.66.114)
id=6    @192.168.66.2  (mysql-5.1.44 ndb-7.1.3)

[mysqld(API)]   2 node(s)
id=4 (not connected, accepting connect from 192.168.66.2)
id=5 (not connected, accepting connect from 192.168.66.113)

ndb_mgm>

Вместо того, чтобы перечислять оба узла управления как подключенные, второй узел управления просто сообщает, что он сам подключен. Возврат к первому серверу управления по адресу 192.168.66.114 по-прежнему дает тот же результат, что и до запуска второго ndb_mgmd, т. е. подключен ТОЛЬКО узел управления по адресу 192.168.66.114:

ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @192.168.66.2  (mysql-5.1.44 ndb-7.1.3, Nodegroup: 0, Master)
id=3    @192.168.66.113  (mysql-5.1.44 ndb-7.1.3, Nodegroup: 0)

[ndb_mgmd(MGM)] 2 node(s)
id=1    @192.168.66.114  (mysql-5.1.44 ndb-7.1.3)
id=6 (not connected, accepting connect from 192.168.66.2)

[mysqld(API)]   2 node(s)
id=4    @192.168.66.2  (mysql-5.1.44 ndb-7.1.3)
id=5    @192.168.66.113  (mysql-5.1.44 ndb-7.1.3)

ndb_mgm>

Я провел много часов, пытаясь понять, что не так, но безрезультатно. Также обратите внимание на лог-файл ndb_mgmd первого сервера управления, выдержка из которого берется сразу после запуска второго ndb_mgmd по адресу 192.168.66.2:

2010-05-21 16:05:04 [MgmtSrvr] INFO     -- Reading cluster configuration from 'c:/Progra~1/mysql-cluster-gpl-7.1.3-win32/config.ini'
2010-05-21 16:05:04 [MgmtSrvr] WARNING  -- at line 45: Cluster configuration warning:
  arbitrator with id 6 and db node with id 2 on same host 192.168.66.2
  Running arbitrator on the same host as a database node may
  cause complete cluster shutdown in case of host failure.
2010-05-21 16:05:04 [MgmtSrvr] INFO     -- Config equal!
2010-05-21 16:05:04 [MgmtSrvr] INFO     -- Mgmt server state: nodeid 1 reserved for ip 192.168.66.114, m_reserved_nodes 1.
2010-05-21 16:05:04 [MgmtSrvr] INFO     -- Id: 1, Command port: *:1186
2010-05-21 16:05:04 [MgmtSrvr] DEBUG    -- 127.0.0.1:3727: Connected!
2010-05-21 16:05:04 [MgmtSrvr] DEBUG    -- Sending CONFIG_CHECK_REQ to 1
2010-05-21 16:05:04 [MgmtSrvr] DEBUG    -- Got CONFIG_CHECK_REQ from node: 1. Our generation: 1, other generation: 1, our state: 2, other state: 2, our checksum: 0xc7202738, other checksum: 0xc7202738
2010-05-21 16:05:04 [MgmtSrvr] DEBUG    -- Send CONFIG_CHECK_CONF to node: 1
2010-05-21 16:05:04 [MgmtSrvr] DEBUG    -- Got CONFIG_CHECK_CONF from node: 1
2010-05-21 16:05:04 [MgmtSrvr] DEBUG    -- 192.168.66.113:51051: Connected!
2010-05-21 16:05:04 [MgmtSrvr] DEBUG    -- 192.168.66.2:65492: Connected!
2010-05-21 16:05:04 [MgmtSrvr] INFO     -- Node 1: Node 6 Connected
2010-05-21 16:05:04 [MgmtSrvr] INFO     -- Node 6 connected
2010-05-21 16:05:04 [MgmtSrvr] DEBUG    -- Sending CONFIG_CHECK_REQ to 6
2010-05-21 16:05:04 [MgmtSrvr] DEBUG    -- Got CONFIG_CHECK_CONF from node: 6
2010-05-21 16:05:04 [MgmtSrvr] INFO     -- Node 1: Node 3 Connected
2010-05-21 16:05:04 [MgmtSrvr] DEBUG    -- 192.168.66.113:51051: Stopped!
2010-05-21 16:05:04 [MgmtSrvr] DEBUG    -- 192.168.66.113:51051: Disconnected!
2010-05-21 16:05:04 [MgmtSrvr] INFO     -- Node 1: Node 2 Connected
2010-05-21 16:05:04 [MgmtSrvr] DEBUG    -- 192.168.66.2:65492: Stopped!
2010-05-21 16:05:04 [MgmtSrvr] DEBUG    -- 192.168.66.2:65492: Disconnected!
2010-05-21 16:05:05 [MgmtSrvr] INFO     -- Node 3: Prepare arbitrator node 1 [ticket=16800008ebadb656]
2010-05-21 16:05:05 [MgmtSrvr] INFO     -- Node 2: Started arbitrator node 1 [ticket=16800008ebadb656]

Лично я нахожу следующие две строки из приведенного выше вывода интересными:

2010-05-21 16:05:04 [MgmtSrvr] DEBUG    -- 192.168.66.2:65492: Stopped!
2010-05-21 16:05:04 [MgmtSrvr] DEBUG    -- 192.168.66.2:65492: Disconnected!

Однако сообщения об ошибке нет, просто написано «Остановлено и отключено».

Кто-нибудь может понять, что не так с моей настройкой? Любая помощь будет очень, очень признательна.


person Boyan Georgiev    schedule 21.05.2010    source источник


Ответы (2)


http://dev.mysql.com/tech-resources/articles/mysql-cluster-for-two-servers.html

Вышеприведенная ссылка представляет собой пошаговое руководство, которое я использовал для настройки своего кластера. Эта статья предназначена для установки на базе Linux, но шаги практически идентичны для установки на Windows. Синтаксис командной строки, конечно, отличается для Windows. Единственные различия, которые вам нужно обработать, заключаются в размещении файлов кластера MySQL в соответствующем месте на вашем компьютере с Windows и установке служб вручную. Как только вы это сделаете, разницы нет - все делается в конфигурационных файлах. Для начала можно скопировать установочные файлы, потом запустить все из командной строки. Таким образом, вам будет легко устранять любые проблемы, которые могут возникнуть, поскольку вы увидите ошибки в окнах командной строки. В противном случае вам нужно сначала настроить ведение журнала, чтобы просмотреть журналы, чтобы узнать, что происходит. Имейте в виду, вы должны быть волшебником, чтобы все заработало с первой попытки, поэтому оставьте ведение журнала в стороне для начала и посмотрите непосредственно на вывод служб кластера в окне командной строки. Если вам удастся заставить все работать, вам следует установить «демонов» в качестве служб под Windows. Я могу помочь вам с этим, если вам нужна помощь. Оказывается, установка служб может быть очень сложной задачей — хотя я недавно установил свой кластер, я помню, что установка служб заняла у меня некоторое время. Я делал это методом проб и ошибок. По памяти, вы должны использовать ТОЛЬКО имена 8.3 в своих путях при установке служб. В противном случае мой не запускался (или устанавливался как службы, точно не помню).

person Boyan Georgiev    schedule 29.01.2011
comment
Ссылка сейчас мертва. - person ChrisF; 19.07.2013

Ребят, это на самом деле починилось. Не знаю почему, но позже сегодня второй узел управления начал нормально подключаться без моего вмешательства.

person Boyan Georgiev    schedule 21.05.2010