溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用MySQL-Cluster搭建MySQL數(shù)據(jù)庫集群

發(fā)布時間:2020-08-10 12:03:52 來源:網(wǎng)絡(luò) 閱讀:3722 作者:zl_Linux 欄目:數(shù)據(jù)庫

1、MySQL集群的作用:

- 解決訪問節(jié)點的單點故障

- 數(shù)據(jù)存儲節(jié)點的單點故障

- 解決數(shù)據(jù)存儲節(jié)點數(shù)據(jù)備份問題

2、集群:

使用一組服務(wù)器提供相同的服務(wù)

3、關(guān)于MySQL-Cluster:

MySQL官方提供的集群版本

已集成標(biāo)準(zhǔn)版MySQL程序,可獨立安裝使用

采用NDBNetwork DataBase)引擎

假定每個節(jié)點都有獨立內(nèi)存、硬盤

利用廉價硬件減少整個數(shù)據(jù)庫的單點故障

4、集群中服務(wù)器的角色

- 數(shù)據(jù)節(jié)點:ndbd(單線程) ndb_mtd(多線程)   存儲數(shù)據(jù)的(表里的記錄)

- Sql節(jié)點:mysqld  是客戶端訪問數(shù)據(jù)的接口,負(fù)責(zé)執(zhí)行SQL命令

可理解為支持NDB的標(biāo)準(zhǔn)MySQL服務(wù)器,僅存儲表結(jié)構(gòu)、獨立的用戶授權(quán)

面向客戶端提供用戶鑒權(quán)、SQL查詢等訪問服務(wù)

- 管理節(jié)點:ndb_mgmd  管理集群中的所有服務(wù)器

客戶端:client 訪問數(shù)據(jù)

5、案例拓?fù)洌?/span>

使用MySQL-Cluster搭建MySQL數(shù)據(jù)庫集群

6使用MySQL-Cluster搭建MySQL數(shù)據(jù)庫集群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)配置管理節(jié)點

運行管理進程   ndb_mgmd

配置文件  /etc/config.ini   (服務(wù)器的角色  和角色對應(yīng)的ip  id   工作目錄)

[ndbd default] :數(shù)據(jù)節(jié)點的公共配置

[ndb_mgmd] :指定管理節(jié)點

[ndbd] :指定數(shù)據(jù)節(jié)點

[mysqld] :指定sql節(jié)點

# mkdir  -p    /var/log/mysql-cluster   //創(chuàng)建工作目錄

# vim /etc/config.ini   //編寫主配置文件

[ndbd default]                  

NoOfReplicas=2       //保留2份數(shù)據(jù)拷貝

DataMemory=80M     //數(shù)據(jù)緩存大小

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

[ndb_mgmd]

nodeid=7      //管理節(jié)點的ID標(biāo)識

hostname=192.168.4.100   //管理節(jié)點的IP地址

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

[ndbd]           //設(shè)置數(shù)據(jù)節(jié)點ndbA

nodeid=8      //數(shù)據(jù)節(jié)點ndbAID標(biāo)識

hostname=192.168.4.30     //此節(jié)點的IP地址

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

[ndbd]         //設(shè)置數(shù)據(jù)節(jié)點ndbB

nodeid=9

hostname=192.168.4.40

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

[mysqld]      //設(shè)置sql節(jié)點sqlA

nodeid=10      //sql節(jié)點sqlAID標(biāo)識

hostname=192.168.4.10     //此節(jié)點的IP地址

[mysqld]      //設(shè)置sql節(jié)點sqlB

nodeid=11

hostname=192.168.4.20

:wq

3)配置數(shù)據(jù)節(jié)點

運行數(shù)據(jù)進程   ndbd

配置文件:  /etc/my.cnf

#mkdir -p   /var/log/mysql-cluster/data    //創(chuàng)建工作目錄

#vim    /etc/my.cnf

[mysqld]

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

ndb-connectstring=192.168.4.100    //管理節(jié)點IP地址

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

[mysql_cluster]

ndb-connectstring=192.168.4.100   //如何連接管理節(jié)點

:wq

4)配置sql節(jié)點

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

#vim   /etc/my.cnf

[mysqld]

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

default-storage-engine=ndbcluster    //指定表的默認(rèn)存儲引擎是 ndbcluster         

ndb-connectstring=192.168.4.100

[mysql_cluster]

ndb-connectstring=192.168.4.100     //如何連接管理節(jié)點

:wq

7、啟動不同角色服務(wù)器上進程

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

#ndb_mgmd  -f  /etc/config.ini    

 //啟動進程,結(jié)合-f選項讀取.ini配置;默認(rèn)后臺模式,調(diào)試時可加--nodaemon;修改了配置以后,可加--initial重新初始化

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

#pkill  -9   ndb_mgmd      //殺死進程

2依次啟動數(shù)據(jù)節(jié)點上的數(shù)據(jù)進程

#ndbd  

//首次執(zhí)行時,可加--initial初始化;多個數(shù)據(jù)節(jié)點的操作相同

3依次啟動sql節(jié)點上的數(shù)據(jù)庫服務(wù)

#service   mysql start   //多個sql節(jié)點的操作相同

8、查看集群狀態(tài)

1)管理節(jié)點上登錄管理界面,查看狀態(tài)

#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>

2Sql節(jié)點的mysql初始化

重設(shè)root密碼;為客戶端訪問添加用戶授權(quán)

#service mysqlstart

#mysql -uroot -p初始密碼    //初始密碼見/root/.mysql_secret文件

3)在sql節(jié)點上,檢查默認(rèn)的存儲引擎

Mysql>show engines;

9、測試訪問節(jié)點的單點故障

sql節(jié)點上授權(quán)可以從遠端的客戶機連接自己

Grant all on  webdb.* to webuser@”%”identified by “webuser88”;  //兩個sql節(jié)點都做授權(quán)

客戶端訪問:#mysql-h292.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節(jié)點操縱數(shù)據(jù),在sqlB上會同步結(jié)果。

10、測試數(shù)據(jù)節(jié)點的單點故障

數(shù)據(jù)節(jié)點之間可以互相備份,自動選舉Master,自動同步數(shù)據(jù)。測試時可關(guān)掉一個數(shù)據(jù)節(jié)點的ndbd服務(wù),插入、查詢數(shù)據(jù)驗證數(shù)據(jù)的同步性。


Sql節(jié)點和數(shù)據(jù)節(jié)點的進程正常運行后,不需要重啟的話,管理節(jié)點可以關(guān)掉


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI