成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何實(shí)現(xiàn)MysqlCluster的環(huán)境搭建-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比福貢網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式福貢網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋福貢地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。

本文主要給大家介紹如何實(shí)現(xiàn)Mysql Cluster 的環(huán)境搭建,希望可以給大家補(bǔ)充和更新些知識(shí),如有其它問(wèn)題需要了解的可以持續(xù)在創(chuàng)新互聯(lián)行業(yè)資訊里面關(guān)注我的更新文章的。

MySQL Cluster 介紹

    MySQL Cluster是一個(gè)基于NDB Cluster存儲(chǔ)引擎的完整的分布式數(shù)據(jù)庫(kù)系統(tǒng)。不僅僅具有高可用性,而且可以自動(dòng)切分?jǐn)?shù)據(jù),冗余數(shù)據(jù)等高級(jí)功能。和Oracle Real Cluster Application不太一樣的是,MySQL Cluster 是一個(gè)Share Nothing的架構(gòu),各個(gè)MySQL Server之間并不共享任何數(shù)據(jù),高度可擴(kuò)展以及高度可用方面的突出表現(xiàn)是其大的特色。

   簡(jiǎn)單的說(shuō),MySQL Cluster 實(shí)際上是在無(wú)共享存儲(chǔ)設(shè)備的情況下實(shí)現(xiàn)的一種完全分布式數(shù)據(jù)庫(kù)系統(tǒng),其主要通過(guò) NDB Cluster(簡(jiǎn)稱 NDB)存儲(chǔ)引擎來(lái)實(shí)現(xiàn)。MySQL Cluster 剛剛誕生的時(shí)候可以說(shuō)是一個(gè)可以對(duì)數(shù)據(jù)進(jìn)行持久化的內(nèi)存數(shù)據(jù)庫(kù),所有數(shù)據(jù)和索引都必須裝載在內(nèi)存中才能夠正常運(yùn)行,但是現(xiàn)在的MySQL Cluster 版本分為內(nèi)存表和磁盤表,內(nèi)存表,所有數(shù)據(jù)加載到內(nèi)存中運(yùn)行,磁盤表僅僅將主鍵,索引字段裝載在內(nèi)存中,其他字段存放在磁上。如何實(shí)現(xiàn)Mysql Cluster 的環(huán)境搭建

一個(gè) MySQL Cluster 的環(huán)境主要由以下三部分組成:

(1)負(fù)責(zé)管理各個(gè)節(jié)點(diǎn)的 Manage 節(jié)點(diǎn)主機(jī);管理節(jié)點(diǎn)負(fù)責(zé)整個(gè)Cluster集群中各個(gè)節(jié)點(diǎn)的管理工作,包括集群的配置,啟動(dòng)關(guān)閉各節(jié)點(diǎn),對(duì)各個(gè)節(jié)點(diǎn)進(jìn)行常規(guī)維護(hù),以及實(shí)施數(shù)據(jù)的備份恢復(fù)等。管理節(jié)點(diǎn)會(huì)獲取整個(gè)Cluster環(huán)境中各節(jié)點(diǎn)的狀態(tài)和錯(cuò)誤信息,并且將各 Cluster 集群中各個(gè)節(jié)點(diǎn)的信息反饋給整個(gè)集群中其他的所有節(jié)點(diǎn)。由于管理節(jié)點(diǎn)上保存了整個(gè)Cluster 環(huán)境的配置,同時(shí)擔(dān)任了集群中各節(jié)點(diǎn)的基本溝通工作,所以他必須是最先被啟動(dòng)的節(jié)點(diǎn)。

(2)Storage 層的 NDB 數(shù)據(jù)節(jié)點(diǎn);也就是上面說(shuō)的NDB Cluster。最初的NDB是一個(gè)內(nèi)存式存儲(chǔ)引擎,當(dāng)然也會(huì)將數(shù)據(jù)持久化到存儲(chǔ)設(shè)備上。但是最新的NDB Cluster存儲(chǔ)引擎已經(jīng)改進(jìn)了這一點(diǎn),可以選擇數(shù)據(jù)是全部加載到內(nèi)存中還是僅僅加載索引數(shù)據(jù)。NDB 節(jié)點(diǎn)主要是實(shí)現(xiàn)底層數(shù)據(jù)存儲(chǔ)功能,來(lái)保存Cluster 的數(shù)據(jù)。每一個(gè)Cluster節(jié)點(diǎn)保存完整數(shù)據(jù)的一個(gè)fragment,也就是一個(gè)數(shù)據(jù)分片(或者一份完整的數(shù)據(jù),視節(jié)點(diǎn)數(shù)目和配置而定),所以只要配置得當(dāng),MySQL Cluster在存儲(chǔ)層不會(huì)出現(xiàn)單點(diǎn)的問(wèn)題。一般來(lái)說(shuō),NDB 節(jié)點(diǎn)被組織成一個(gè)一個(gè)的NDB Group,一個(gè) NDB Group實(shí)際上就是一組存有完全相同的物理數(shù)據(jù)的NDB節(jié)點(diǎn)群。

