mysql cluster集羣安裝全紀錄

這裏以centos5.8系統、32位cpu(注意不一樣的系統和cpu要下不一樣的版本)

參考文檔:http://starcat.dp.ua/doc/mysql-5.0/mysql-cluster.html

5個安裝軟件包:

MySQL-Cluster-gpl-client-7.1.24-1.rhel5.i386.rpm

MySQL-Cluster-gpl-management-7.1.24-1.rhel5.i386.rpm

MySQL-Cluster-gpl-server-7.1.24-1.rhel5.i386.rpm

MySQL-Cluster-gpl-storage-7.1.24-1.rhel5.i386.rpm

MySQL-Cluster-gpl-tools-7.1.24-1.rhel5.i386.rpm

下載地址:http://www.mysql.com/downloads/cluster/7.1.html

3臺centos服務器:

SQL節點(mysqld): 172.1.1.54

數據節點(ndbd): 172.1.1.55

管理節點(ndb_mgmd): 172.1.1.168

最好按如下的安裝順序安裝:首先是管理節點,而後是數據節點,最後是SQL節點。


1、管理節點安裝:

[root@172-1-1-168 ~]# wget http://cdn.mysql.com/Downloads/M ... 24-1.rhel5.i386.rpm

[root@172-1-1-168 ~]# wget http://cdn.mysql.com/Downloads/M ... 24-1.rhel5.i386.rpm

[root@172-1-1-168 ~]# rpm -ivh MySQL-Cluster-gpl-management-7.1.24-1.rhel5.i386.rpm

[root@172-1-1-168 ~]# rpm -ivh MySQL-Cluster-gpl-tools-7.1.24-1.rhel5.i386.rpm

[root@172-1-1-168 ~]# mkdir /var/lib/mysql-cluster

[root@172-1-1-168 ~]# vim /var/lib/mysql-cluster/config.ini

[ndbd default]
NoOfReplicas=1
DataMemory=80M
IndexMemory=18M

[tcp default]
SendBufferMemory=2M
ReceiveBufferMemory=2M

[NDB_MGMD DEFAULT]
PortNumber=1186
Datadir=/var/lib/mysql-cluster

[ndb_mgmd]
NodeId=1
HostName=172.1.1.168

[ndbd]
NodeId=2
HostName=172.1.1.55
datadir=/var/lib/mysql-data

[mysqld]
NodeId=3
HostName=172.1.1.54

//啓動管理節點
[root@172-1-1-168 ~]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini
MySQL Cluster Management Server mysql-5.1.63 ndb-7.1.24

這樣管理節點就安裝成功了!
注意:NoOfReplicas的數字要和數據節點的數量同樣!
此外安裝時若是碰到如下問題:
package MySQL-Cluster-gpl-management-7.1.24-1.rhel5.i386 is already installed
能夠用下面辦法解決:
[root@172-1-1-168 ~]# rpm -qa | grep -i '^mysql-'
MySQL-Cluster-gpl-management-7.1.24-1.rhel5
[root@172-1-1-168 ~]# rpm --nodeps -ev MySQL-Cluster-gpl-management-7.1.24-1.rhel5


2、數據節點安裝:

[root@172-1-1-55 ~]# wget http://cdn.mysql.com/Downloads/M ... 24-1.rhel5.i386.rpm

[root@172-1-1-55 ~]# rpm -ivh MySQL-Cluster-gpl-storage-7.1.24-1.rhel5.i386.rpm

[root@172-1-1-55 ~]# mkdir /var/lib/mysql-data

[root@172-1-1-55 ~]# chmod 0777 /var/lib/mysql-data -R

[root@172-1-1-55 ~]# vim /etc/my.cnf

[mysqld]
max_connections = 100
slow_query_log = /var/lib/mysql-cluster/slow_query.log
long_query_time = 1
datadir = /var/lib/mysql-cluster
ndbcluster
ndb-connectstring = 172.1.1.168:1186

[mysql_cluster]
ndb-connectstring = 172.1.1.168:1186

//啓動數據節點
[root@172-1-1-55 ~]# ndbd --initial
2012-11-13 00:45:47 [ndbd] INFO -- Angel connected to '172.1.1.168:1186'
2012-11-13 00:45:47 [ndbd] INFO -- Angel allocated nodeid: 2

這樣存儲節點就安裝成功了!
注意:(網上這麼說未驗證)ndbd --initial 不能同時在全部數據節點機器上執行,否者會刪除全部數據.即該命令只能在其中一臺數據節點中執行!
安裝後第一次啓動數據節點時要加上--initial參數,其它時候不要加,除非是在備份、恢復或配置變化後重啓時!


3、SQL節點的安裝:

[root@172-1-1-54 ~]# wget http://cdn.mysql.com/Downloads/M ... 24-1.rhel5.i386.rpm

[root@172-1-1-54 ~]# wget http://cdn.mysql.com/Downloads/M ... 24-1.rhel5.i386.rpm

[root@172-1-1-54 ~]# rpm -ivh MySQL-Cluster-gpl-server-7.1.24-1.rhel5.i386.rpm

[root@172-1-1-54 ~]# rpm -ivh MySQL-Cluster-gpl-client-7.1.24-1.rhel5.i386.rpm --nodeps --force

[root@172-1-1-54 ~]# vim /etc/my.cnf

[mysqld]
ndbcluster
ndb-connectstring=172.1.1.168:1186

