雙機冗餘備份和負載平衡策略(Mysql Cluster入門安裝配置指南)

來源:互聯網
上載者:User

標籤:

MySQL Cluster 是MySQL適合於分散式運算環境的高實用、高冗餘版本。它採用了NDB Cluster 儲存引擎,允許在1個 Cluster 中運行多個MySQL伺服器。MySQL Cluster 是一種技術,該技術允許在無共用的系統中部署“記憶體中”資料庫的 Cluster 。通過無共用體繫結構,系統能夠使用廉價的硬體,而且對軟硬體無特殊要求。此外,由於每個組件有自己的記憶體和磁碟,不存在單點故障。

首先我們下載Mysql Cluster,下載連結地址為MySQL Cluster 7.1.17,我們採用的伺服器為CentOS Server和Ubuntu Server,所以我們下載針對Linux Generic版本。

現在我有三台伺服器,兩個是CentOS Server,一個是Ubuntu Server,前兩個Server分別作為Data Node和SQL Node(Data Node和SQL Node在同一個機器上面),

後者作為Management Node,如果沒有真實機器的,可以用虛擬機器類比,下面是我的IP部署:

1 192.168.56.10     Data Node + Sql Node
2 192.168.56.20 Data Node +Sql Node
3 192.168.56.30 Management Node

下面是我機器的大致拓撲圖結構:

接下來我們就需要對這幾個節點進行詳細的配置工作:

1、配置Data Node和SQL Node

目前我們採用的三台機器策略,所以把這兩個節點放在同一個機器上面,所以我們在一次配置就可以了。

首先我們在192.168.56.10這台機器上面進行操作配置,192.168.56.20操作配置和這樣

我們需要在ROOT賬戶下面執行下屬操作,如果在CentOS中遇到命令找不到的問題,就參考我的BlogCentOS系統bash: groupadd: command not found問題

接下來我們要建立一個新的使用者組和使用者,命令如下:

1 groupadd mysql
2 useradd –g mysql mysql

將mysql cluster放在/usr/local/下面,執行命令:

1 tar -C /usr/local -xzvf mysql-cluster-gpl-7.1.17-linux-i686-glibc23.tar.gz
2 ln -s /usr/local/mysql-cluster-gpl-7.1.17-linux-i686-glibc23 /usr/local/mysql

進入到mysql目錄下面,執行資料庫初始化命令:

1 scripts/mysql_install_db --user=mysql

進行許可權更改操作,命令為:

1 chown -R root .
2 chown -R mysql data
3 chgrp -R mysql .

2、配置Management Node

將ndb_mgmd和ndb_mgm指令檔放入到/usr/local/bin目錄下面,命令為:

1 tar -zxvf mysql-5.1.56-ndb-7.1.17-linux-i686-glibc23.tar.gz
2 cd mysql-5.1.56-ndb-7.1.17-linux-i686-glibc23
3 cp bin/ndb_mgm* /usr/local/bin

更改其對應的許可權,命令為:

1 cd /usr/local/bin
2 chmod +x ndb_mgm*

建立目錄/var/lib/mysql-cluster/,命令為:

mkdir -p /var/lib/mysql-cluster/

3、配置三台機器的設定檔

兩台資料節點的在/etc目錄下面建立設定檔my.cnf,其內容為:

[mysqld]
ndbcluster
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
port=3306
[mysql_cluster]
ndb-connectstring=192.168.56.10

如果在運行過程中出現Mysql資料庫“Communications link failure due to underlying exception”問題,請參考這邊博文進行配置。

針對192.168.56.20機器只要把ndb-connectstring替換一下就行了。

在管理節點機器/etc目錄下面建立config.ini檔案,其內容為:

 1 [ndbd default]
2 NoOfReplicas=2
3 DataMemory=80M
4 IndexMemory=18M
5
6 [ndb_mgmd]
7 NodeId=1
8 hostname=192.168.56.30
9 datadir=/var/lib/mysql-cluster
10
11 [ndbd]
12 NodeId=2
13 hostname=192.168.56.10
14 datadir=/usr/local/mysql/data
15
16 [ndbd]
17 NodeId=3
18 hostname=192.168.56.20
19 datadir=/usr/local/mysql/data
20
21 [mysqld]
22 [mysqld]

4、啟動叢集環境

首先我們需要先啟動管理節點192.168.56.30機器,執行命令:

1 ndb_mgmd -f /etc/config.ini --initial

如果出現The default config directory ‘/usr/local/mysql/mysql-cluster‘ does not exist這個錯誤資訊,就手動建立這個檔案夾。

接下來我們需要在192.168.56.10和192.168.56.20啟動資料節點,命令為:

1 bin/ndbd --initial

第一次啟用需要加—initial參數,第二次啟動不能加這個參數。兩台機器都分別執行這個命令。

接下來啟動這兩台機器的sql節點,命令為:

1 bin/mysqld_safe --user=mysql &

兩台機器都需要執行這個命令。
最後進入到管理台查看我們的叢集是否配置完成,輸入命令:

1 ndb_mgm –e show

如果出現下面資訊,說明配置成功:

如果看不到上述資訊,可能是防火牆問題,你可以選擇把CentOS的防火牆關掉,命令為:

1 /etc/init.d/iptables stop

當然你可以選擇配置防火牆,開放一些必要的連接埠,可以參考我的另一篇文章CentOS 開啟3306連接埠

關閉叢集,執行命令:

1 ndb_mgm –e shutdown

雙機冗餘備份和負載平衡策略(Mysql Cluster入門安裝配置指南)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.