使用MySQL-Cluster搭建MySQL資料庫叢集

來源:互聯網
上載者:User

標籤:mysql-cluster

1、MySQL叢集的作用:

- 解決訪問節點的單點故障

- 資料存放區節點的單點故障

- 解決資料存放區節點資料備份問題

2、叢集:

使用一組伺服器提供相同的服務

3、關於MySQL-Cluster:

MySQL官方提供的叢集版本

已整合標準版MySQL程式,可獨立安裝使用

採用NDB(Network DataBase)引擎

假定每個節點都有獨立記憶體、硬碟

利用廉價硬體減少整個資料庫的單點故障

4、叢集中伺服器的角色

- 資料節點:ndbd(單線程) ndb_mtd(多線程)   儲存資料的(表裡的記錄)

- Sql節點:mysqld  是用戶端訪問資料的介面,負責執行SQL命令

可理解為支援NDB的標準MySQL伺服器,僅儲存表結構、獨立的使用者授權

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

- 管理節點:ndb_mgmd  管理叢集中的所有伺服器

用戶端:client 訪問資料

5、案例拓撲:

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/82/D7/wKioL1diZQbROH8sAAJm9-ucjMk347.png-wh_500x0-wm_3-wmp_4-s_4123782686.png" title="1.png" alt="wKioL1diZQbROH8sAAJm9-ucjMk347.png-wh_50" />

6、650) this.width=650;" width="1" height="1" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/themes/default/images/word.gif") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />MySQL叢集的搭建(配置)

1)公用配置

# rpm -qa | grep -i mysql

# service mysql  stop ; chkconfig  mysql off

# rpm -e --nodeps MySQL-devel MySQL-embeddedMySQL-test MySQL-server MySQL-client MySQL-shared MySQL-shared-compat 

//保留RHEL內建的mysql-libs包

# rm -rf  /etc/my.cnf

# rm -rf  /var/lib/mysql/*

# tar -xvfMySQL-Cluster-gpl-7.3.3-1.el6.x86_64.rpm-bundle.tar

# rpm -Uvh MySQL-Cluster-*.rpm

2)組態管理節點

運行管理進程   ndb_mgmd

設定檔  /etc/config.ini   (伺服器的角色  和角色對應的ip  id號   工作目錄)

[ndbd default] :資料節點的公用配置

[ndb_mgmd] :指定管理節點

[ndbd] :指定資料節點

[mysqld] :指定sql節點

# mkdir  -p    /var/log/mysql-cluster   //建立工作目錄

# vim /etc/config.ini   //編寫主設定檔

[ndbd default]                  

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

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

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

[ndb_mgmd]

nodeid=7      //管理節點的ID標識

hostname=192.168.4.100   //管理節點的IP地址

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

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

nodeid=8      //資料節點ndbA的ID標識

hostname=192.168.4.30     //此節點的IP地址

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

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

nodeid=9

hostname=192.168.4.40

datadir=/var/log/mysql-cluster/data

[mysqld]      //設定sql節點sqlA

nodeid=10      //sql節點sqlA的ID標識

hostname=192.168.4.10     //此節點的IP地址

[mysqld]      //設定sql節點sqlB

nodeid=11

hostname=192.168.4.20

:wq

3)配置資料節點

運行資料進程   ndbd

設定檔:  /etc/my.cnf

#mkdir -p   /var/log/mysql-cluster/data    //建立工作目錄

#vim    /etc/my.cnf

[mysqld]

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

ndb-connectstring=192.168.4.100    //管理節點IP地址

ndbcluster                     //指定使用ndbcluster叢集儲存引擎

[mysql_cluster]

ndb-connectstring=192.168.4.100   //如何串連管理節點

:wq

4)配置sql節點

運行mysql服務  mysql(此服務是由mysql-cluster軟體包提供)

#vim   /etc/my.cnf

[mysqld]

ndbcluster                                //指定使用ndbcluster叢集儲存引擎

default-storage-engine=ndbcluster    //指定表的預設儲存引擎是 ndbcluster         

ndb-connectstring=192.168.4.100

[mysql_cluster]

ndb-connectstring=192.168.4.100     //如何串連管理節點

:wq

7、啟動不同角色服務器上進程

1)  啟動管理節點上的管理進程 

#ndb_mgmd  -f  /etc/config.ini    

 //啟動進程,結合-f選項讀取.ini配置;預設後台模式,調試時可加--nodaemon;修改了配置以後,可加--initial重新初始化

#netstat -untlap  |  grep   :1186    //查看進程

#pkill  -9   ndb_mgmd      //殺死進程

2)依次啟動資料節點上的資料進程

#ndbd  

//首次執行時,可加--initial初始化;多個資料節點的操作相同

3)依次啟動sql節點上的資料庫服務

#service   mysql start   //多個sql節點的操作相同

8、查看叢集狀態

1)管理節點上登入管理介面,查看狀態

#ndb_mgm

ndb_mgm> show

Cluster Configuration

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

[ndbd(NDB)]  2node(s)

id=8 @192.168.4.30  (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0, *)

id=9 @192.168.4.40  (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0)

 

[ndb_mgmd(MGM)]      1 node(s)

id=7 @192.168.4.100  (mysql-5.6.14 ndb-7.3.3)

 

[mysqld(API)]       2 node(s)

id=10      @192.168.4.10  (mysql-5.6.14 ndb-7.3.3)

id=11      @192.168.4.20  (mysql-5.6.14 ndb-7.3.3)

 

ndb_mgm>

2)Sql節點的mysql初始化

重設root密碼;為用戶端訪問添加使用者授權

#service mysqlstart

#mysql -uroot -p初始密碼    //初始密碼見/root/.mysql_secret檔案

3)在sql節點上,檢查預設的儲存引擎

Mysql>show engines;

9、測試訪問節點的單點故障

在sql節點上授權可以從遠端的客戶機串連自己

Grant all on  webdb.* to [email protected]”%”identified by “webuser88”;  //兩個sql節點都做授權

用戶端訪問:#mysql-h192.168.10/20  -uwebuser -pwebuser88

mysql>create  database  webdb;

mysql>create  table webdb.a(id int);

mysql>insert   into webdb.a values(1000);

mysql> select  * from webdb.a ;

訪問sqlA節點操縱資料,在sqlB上會同步結果。

10、測試資料節點的單點故障

資料節點之間可以互相備份,自動選舉Master,自動同步資料。測試時可關掉一個資料節點的ndbd服務,插入、查詢資料驗證資料的同步性。


Sql節點和資料節點的進程正常運行後,不需要重啟的話,管理節點可以關掉


本文出自 “IT技術學習” 部落格,請務必保留此出處http://learningit.blog.51cto.com/9666723/1789961

使用MySQL-Cluster搭建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.