[mysql_cluster]
ndb-connectstring=172.1.1.168:1186

//啓動SQL節點
[root@172-1-1-54 ~]# mysqld_safe
121112 23:47:25 mysqld_safe Logging to '/var/lib/mysql/172-1-1-168.lightspeed.hstntx.sbcglobal.net.err'.
121112 23:47:26 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
121112 23:48:01 mysqld_safe mysqld from pid file /var/lib/mysql/172-1-1-168.lightspeed.hstntx.sbcglobal.net.pid ended

這樣SQL節點就安裝成功了!
這個節點須要關閉1186和3306端口的防火牆(網上這麼說但我未處理也能啓動成功)!


4、驗證各節點:

在管理節點的機子下(172.1.1.168)

[root@172-1-1-168 ~]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 1 node(s)
id=2 @172.1.1.55 (mysql-5.1.63 ndb-7.1.24, Nodegroup: 0, Master)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @172.1.1.168 (mysql-5.1.63 ndb-7.1.24)

[mysqld(API)] 1 node(s)
id=3 @172.1.1.54 (mysql-5.1.63 ndb-7.1.24)

若是出現上面的信息說明所有安裝成功了!
若是出現not connected, accepting connect from any host是節點沒有啓動。
若是出現mysql-5.1.63 ndb-7.1.24, starting, Nodegroup: 0是數據節點已啓動但sql節點未啓動。
如何你的配置都沒有錯的話,那可能和你的防火牆設置有關!


5、動態更新節點

一、首先關閉所有ndb和sql節點:
注意關閉順序:首先是SQL節點,而後是數據節點,最後是管理節點。
sql節點在sql節點上執行:
[root@172-1-1-54 ~]# service mysql stop
Shutting down MySQL.... [肯定]
中止sql節點有點慢,不要用/etc/init.d/mysql restart。
ndb節點在管理節點上執行:
[root@172-1-1-168 ~]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> all stop
Executing STOP on all nodes.
Node 2: Cluster shutdown initiated
Node 2: Node shutdown completed.
NDB Cluster has shutdown.
注意不能中止單個(網上說能夠但本人嘗試失敗),不然會報以下錯誤:
Node 2: Node shutdown aborted
Shutdown failed.
* 2002: Stop failed
* Node shutdown would cause system crash: Permanent error: Application error
最後關閉管理節點!下面1 stop表示關閉管理節點,由於管理節點NodeId是1。

[root@172-1-1-168 ~]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> 1 stop
Node 1 has shutdown.
Disconnecting to allow Management Server to shutdown

ndb_mgm> exit;
二、緊接着安裝新的SQL節點和數據節點!
在172.1.1.55上一樣執行上面「2、SQL節點的安裝」的命令!
在172.1.1.54上一樣執行上面「3、數據節點安裝」的命令!
三、接下來就是重啓各節點:
注意啓動順序:首先是管理節點,而後是數據節點,最後是SQL節點。
[root@172-1-1-168 ~]# vim /var/lib/mysql-cluster/config.ini

[ndbd]
NodeId=4
HostName=172.1.1.54
datadir=/var/lib/mysql-data

[mysqld]
NodeId=5
HostName=172.1.1.55

[root@172-1-1-168 ~]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini --reload
MySQL Cluster Management Server mysql-5.1.63 ndb-7.1.24

//啓動數據節點
[root@172-1-1-55 ~]# ndbd --initial
2012-11-13 00:45:47 [ndbd] INFO -- Angel connected to '172.1.1.168:1186'
2012-11-13 00:45:47 [ndbd] INFO -- Angel allocated nodeid: 2

//啓動SQL節點
[root@172-1-1-54 ~]# mysqld_safe
121112 23:47:25 mysqld_safe Logging to '/var/lib/mysql/172-1-1-168.lightspeed.hstntx.sbcglobal.net.err'.
121112 23:47:26 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
121112 23:48:01 mysqld_safe mysqld from pid file /var/lib/mysql/172-1-1-168.lightspeed.hstntx.sbcglobal.net.pid ended

這樣就動態更新節點成功了!
注意:修改NoOfReplicas的數字以保持和數據節點的數量一致!
都作完了在管理節點上show一下看看結果!若是不生效的話可能要考慮重啓服務器!
[root@172-1-1-168 ~]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @172.1.1.55 (mysql-5.1.63 ndb-7.1.24, Nodegroup: 0, Master)
id=4 @172.1.1.54 (mysql-5.1.63 ndb-7.1.24, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @172.1.1.168 (mysql-5.1.63 ndb-7.1.24)

[mysqld(API)] 2 node(s)
id=3 @172.1.1.54 (mysql-5.1.63 ndb-7.1.24)
id=5 @172.1.1.55 (mysql-5.1.63 ndb-7.1.24)


6、同步測試

從SQL節點172-1-1-54登陸,建立數據庫和表,進行簡單測試。

mysql> create database yjzzjtest;

mysql> use yjzzjtest;
Database changed

mysql> create table yjzzj(id int,name varchar(10)) engine=ndb;

mysql> insert into yjzzj values(1,'rschome.com');

mysql> select * from yjzzj;
+------+------------+
| id | name |
+------+------------+
| 1 | rschome.com |
+------+------------+
1 row in set (0.01 sec)

登錄SQL節點172-1-1-168,查看效果,庫,表和數據已經同步。

從B節點插入一條數據,一樣登錄A,也能看到數據已經同步。
相關文章
相關標籤/搜索