上面提到了NDB 各個(gè)節(jié)點(diǎn)對(duì)數(shù)據(jù)的組織,可能每個(gè)節(jié)點(diǎn)都存有全部的數(shù)據(jù)也可能只保存一部分?jǐn)?shù)據(jù),主要是受節(jié)點(diǎn)數(shù)目和參數(shù)來(lái)控制的。首先在 MySQL Cluster主配置文件(在管理節(jié)點(diǎn)上面,一般為 config.ini)中,有一個(gè)非常重要的參數(shù)叫NoOfReplicas,這個(gè)參數(shù)指定了每一份數(shù)據(jù)被冗余存儲(chǔ)在不同節(jié)點(diǎn)上面的份數(shù),該參數(shù)一般至少應(yīng)該被設(shè)置成2,也只需要設(shè)置成2就可以了。因?yàn)檎?lái)說(shuō),兩個(gè)互為冗余的節(jié)點(diǎn)同時(shí)出現(xiàn)故障的概率還是非常小的,當(dāng)然如果機(jī)器和內(nèi)存足夠多的話,也可以繼續(xù)增大來(lái)更進(jìn)一步減小出現(xiàn)故障的概率。此外,一個(gè)節(jié)點(diǎn)上面是保存所有的數(shù)據(jù)還是一部分?jǐn)?shù)據(jù)還受到存儲(chǔ)節(jié)點(diǎn)數(shù)目的限制。NDB 存儲(chǔ)引擎首先保證NoOfReplicas參數(shù)配置的要求來(lái)使用存儲(chǔ)節(jié)點(diǎn),對(duì)數(shù)據(jù)進(jìn)行冗余,然后再根據(jù)節(jié)點(diǎn)數(shù)目將數(shù)據(jù)分段來(lái)繼續(xù)使用多余的NDB節(jié)點(diǎn)。分段的數(shù)目為節(jié)點(diǎn)總數(shù)除以NoOfReplicas 所得。

(3)SQL 層的 SQL 云服務(wù)器節(jié)點(diǎn)(后面簡(jiǎn)稱為 SQL 節(jié)點(diǎn));也就是我們常說(shuō)的MySQL Server。主要負(fù)責(zé)實(shí)現(xiàn)一個(gè)數(shù)據(jù)庫(kù)在存儲(chǔ)層之上的所有事情,比如連接管理,Query 優(yōu)化和響應(yīng) ,Cache 管理等等,只有存儲(chǔ)層的工作交給了NDB 數(shù)據(jù)節(jié)點(diǎn)去處理了。也就是說(shuō),在純粹的MySQL Cluster 環(huán)境中的SQL 節(jié)點(diǎn),可以被認(rèn)為是一個(gè)不需要提供任何存儲(chǔ)引擎的MySQL服務(wù)器,因?yàn)樗拇鎯?chǔ)引擎有Cluster 環(huán)境中的NDB 節(jié)點(diǎn)來(lái)?yè)?dān)任。所以,SQL 層各MySQL服務(wù)器的啟動(dòng)與普通的MySQL Server 啟動(dòng)也有一定的區(qū)別,必須要添加ndbcluster參數(shù)選項(xiàng)才行。我們可以添加在my.cnf配置文件中,也可以通過(guò)啟動(dòng)命令行來(lái)指定。

MySQL Cluster 環(huán)境搭建

搭建 MySQL Cluster首先需要至少一個(gè)管理節(jié)點(diǎn)主機(jī)來(lái)實(shí)現(xiàn)管理功能,一個(gè)SQL節(jié)點(diǎn)主機(jī)來(lái)實(shí)現(xiàn)MySQL server功能和兩個(gè)ndb節(jié)點(diǎn)主機(jī)實(shí)現(xiàn)NDB Cluster的功能。我在這里測(cè)試使用雙SQL節(jié)點(diǎn)來(lái)搭建測(cè)試環(huán)境,具體信息如下:

