天天看點

MySQL基礎day07_mysql叢集執行個體-MySQL 5.6

mysql叢集

叢集/群集:用一組伺服器提供相同的服務

LB叢集:負載均衡叢集(多台伺服器共同工作)

HA叢集:高可靠叢集(一個做備用)

一、mysql叢集架構中的主機的角色:

類型

服務程序

主要用途

管理節點

ndb_mgmd

提供叢集配置,啟動或停止節點,

執行備份、群集監控等任務

管理節點必須第一個啟動

資料節點

ndbd (單線程)

ndb_mtd (多線程)

存儲實際的表記錄,可以有多個副本

推薦至少2個資料節點

SQL節點

mysqld

可了解為支援NDB的标準MySQL伺服器,

僅存儲表結構、獨立的使用者授權

面向用戶端提供使用者鑒權、SQL查詢等

通路服務

二、安裝

不需要安裝mysql-server軟體了,是以可以關掉mysql服務

在叢集中的所有主機上安裝mysql-cluster叢集軟體

mysql-cluster軟體提供3種程序:

1,mysqld程序:供使用者通路和執行sql語句

2,資料程序ndbd:存儲資料

3,管理程序mgmd:管理叢集中的所有的主機

三、具體思路:

1,配置管理節點:server1

ip位址:192.168.1.1

mkdir/var/log/my-cluster

vim/etc/my-cluster.ini (該檔案不存在,需要建立)

[ndbd default]                     //設定資料節點的預設參數

NoOfReplicas=2                      //保留2份資料拷貝

DataMemory=80M                     //資料緩存大小

IndexMemory=18M                    //索引緩存大小

[ndb_mgmd]                         //設定管理節點

nodeid=1                           //管理節點的辨別

hostname=192.168.1.1            //管理節點的IP位址

datadir=/var/log/my-cluster     //工作目錄

[mysqld]                        //設定SQL節點server1

nodeid=2                        //ID辨別

hostname=192.168.1.20           //此節點的IP位址

[mysqld]                       //設定SQL節點server2

nodeid=3

hostname=192.168.1.30

[ndbd]                      //設定資料節點server4

nodeid=4                        //ID辨別

hostname=192.168.1.40           //此節點的IP位址

datadir=/var/log/mysql-cluster      //工作目錄

[ndbd]                      //設定資料節點server5

nodeid=5

hostname=192.168.1.50

datadir=/var/log/mysql-cluster

2,配置sql節點(server2,server3)

編輯sql節點的配置檔案/etc/my.cnf(本身不存在,需要建立)

vim  /etc/my.cnf

[mysqld]

ndbcluster                          //使用ndb叢集引擎

default-storage-engine=ndbcluster   //設定預設引擎

[mysql_cluster]

ndb-connectstring=192.168.1.1     //指定管理節點ip位址

server3上配置和server2相同

3,配置資料節點(server4,server5)

首先建立server1上配置檔案指定的檔案夾:

mkdir/var/log/mysql-cluster

然後給資料節點編輯配置檔案(/etc/my.cnf   本身不存在,需要建立)

vim /etc/my.cnf

datadir=/var/log/mysql-cluster  //工作目錄,在管理節點上配置檔案指定的那個目錄

ndb-connectstring=192.168.1.1       //管理本台主機的ip位址

ndbcluster                          //使用ndb叢集存儲引擎為ndbcluster

[mysql_cluster]                    //指定管理叢集的主機

ndb-connectstring=192.168.1.1       //指定管理叢集的ip位址

注:server4和server5上的配置一樣

4,初始化授權庫

5,啟動所有server的服務

第一個:先啟動管理主機上的管理程序

在server1上:

ndb_mgmd -f /etc/my-cluster.ini  //啟動管理程序的時候加載配置檔案my-cluster.ini

ndb_mgm            //登入

show         //檢視急群衆所有主機的狀态

關閉該程序使用:pkill-9 ndbd_mgmd

第二個:啟動資料節點主機上的ndbd程序(server4、server5)

在server4和server5上:

ndbd        //開啟ndbd程序

如果想要關閉,使用kill殺死程序号或pkill殺死ndbd程序

第三個:啟動sql節點(server2,server3)

啟動mysql服務

service mysql start

MySQL叢集配置示例:

環境:

server1:192.168.1.1

server2:192.168.1.20

server3:192.168.1.30

server4:192.168.1.40

server5:192.168.1.50

