MySQL NDB 6.3.20集群安裝配置 邁向高可靠性
本文會先對MySQL集群稍作一點介紹,然后會提供一個安裝過程。
介紹:
MySQL集群是一種在無共享架構系統里應用內存數據庫集群的技術。這種無共享的架構可以使得系統使用非常便宜的并且是最小配置的硬件。
MySQL集群是一種分布式設計,目標是要達到沒有任何單點故障點。因此,任何組成部分都應該擁有自己的內存和磁盤。任何共享存儲方案如網絡共享,網絡文件系統和SAN設備是不推薦或不支持的。通過這種冗余設計,MySQL聲稱數據的可用度可以達到99。999%。
實際上,MySQL集群是把一個叫做NDB的內存集群存儲引擎集成與標準的MySQL服務器集成。它包含一組計算機,每個都跑一個或者多個進程,這可能包括一個MySQL服務器,一個數據節點,一個管理服務器和一個專有的一個數據訪問程序。它們之間的關系如下圖所示:
安裝
準備:
機器: 全部安裝Red Hat Linux AS 5且關閉防火墻
軟件: mysql-cluster-gpl-6.3.20-linux-i686-glibc23.tar.gz
IP
|
Description
|
192.168.99.80
|
Management Node
|
192.168.99.88
|
SQL Node
|
192.168.99.89
|
Data Node
|
192.168.99.90
|
Data Node
|
四臺機器分別分配如下IP及用途:
安裝節點,四臺機器,需要重復四次:
- [root@candyshop ~]#groupadd mysql
- [root@candyshop ~]#useradd –g mysql mysql
- [root@candyshop ~]#tar zxvf mysql-cluster-gpl-6.3.20-linux-i686-glibc23.tar.gz
- [root@candyshop ~]#chown mysql:mysql mysql-cluster-gpl-6.3.20-linux-i686-glibc23
- [root@candyshop ~]#mv mysql-cluster-gpl-6.3.20-linux-i686-glibc23 /usr/local/mysql
上述命令先創建mysql組和mysql用戶,并且把mysql分配到mysql組,然后將安裝文件解壓,把它放置到/usr/local/mysql目錄。
配置
配置管理節點[192.168.99.80]:
創建以下文件/usr/local/mysql/cluster-conf/config.ini,并且放置如下內容:
- # Options affecting ndbd processes on all data nodes:
- [ndbd default]
- NoOfReplicas=2 # Number of replicas
- DataMemory=80M # How much memory to allocate for data storage
- IndexMemory=18M # How much memory to allocate for index storage
- # For DataMemory and IndexMemory, we have used the
- # default values. Since the "world" database takes up
- # only about 500KB, this should be more than enough for
- # this example Cluster setup.
- # Management process options:
- [ndb_mgmd]
- Id=1
- Hostname=192.168.99.80 # Hostname or IP address of management node
- Datadir=/usr/local/mysql/logs # Directory for management node log files
- # Options for data node "A":
- [ndbd]
- Id=2
- Hostname=192.168.99.89 # Hostname or IP address
- Datadir=/usr/local/mysql/ndbdata # Directory for this data node's data files
- # Options for data node "B":
- [ndbd]
- Id=3
- Hostname=192.168.99.90 # Hostname or IP address
- Datadir=/usr/local/mysql/ndbdata # Directory for this data node's data files
- # SQL node options:
- [mysqld]
- Id=4
- Hostname=192.168.99.88 # Hostname or IP address
- # (additional mysqld connections can be
- # specified for this node for various
- # purposes such as running ndb_restore)
在這個文件里,我們分別給四個節點分配了ID,這有利于更好的管理和區分各個節點。當然,要是不指定,MySQL也會動態分配一個。上述幾個Datadir如果還不存在的需要手動創建。用mkdir –p命令即可。
配置數據節點[192.168.99.89, 192.168.99.90]:
創建/etc/my.cnf文件,內容如下
- # Options for mysqld process:
- [mysqld]
- Datadir=/usr/local/mysql/ndbdata
- ndbcluster # run NDB storage engine
- ndb-connectstring=192.168.99.80 # location of management server
- # Options for ndbd process:
- [mysql_cluster]
- ndb-connectstring=192.168.99.80 # location of management server
配置SQL節點[192.168.99.88]
創建/etc/my.cnf文件,內容如下
- # Options for mysqld process:
- [mysqld]
- ndbcluster # run NDB storage engine
- ndb-connectstring=192.168.99.80 # location of management server
- # Options for ndbd process:
- [mysql_cluster]
- ndb-connectstring=192.168.99.80 # location of management server
- [root@server88 mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --ldata=/usr/local/mysql/data/
- Installing MySQL system tables...
- OK
- Filling help tables...
- OK
到這里,所有配置已經完成了。
啟動
啟動管節點[192.168.99.80]:
- [root@candyshop mysql]# ./bin/ndb_mgmd -f cluster-conf/config.ini
- [root@candyshop mysql]# ./bin/ndb_mgm
- -- NDB Cluster -- Management Client --
- ndb_mgm> show
- Connected to Management Server at: 192.168.99.80:1186
- Cluster Configuration
- ---------------------
- [ndbd(NDB)] 2 node(s)
- id=2 (not connected, accepting connect from 192.168.99.89)
- id=3 (not connected, accepting connect from 192.168.99.90)
- [ndb_mgmd(MGM)] 1 node(s)
- id=1 @192.168.99.80 (mysql-5.1.30 ndb-6.3.20)
- [mysqld(API)] 1 node(s)
- id=4 (not connected, accepting connect from 192.168.99.88)
我們可以看到集群的狀態都還沒有啟動,都是not connected狀態。
- [root@candyshop mysql]# ./bin/ndb_mgmd -f cluster-conf/config.ini
- [root@candyshop mysql]# ./bin/ndb_mgm
- -- NDB Cluster -- Management Client --
- ndb_mgm> show
- Connected to Management Server at: 192.168.99.80:1186
- Cluster Configuration
- ---------------------
- [ndbd(NDB)] 2 node(s)
- id=2 (not connected, accepting connect from 192.168.99.89)
- id=3 (not connected, accepting connect from 192.168.99.90)
- [ndb_mgmd(MGM)] 1 node(s)
- id=1 @192.168.99.80 (mysql-5.1.30 ndb-6.3.20)
- [mysqld(API)] 1 node(s)
- id=4 (not connected, accepting connect from 192.168.99.88)
啟動數據節點[192.168.99.89, 192.168.99.90]:
- [root@server89 ~]#cd /usr/local/mysql
- [root@server89 mysql]#./bin/ndbd
啟動SQL節點[192.168.99.88]:
- [root@server88 mysql]# ./bin/mysqld_safe &
至此,所有節點已經啟動完成,讓我們來查看系統狀態:
- ndb_mgm> show
- Connected to Management Server at: localhost:1186
- Cluster Configuration
- ---------------------
- [ndbd(NDB)] 2 node(s)
- id=2 @192.168.99.89 (mysql-5.1.30 ndb-6.3.20, Nodegroup: 0, Master)
- id=3 @192.168.99.90 (mysql-5.1.30 ndb-6.3.20, Nodegroup: 0)
- [ndb_mgmd(MGM)] 1 node(s)
- id=1 @192.168.99.80 (mysql-5.1.30 ndb-6.3.20)
- [mysqld(API)] 1 node(s)
- id=4 @192.168.99.88 (mysql-5.1.30 ndb-6.3.20)
至此,安裝已經結束
原文鏈接:http://ginge.javaeye.com/blog/320205
【編輯推薦】