1、服務(wù)器準(zhǔn)備

192.168.1.2    管理節(jié)點(diǎn)

192.168.1.3   mysql節(jié)點(diǎn),ndb節(jié)點(diǎn)

192.168.1.4   mysql節(jié)點(diǎn),ndb節(jié)點(diǎn)

我這兒把mysq節(jié)點(diǎn)l和ndb數(shù)據(jù)節(jié)點(diǎn)放在一臺(tái)機(jī)器上面

2、軟件安裝

測(cè)試環(huán)境(3臺(tái)服務(wù)器均一樣,不是必須的,但ndb節(jié)點(diǎn)最好一樣,不一樣的話,內(nèi)存要配一樣大,服務(wù)器均已關(guān)閉iptables,生產(chǎn)環(huán)境請(qǐng)自行開(kāi)放相關(guān)端口)

安裝 MySQL 節(jié)點(diǎn):

sql節(jié)點(diǎn)1: 192.168.1.3
sql節(jié)點(diǎn)2: 192.168.1.4

下載安裝包:mysql-cluster-gpl-7.6.4-linux-glibc2.12-x86_64.tar.gz ,我這里使用二進(jìn)制編譯好了的,也可以自己下載源碼包編譯。這里操作一臺(tái)SQL節(jié)點(diǎn)服務(wù)器,另外一臺(tái)SQL節(jié)點(diǎn)服務(wù)器也是相同的,都執(zhí)行如下安裝步驟。

wget *.*.*/mysql-cluster-gpl-7.6.4-linux-glibc2.12-x86_64.tar.gz

[root@192.168.1.2 src]# groupadd mysql
[root@192.168.1.2 src]# useradd -r -g mysql mysql
[root@192.168.1.2 src]# tar –zvxf mysql-cluster-gpl-7.6.4-linux-glibc2.12-x86_64.tar.gz

[root@192.168.1.2 src]# mv mysql-cluster-gpl-7.6.4-linux-glibc2.12-x86_64 /usr/local/mysql
[root@192.168.1.2 src]# cd /usr/local/mysql
[root@192.168.1.2 mysql]# chown -R mysql .
[root@192.168.1.2 mysql]# mkdir /data/
[root@192.168.1.2 mysql]# chown -R mysql.mysql /data
[root@192.168.1.2 mysql]# /usr/local/mysql/bin/mysqld –initialize --user=mysql --datadir=/data/ --basedir=/usr/local/mysql

[root@192.168.1.2 mysql]# cp support-files/mysql.server   /etc/init.d/mysql
[root@192.168.1.2]# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /root/.bash_profile      #添加環(huán)境變量
[root@192.168.1.2 mysql]# source /root/.bash_profile
修改/etc/my.cnf配置文件,追加如下配置

[mysqld]
datadir=/data/
basedir= /usr/local/mysql
ndbcluster                                       # 運(yùn)行NDB存儲(chǔ)引擎
ndb-connectstring=192.168.1.2      # 管理節(jié)點(diǎn)
[MYSQL_CLUSTER]
ndb-connectstring=192.168.1.2     #管理節(jié)點(diǎn)

NDB節(jié)點(diǎn)安裝(數(shù)據(jù)節(jié)點(diǎn))

因?yàn)槲业臄?shù)據(jù)節(jié)點(diǎn)和SQL節(jié)點(diǎn)在一起,所以就不需要安裝了。如果ndb數(shù)據(jù)節(jié)點(diǎn)和SQL節(jié)點(diǎn)是分開(kāi)的,那安裝方法和SQL節(jié)點(diǎn)安裝方法一樣。也是需要配置my.cnf的。

安裝管理節(jié)點(diǎn)

