您好,登錄后才能下訂單哦!
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程序,可獨立安裝使用
采用NDB(Network 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>
6、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é)點ndbA的ID標(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é)點sqlA的ID標(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>
2)Sql節(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)掉
免責(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)容。