第一步:server1配置:

[root@server1  ~]# mkdir /var/log/my-cluster

[root@server1  ~]# cat /etc/my-cluster.ini

[ndbd  default]      

NoOfReplicas=2  

DataMemory=80M  

IndexMemory=18M  

[ndb_mgmd]

nodeid=1            

hostname=192.168.1.1  

datadir=/var/log/my-cluster  

nodeid=2                        

hostname=192.168.1.20  

nodeid=3                        

[ndbd]  

nodeid=4                        

hostname=192.168.1.40          

datadir=/var/log/mysql-cluster  

nodeid=5                        

hostname=192.168.1.50          

[root@server1  ~]#

注:ip位址為192.168.1.1

第二步:server2和server3的配置:

[root@server2  ~]# ifconfig | grep addr

eth1      Link encap:Ethernet  HWaddr 00:0C:29:22:B2:31  

         inet addr:192.168.1.20   Bcast:192.168.1.255  Mask:255.255.255.0

         inet6 addr:  fe80::20c:29ff:fe22:b231/64 Scope:Link

         inet addr:127.0.0.1  Mask:255.0.0.0

         inet6 addr: ::1/128 Scope:Host

[root@server2  ~]# vim /etc/my.cnf

[root@server2  ~]# cat /etc/my.cnf

ndbcluster          

default-storage-engine=ndbcluster

ndb-connectstring=192.168.1.1

[root@server2  ~]#

注:server3和server2配置相同,ip位址為192.168.1.30

第三步:server4和server5上的配置:

[root@server4  ~]# ifconfig | head -2

eth1      Link encap:Ethernet  HWaddr 00:0C:29:B6:6A:99  

         inet addr:192.168.1.40  Bcast:192.168.1.255  Mask:255.255.255.0

[root@server4  ~]# vim /etc/my.cnf

[root@server4  ~]# cat /etc/my.cnf

ndbcluster              

[root@server4  ~]#

第四步:

首先啟動管理主機server1

[root@server1  Desktop]# ndb_mgmd -f /etc/my-cluster.ini

MySQL  Cluster Management Server mysql-5.6.14 ndb-7.3.3

[root@server1  Desktop]# ndb_mgm

-- NDB  Cluster -- Management Client --

ndb_mgm>  show

Connected to  Management Server at: localhost:1186

Cluster  Configuration

---------------------

[ndbd(NDB)] 2 node(s)

id=4 (not  connected, accepting connect from 192.168.1.40)

id=5 (not  connected, accepting connect from 192.168.1.50)

[ndb_mgmd(MGM)] 1 node(s)

id=1    @192.168.1.1  (mysql-5.6.14 ndb-7.3.3)

[mysqld(API)]   2 node(s)

id=2 (not connected,  accepting connect from 192.168.1.20)

id=3 (not  connected, accepting connect from 192.168.1.30)

ndb_mgm>

然後再server4和server5上啟動ndbd程序

server4:

[root@server4  Desktop]# ndbd

2014-03-21  18:35:42 [ndbd] INFO     -- Angel  connected to '192.168.1.1:1186'

2014-03-21  18:35:42 [ndbd] INFO     -- Angel  allocated nodeid: 4

[root@server4  Desktop]#

server5:

[root@server5  Desktop]# ndbd

2014-03-21  19:57:10 [ndbd] INFO     -- Angel  connected to '192.168.1.1:1186'

2014-03-21  19:57:10 [ndbd] INFO     -- Angel allocated nodeid: 5

[root@server5  Desktop]#

最後在server2和server3上開啟mysql服務:

[root@server2  ~]# service mysql restart

Shutting  down MySQL....                                    [  OK  ]

Starting  MySQL.....                                        [  OK  ]

[root@server3  Desktop]# service mysql restart

Shutting  down MySQL.....                                   [  OK  ]

Starting  MySQL....                                          [  OK  ]

[root@server3  Desktop]#

驗證:在server1上通過show指令檢視是否連接配接成功

ndb_mgm> show

id=4    @192.168.1.40  (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0, *)

id=5    @192.168.1.50  (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0)

id=2    @192.168.1.20  (mysql-5.6.14 ndb-7.3.3)

id=3    @192.168.1.30  (mysql-5.6.14 ndb-7.3.3)

本文轉自 murongqingqqq  51CTO部落格,原文連結:http://blog.51cto.com/murongqingqqq/1381923