管理節(jié)點(diǎn)所需要的安裝更簡(jiǎn)單,實(shí)際上只需要 ndb_mgm 和ndb_mgmd兩個(gè)程序即可,這兩個(gè)可執(zhí)行程序可以在上面的MySQL節(jié)點(diǎn)的MySQL安裝目錄中的bin目錄下面找到。將這兩個(gè)程序copy到管理節(jié)點(diǎn)上面合適的位置(自行考慮,我一般會(huì)放在/usr/local/mysql/bin下面)并且添加環(huán)境變量就可以了。(另外也可以將ndb_config 、ndb_perror 復(fù)制過(guò)來(lái),ndb_config -q MaxNoOfAttributes #查看變量修改是否生效;ndb_perror --ndb 2308 2308為錯(cuò)誤代碼)

1.在/usr/local/創(chuàng)建目錄mysql-cluster,該目錄會(huì)存放相關(guān)日志文件,以及pid號(hào)。并在目錄中創(chuàng)建配置文件config.ini

[root@192.168.1.2 ~]# mkdir /usr/local/mysql-cluster
[root@192.168.1.2 ~]# cd /usr/local/mysql-cluster/
[root@192.168.1.2 mysql-cluster]# touch config.ini
2.根據(jù)我們上面提供的環(huán)境,config.ini文件配置如下

[tcp default]
SendBufferMemory=2M
ReceiveBufferMemory=2M

[ndbd default]
NoOfReplicas=2                          #每個(gè)數(shù)據(jù)節(jié)點(diǎn)的鏡像數(shù)量,通常最低設(shè)置為2,否則就沒(méi)有意義了
DataMemory=3072M                   #每個(gè)數(shù)據(jù)節(jié)點(diǎn)中給數(shù)據(jù)分配的內(nèi)存,
IndexMemory=1024M                  #每個(gè)數(shù)據(jù)節(jié)點(diǎn)中給索引分配的內(nèi)存  ,7.6版本中的已經(jīng)改名了


MaxNoOfOrderedIndexes=4000
MaxNoOfUniqueHashIndexes=4000
MaxNoOfAttributes=4000

MaxNoOfConcurrentOperations=1500000
MaxNoOfLocalOperations=2000000
MaxNoOfConcurrentTransactions=16000
TransactionDeadLockDetectionTimeOut=50000               #這是毫秒單位,相當(dāng)于50秒

#ODirect=1

MaxNoOfTables=1024

#UndoDataBuffer=64M
#RedoBuffer=64M

#FragmentLogFileSize=512M
NoOfFragmentLogFiles=300

[ndb_mgmd]
NodeId=1
HostName=192.168.1.2               #管理節(jié)點(diǎn)ip
DataDir=/var/lib/mysql-cluster      #管理節(jié)點(diǎn)數(shù)據(jù)目錄,存放相關(guān)日志,以及pid文件

[ndbd]
NodeId=2
HostName=192.168.1.3        #數(shù)據(jù)節(jié)點(diǎn)ip地址
DataDir=/data/                       #NDB點(diǎn)數(shù)據(jù)存放目錄

[ndbd]
NodeId=3
HostName=192.168.1.4         #數(shù)據(jù)節(jié)點(diǎn)ip地址
DataDir=/data                        #NDB點(diǎn)數(shù)據(jù)存放目錄


[mysqld]
NodeId=4
HostName=192.168.1.3         #SQL節(jié)點(diǎn)ip地址

[mysqld]
NodeId=5
HostName=192.168.1.4       #SQL節(jié)點(diǎn)ip地址

[mysqld]

在上面的配置文件中,包括很多的組,組名用"[]"括起來(lái),這里我們最關(guān)心的是3類節(jié)點(diǎn)組的配置,分別定義如下

NDB_MGMD] 表示管理節(jié)點(diǎn)的配置,只能有一個(gè)。

[NDBD DEFAULT] 表示每個(gè)數(shù)據(jù)節(jié)點(diǎn)的默認(rèn)配置,在每個(gè)節(jié)點(diǎn)的[NDBD]中不用再寫(xiě)這些選項(xiàng),只能有一個(gè)。

[NDBD] 表示每個(gè)數(shù)據(jù)節(jié)點(diǎn)的配置,可以有多個(gè)。

[MYSQLD] 表示SQL節(jié)點(diǎn)的配置,可以有多個(gè),分別寫(xiě)上不同的SQL節(jié)點(diǎn)的ip地址;也可以不用寫(xiě),只保留一個(gè)空節(jié)點(diǎn),表示任意一個(gè)ip地址都可以進(jìn)行訪問(wèn)。此節(jié)點(diǎn)的個(gè)數(shù)表明了可以用來(lái)連接數(shù)據(jù)節(jié)點(diǎn)的SQL節(jié)點(diǎn)總數(shù)。

每個(gè)節(jié)點(diǎn)都有一個(gè)獨(dú)立的id號(hào),可以填寫(xiě),比如nodeid=2,(老版本使用id,新版本已經(jīng)不使用id標(biāo)識(shí)了)也可以不用填寫(xiě),系統(tǒng)會(huì)按照配置文件的填寫(xiě)順序自動(dòng)分配。

開(kāi)始使用Cluster

上面我們都已經(jīng)配置完畢了,下面說(shuō)明啟動(dòng),關(guān)閉和使用方法

