mysql叢集執行個體

來源:互聯網
上載者:User

標籤:

原文地址:http://www.it165.net/database/html/201403/5678.html

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

[mysqld]

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配置:

[[email protected] ~]# mkdir /var/log/my-cluster

[[email protected] ~]# 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

[mysqld]

nodeid=2

hostname=192.168.1.20

[mysqld]

nodeid=3

hostname=192.168.1.30

[ndbd]

nodeid=4

hostname=192.168.1.40

datadir=/var/log/mysql-cluster

[ndbd]

nodeid=5

hostname=192.168.1.50

datadir=/var/log/mysql-cluster

[[email protected] ~]#

註:ip地址為192.168.1.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第二步:server2和server3的配置:

[[email protected] ~]# 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

 

[[email protected] ~]# vim /etc/my.cnf

[[email protected] ~]# cat /etc/my.cnf

[mysqld]

ndbcluster

default-storage-engine=ndbcluster

 

[mysql_cluster]

ndb-connectstring=192.168.1.1

[[email protected] ~]#

註:server3和server2配置相同,ip地址為192.168.1.30

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

[[email protected] ~]# 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

[[email protected] ~]# vim /etc/my.cnf

[[email protected] ~]# cat /etc/my.cnf

[mysqld]

datadir=/var/log/mysql-cluster

ndb-connectstring=192.168.1.1

ndbcluster

[mysql_cluster]

ndb-connectstring=192.168.1.1

[[email protected] ~]#

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第四步:

首先啟動管理主機server1

[[email protected] Desktop]# ndb_mgmd -f /etc/my-cluster.ini

MySQL Cluster Management Server mysql-5.6.14 ndb-7.3.3

[[email protected] 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:

[[email protected] 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

[[email protected] Desktop]#

server5:

[[email protected] 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

[[email protected] Desktop]#

 

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

[[email protected] ~]# service mysql restart

Shutting down MySQL.... [ OK ]

Starting MySQL..... [ OK ]

[[email protected] ~]#

[[email protected] Desktop]# service mysql restart

Shutting down MySQL..... [ OK ]

Starting MySQL.... [ OK ]

[[email protected] Desktop]#

 

 

驗證:在server1上通過show命令查看是否串連成功

ndb_mgm> show

Cluster Configuration

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

[ndbd(NDB)] 2 node(s)

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)

 

[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 @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)

 

ndb_mgm>

mysql叢集執行個體

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.