Adding MySQL Cluster Data Nodes Online
Step 1: Update configuration file.
the cluster uses a config.ini file
[ndbd default]
…..
[ndbd]
….
Id = 7
HostName = *.*.*.4 (TEST IP)
datadir=/usr/local/mysql-cluster/ndbd-data
ArbitrationRank=3
Id = 8
HostName = *.*.*.5 (TEST IP)
datadir=/usr/local/mysql-cluster/ndbd-data
ArbitrationRank=4
Step 2: Restart the management server
1) Stop the management server using the management client STOP command, as shown here:
ndb_mgm> 10 STOP
Node 10 has shut down.
Disconnecting to allow Management Server to shutdown
shell>
2) Because shutting down the management server causes the management client to terminate, you must start the management server from the system shell.
shell> ndb_mgmd -f config.ini --reload
2008-12-08 17:29:23 [MgmSrvr] INFO -- NDB Cluster Management Server. 5.1.73-ndb-7.1.36
2008-12-08 17:29:23 [MgmSrvr] INFO -- Reading cluster configuration from 'config.ini'
3) status check
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=3 @*.*.*.1 (mysql-5.1.34 ndb-6.3.25, Nodegroup: 0)
id=4 @*.*.*.2 (mysql-5.1.34 ndb-6.3.25, Nodegroup: 0, Master)
id=7 (not connected, accepting connect from 10.0.0.4)
id=8 (not connected, accepting connect from 10.0.0.5)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @*.*.*.3 (mysql-5.1.34 ndb-6.3.25)
[mysqld(API)] 2 node(s)
id=5
@*.*.*.1 (mysql-5.1.34 ndb-6.3.25)
id=6 @*.*.*.2 (mysql-5.1.34 ndb-6.3.25)
Step 3: Perform a rolling restart of the existing data nodes.
ndb_mgm> 1 RESTART
Node 1: Node shutdown initiated
Node 1: Node shutdown completed, restarting, no start.
Node 1 is being restarted
ndb_mgm> Node 1: Start initiated (version 7.1.36)
Node 1: Started (version 7.1.36)
ndb_mgm> 2 RESTART
Node 2: Node shutdown initiated
Node 2: Node shutdown completed, restarting, no start.
Node 2 is being restarted
ndb_mgm> Node 2: Start initiated (version 7.1.36)
ndb_mgm> Node 2: Started (version 7.1.36)
Step 4: Perform a rolling restart of all cluster API nodes.
shell> mysqladmin -uroot -ppassword shutdown
081208 20:19:56 mysqld_safe mysqld from pid file
/usr/local/mysql/var/tonfisk.pid ended
shell> mysqld_safe --ndbcluster --ndb-connectstring=*.*.*.3 &
081208 20:20:06 mysqld_safe Logging to '/usr/local/mysql/var/tonfisk.err'.
081208 20:20:06 mysqld_safe Starting mysqld daemon with databases
from /usr/local/mysql/var
Step 5: Perform an initial start of the new data nodes.
shell> ndbd -c 10.0.0.3 --initial
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=3 @*.*.*.1 (mysql-5.1.34 ndb-6.3.25, Nodegroup: 0)
id=4 @*.*.*.2 (mysql-5.1.34 ndb-6.3.25, Nodegroup: 0, Master)
id=7 @*.*.*.7 (mysql-5.1.34 ndb-6.3.25, no nodegroup)
id=8 @*.*.*.8 (mysql-5.1.34 ndb-6.3.25, no nodegroup)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @*.*.*.3 (mysql-5.1.34 ndb-6.3.25)
[mysqld(API)] 2 node(s)
id=5 @*.*.*.1 (mysql-5.1.34 ndb-6.3.25)
id=6 @*.*.*.2 (mysql-5.1.34 ndb-6.3.25)
Step 6: Create a new node group
ndb_mgm> CREATE NODEGROUP 7,8
Nodegroup 1 created
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=3 @*.*.*.1 (mysql-5.1.34 ndb-6.3.25, Nodegroup: 0)
id=4 @*.*.*.2 (mysql-5.1.34 ndb-6.3.25, Nodegroup: 0, Master)
id=7 @*.*.*.7 (mysql-5.1.34 ndb-6.3.25, 1)
id=8 @*.*.*.8 (mysql-5.1.34 ndb-6.3.25, 1)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @*.*.*.3 (mysql-5.1.34 ndb-6.3.25)
[mysqld(API)] 2 node(s)
id=5 @*.*.*.1 (mysql-5.1.34 ndb-6.3.25)
id=6 @*.*.*.2 (mysql-5.1.34 ndb-6.3.25)
Step 7: Redistribute cluster data.
ndb_mgm> all report mem
Node 2: Data usage is 5%(176 32K pages of total 3200)
Node 2: Index usage is 0%(76 8K pages of total 12832)
Node 3: Data usage is 5%(176 32K pages of total 3200)
Node 3: Index usage is 0%(76 8K pages of total 12832)
Node 7: Data usage is 0%(0 32K pages of total 192000)
Node 7: Index usage is 0%(0 8K pages of total 192032)
Node 8: Data usage is 0%(0 32K pages of total 192000)
Node 8: Index usage is 0%(0 8K pages of total 192032)
shell> ndb_desc -c *.*.*.3 -d n ips -p
- ips --
Version: 1
Fragment type: 9
K Value: 6
Min load factor: 78
Max load factor: 80
...
-- Per partition info --
Partition Row count Commit count Frag fixed memory Frag varsized memory
0 26086 26086 1572864 557056
1 26329 26329 1605632 557056
1) Table Redistribute
- 대상 테이블명 확인
SELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE ENGINE = 'NDBCLUSTER';
- 테이블 복제
mysql> ALTER ONLINE TABLE [DB명].[테이블명] REORGANIZE PARTITION;
- Redistribute 확인
shell> ndb_desc -d [DB명] [테이블명] -c *.*.*.3:port -pn
shell> ndb_desc -c *.*.*.10 -d n ips -p
-- ips --
Version: 16777217
Fragment type: 9
K Value: 6
Min load factor: 78
Max load factor: 80
…
-- Per partition info --
Partition Row count Commit count Frag fixed memory Frag varsized memory
0 12981 52296 1572864 557056
1 13236 52515 1605632 557056
2 13105 13105 819200 294912
3 13093 13093 819200 294912
ndb_mgm> all report mem
Node 2: Data usage is 5%(176 32K pages of total 3200)
Node 2: Index usage is 0%(76 8K pages of total 12832)
Node 3: Data usage is 5%(176 32K pages of total 3200)
Node 3: Index usage is 0%(76 8K pages of total 12832)
Node 7: Data usage is 2%(80 32K pages of total 3200)
Node 7: Index usage is 0%(51 8K pages of total 12832)
Node 8: Data usage is 2%(80 32K pages of total 3200)
Node 8: Index usage is 0%(50 8K pages of total 12832)
[참고 사이트]
원본 위치 <https://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-online-add-node.html>