啟動(dòng)順序?yàn)椋汗芾砉?jié)點(diǎn)->數(shù)據(jù)節(jié)點(diǎn)->SQL節(jié)點(diǎn)(很重要)

(1)啟動(dòng)管理節(jié)點(diǎn):

[root@192.168.1.2 ~]# ndb_mgmd -f /usr/local/mysql-cluster/config.ini  --initial   #第一次啟動(dòng)加—initial參數(shù),以后修改了config.ini 加—reload
MySQL Cluster Management Server mysql-5.7.20 ndb-7.6.4
[root@192.168.0.30 ~]# netstat -ntlp | grep 1186
tcp        0      0 0.0.0.0:1186                0.0.0.0:*                   LISTEN      1329/ndb_mgmd
(2)啟動(dòng)NDB(數(shù)據(jù)節(jié)點(diǎn))
[root@192.168.1.4 ~]# ndbd --initial
2018-03-30 16:23:46 [ndbd] INFO     -- Angel connected to '192.168.1.2:1186'
2018-03-30 16:23:46 [ndbd] INFO     -- Angel allocated nodeid: 3

[root@192.168.1.4 /]# ps -ef | grep ndbd
root      2913     1 0 16:23 ?       00:00:00 ndbd
root      2914  2913 27 16:23 ?       00:00:43 ndbd

ndbd進(jìn)程是使用NDB存儲(chǔ)引擎處理表中數(shù)據(jù)的進(jìn)程。通過(guò)該進(jìn)程,存儲(chǔ)節(jié)點(diǎn)能夠?qū)崿F(xiàn)分布式事務(wù)管理,節(jié)點(diǎn)恢復(fù),在線備份相關(guān)任務(wù)。

(3)啟動(dòng)SQL節(jié)點(diǎn)(啟動(dòng)mysql服務(wù))

[root@192.168.1.4 /]# service mysql start
 SUCCESS! MySQL running (2588)

(4)節(jié)點(diǎn)全部啟動(dòng)成功后,在管理節(jié)點(diǎn)使用ndb_mgm工具的show命令查看集群狀態(tài):

[root@192.168.1.2]# /ndb_mgm
-- NDB Cluster -- Management Client --

ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)]    2 node(s)
id=2   @192.168.1.3 (mysql-5.7.20 ndb-7.6.4, Nodegroup: 0, *)
id=3   @192.168.1.4 (mysql-5.7.20 ndb-7.6.4, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1   @192.168.1.2 (mysql-5.7.20 ndb-7.6.4)

[mysqld(API)]  2 node(s)
id=4   @192.168.1.3 (mysql-5.7.20 ndb-7.6.4)
id=5   @192.168.1.4 (mysql-5.7.20 ndb-7.6.4)

ndb_mgm工具是ndb_mgmd(MySQL Cluster Server)的客戶端管理工具,通過(guò)該工具可以方便的檢查Cluster的狀態(tài),啟動(dòng)備份,關(guān)閉等功能。更詳細(xì)的方法可以通過(guò)ndb_mgm --help命令來(lái)進(jìn)行查看。

到這里MySQL Cluster就已經(jīng)搭建完成了。

看了以上關(guān)于如何實(shí)現(xiàn)Mysql Cluster 的環(huán)境搭建,希望能給大家在實(shí)際運(yùn)用中帶來(lái)一定的幫助。本文由于篇幅有限,難免會(huì)有不足和需要補(bǔ)充的地方,如有需要更加專業(yè)的解答,可在官網(wǎng)聯(lián)系我們的24小時(shí)售前售后,隨時(shí)幫您解答問(wèn)題的。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

文章名稱:如何實(shí)現(xiàn)MysqlCluster的環(huán)境搭建-創(chuàng)新互聯(lián)
轉(zhuǎn)載來(lái)于:http://jinyejixie.com/article6/pcpig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、自適應(yīng)網(wǎng)站做網(wǎng)站、網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)、App開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
双柏县| 农安县| 安平县| 元江| 和硕县| 壶关县| 芷江| 西乡县| 南部县| 高淳县| 区。| 兰州市| 那坡县| 肥西县| 昌平区| 霞浦县| 从江县| 宁蒗| 锡林浩特市| 满城县| 顺昌县| 铜梁县| 腾冲县| 延边| 泾源县| 宁城县| 文水县| 维西| 合阳县| 庆城县| 沾益县| 云阳县| 卫辉市| 北票市| 黔南| 名山县| 益阳市| 青田县| 昌平区| 柳江县| 微博|