mysql教程5.7從入門到精通課本第19章cluster_第1頁
mysql教程5.7從入門到精通課本第19章cluster_第2頁
mysql教程5.7從入門到精通課本第19章cluster_第3頁
mysql教程5.7從入門到精通課本第19章cluster_第4頁
mysql教程5.7從入門到精通課本第19章cluster_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第19章MySQLCluster本章內(nèi)容19.1MySQLCluster概述19.2Linux環(huán)境下MySQLCluster安裝和配置19.3管理MySQLCluster19.4維護(hù)MySQLCluster19.5Windows操作系統(tǒng)中配置Cluster集群19.1MySQLCluster概述19.1.1MySQLCluster基本概念19.1.2理解MySQLCluster節(jié)點19.1.1MySQLCluster基本概念MySQLCluster簡單的講是一種MySQL集群的技術(shù),是由一組計算機(jī)構(gòu)成,每臺計算可以存放一個或者多個節(jié)點,其中包括MySQL服務(wù)器,DNBCluster的數(shù)據(jù)節(jié)點,管理其他節(jié)點,以及專門的數(shù)據(jù)訪問程序,這些節(jié)點組合在一起,就可以為應(yīng)用提供了高性能、高可用性和可縮放性的Cluster數(shù)據(jù)管理。19.1.1MySQLCluster基本概念19.1.2理解MySQLCluster節(jié)點管理節(jié)點

管理節(jié)點主要用來對其他節(jié)點進(jìn)行管理的。通常通過配置config.ini文件來配置集群中有多少需要維護(hù)的副本、配置每個數(shù)據(jù)節(jié)點上為數(shù)據(jù)和索引分配多少內(nèi)存、IP地址,以及在每個數(shù)據(jù)節(jié)點上保存數(shù)據(jù)的磁盤路徑。SQL節(jié)點 SQL節(jié)點簡單的講就是mysqld服務(wù)器,應(yīng)用不能直接訪問數(shù)據(jù)節(jié)點,只能通過SQL節(jié)點訪問數(shù)據(jù)節(jié)點來返回數(shù)據(jù)。數(shù)據(jù)節(jié)點 數(shù)據(jù)節(jié)點用來存放Cluster里面的數(shù)據(jù),MySQLCluster在各個數(shù)據(jù)節(jié)點之間復(fù)制數(shù)據(jù),任何一個節(jié)點發(fā)生了故障,始終會有另外的數(shù)據(jù)節(jié)點存儲數(shù)據(jù)。19.2Linux環(huán)境下MySQLCluster安裝和配置19.2.1安裝MySQLCluster7.2.8軟件19.2.2管理節(jié)點配置步驟19.2.3配置SQL節(jié)點和數(shù)據(jù)節(jié)點19.2.1安裝MySQLCluster7.2.8軟件19.2.1安裝MySQLCluster7.2.8軟件登錄網(wǎng)址,下載并安裝MySQLCluster7.2.8軟件測試下當(dāng)前的MySQL版本是否支持Cluster19.2.2管理節(jié)點配置步驟MySQLCluster管理節(jié)點的配置是Cluster配置中最關(guān)鍵的一步,下面我們通過詳細(xì)的步驟來描述下如何配置管理節(jié)點。管理節(jié)點通過config.ini文件來配置管理節(jié)點、SQL節(jié)點和數(shù)據(jù)節(jié)點的信息,通常最關(guān)心3類節(jié)點的配置。19.2.3配置SQL節(jié)點和數(shù)據(jù)節(jié)點SQL節(jié)點和數(shù)據(jù)節(jié)點的配置比較簡單,只需要在MySQLServer的配置文件(f)中增加相關(guān)配置信息即可。19.3管理MySQLCluster19.3.1Cluster的啟動19.3.2Cluster的測試19.3.3Cluster的關(guān)閉19.3.1Cluster的啟動MySQLCluster需要將集群的各個節(jié)點都啟動后才能正常運(yùn)行,節(jié)點的啟動的順序依次是管理節(jié)點、數(shù)據(jù)節(jié)點和SQL節(jié)點。

19.3.2Cluster的測試MySQLCluster成功啟動之后,下面來測試一下Cluster的功能,對于NDB存儲引擎數(shù)據(jù)是會同步的,而其他類型的存儲引擎的數(shù)據(jù)是不會同步到其他數(shù)據(jù)節(jié)點中的。SQL節(jié)點故障測試19.3.2Cluster的測試步驟1:在其中一個IP地址為192.168.0.101的SQL節(jié)點的test庫中創(chuàng)建存儲引擎為NDB的表t,然后插入兩條數(shù)據(jù) mysql>usetest; Databasechanged mysql>createtablet( ->datainteger ->)engine=ndb; QueryOK,0rowsaffected,2warnings(1.56sec)

mysql>insertintotvalues(1); QueryOK,1rowaffected(0.48sec) mysql>insertintotvalues(2); QueryOK,1rowaffected(0.07sec)19.3.2Cluster的測試步驟2:在其中一個IP地址為192.168.0.102中查詢test庫中的t1表,看下兩個SQL節(jié)點的數(shù)據(jù)是否是一致的 mysql>select*fromt; +------+ |data| +------+ |1| |2| +------+ 2rowsinset(0.04sec)19.3.2Cluster的測試步驟3:在SQL節(jié)點192.168.0.101上將測試表t的存儲引擎改為MyISAM,再次插入測試輸入,執(zhí)行如下

mysql>altertabletengine=myisam; QueryOK,2rowsaffected(0.88sec) Records:2Duplicates:0Warnings:0 mysql>insertintotvalues(3); QueryOK,1rowaffected(0.02sec)19.3.2Cluster的測試步驟4:在SQL節(jié)點192.168.0.102上重新查詢表t,如下。 mysql>select*fromt; ERROR1412(HY000):Tabledefinitionhaschanged,pleaseretrytransaction步驟5:在SQL節(jié)點192.168.0.101上將測試表t的存儲引擎改為NDB mysql>altertabletengine=ndb; QueryOK,3rowsaffected(0.88sec) Records:3Duplicates:0Warnings:019.3.2Cluster的測試步驟4:在SQL節(jié)點192.168.0.102上重新查詢表t,如下。 mysql>select*fromt; ERROR1412(HY000):Tabledefinitionhaschanged,pleaseretrytransaction步驟5:在SQL節(jié)點192.168.0.101上將測試表t的存儲引擎改為NDB mysql>altertabletengine=ndb; QueryOK,3rowsaffected(0.88sec) Records:3Duplicates:0Warnings:019.3.2Cluster的測試SQL節(jié)點故障測試步驟1:將IP地址為192.168.0.101服務(wù)器上的MySQL服務(wù)停止。 [root@localhostmysql-cluster]#servicemysql.serverstop ShuttingdownMySQL.......[OK]19.3.2Cluster的測試步驟2:用ndb_mgm工具查看集群的狀態(tài)。 [root@localhost~]#ndb_mgm … [ndbd(NDB)] 2node(s) id=2 @192.168.0.101(mysql-5.5.27ndb-7.2.8,starting,Nodegroup:0) id=3 @192.168.0.102(mysql-5.5.27ndb-7.2.8,starting,Nodegroup:0) [ndb_mgmd(MGM)] 1node(s) id=1 @192.168.0.100(mysql-5.5.27ndb-7.2.8) [mysqld(API)] 2node(s) id=4(notconnected,acceptingconnectfrom192.168.0.100) id=5@192.168.0.102(mysql-5.5.27ndb-7.2.8)19.3.3Cluster的關(guān)閉MySQLCluster關(guān)閉需要使用ndb_mgm命令 執(zhí)行如下所示。 [root@localhostmysql-cluster]#ndb_mgm-eshutdown ConnectedtoManagementServerat:localhost:1186 Node2:Clustershutdowninitiated Node3:Clustershutdowninitiated Node3:Nodeshutdowncompleted. Node2:Nodeshutdowncompleted. 2NDBClusternode(s)haveshutdown. Disconnectingtoallowmanagementservertoshutdown.19.3.3Cluster的關(guān)閉Cluster關(guān)閉同時也可以使用ndb_mgm工具進(jìn)入管理界面后,使用shutdown命令。執(zhí)行如下所示。 [root@localhostmysql-cluster]#ndb_mgm ndb_mgm>shutdown Node2:Clustershutdowninitiated Node3:Clustershutdowninitiated Node3:Nodeshutdowncompleted. Node2:Nodeshutdowncompleted. Disconnectingtoallowmanagementservertoshutdown.19.4維護(hù)MySQLCluster19.4.1Cluster的日志的管理19.4.2Cluster的聯(lián)機(jī)備份19.4.3Cluster的數(shù)據(jù)恢復(fù)19.4維護(hù)MySQLCluster進(jìn)入MySQLCluster的命令行管理界面可以做大量的維護(hù)工作 [root@localhost~]#ndb_mgm --NDBCluster--ManagementClient-- ndb_mgm>show通過ndb控制界面下執(zhí)行help命令查看很多其他的維護(hù)管理命令: ndb_mgm>help19.4.1Cluster的日志的管理管理MySQLCluster提供了兩種日志。 集群日志(clusterlog)主要是用來記錄所有Cluster節(jié)點生成的日志節(jié)點日志(nodelog)記錄了數(shù)據(jù)節(jié)點的本地時間。通常采用集群日志,集群日志記錄了所有節(jié)點的數(shù)據(jù),更方便進(jìn)行管理,集群日志記錄在config.ini同一個目錄下面。

[root@localhostmysql-cluster]#cd/var/lib/mysql-cluster/ [root@localhostmysql-cluster]#ls config.inindb_1_cluster.logndb_1_out.logndb_1.pid [root@localhostmysql-cluster]#catndb_1_cluster.log19.4.1Cluster的日志的管理管理通??梢允褂胣db_mgm客戶端管理日志信息。1.在終端執(zhí)行ndb_mgm命令,輸入clusterloginfo命令查詢當(dāng)前日志狀態(tài)。 [root@localhost~]#cd/var/lib/mysql-cluster/ [root@localhostmysql-cluster]#ndb_mgm --NDBCluster--ManagementClient-- ndb_mgm>clusterloginfo ConnectedtoManagementServerat:localhost:1186 Severitiesenabled:INFOWARNINGERRORCRITICALALERT

19.4.1Cluster的日志的管理2.執(zhí)行clusterlogoff命令關(guān)閉日志。 ndb_mgm>clusterlogoff Clusterloggingisdisabled ndb_mgm>clusterloginfo Clusterloggingisdisabled.

3.執(zhí)行clusterlogoff命令關(guān)閉日志。 ndb_mgm>clusterlogon Clusterloggingisenabled. ndb_mgm>clusterloginfo Severitiesenabled:INFOWARNINGERRORCRITICALALERT19.4.2Cluster的聯(lián)機(jī)備份使用mysqldump工具對MySQL數(shù)據(jù)庫進(jìn)行邏輯備份。采用這種備份方法同樣的適用于MySQLCluster數(shù)據(jù)備份,在對MySQLCluster接點進(jìn)行數(shù)據(jù)備份的時候,可以選取任意一個節(jié)點進(jìn)行備份。通常使用MySQLCluster備份指的是在給定時間對數(shù)據(jù)庫的快照,備份包含3個部分。⑴Metadata(元數(shù)據(jù)):所有數(shù)據(jù)庫表的名稱和定義。⑵Tablerecords(表記錄):執(zhí)行備份時實際保存在數(shù)據(jù)庫表中的數(shù)據(jù)。⑶Transactionlog(事務(wù)日志):指明如何以及何時將數(shù)據(jù)保存在數(shù)據(jù)庫中的連續(xù)記錄。19.4.2Cluster的聯(lián)機(jī)備份使用管理服務(wù)器進(jìn)行Cluster物理備份,首先需要啟動管理服務(wù)器(ndb_mgm),并執(zhí)行”startbackup”命令啟動備份,具體執(zhí)行如下所示。 ndb_mgm>startbackup; Waitingforcompleted,thismaytakeseveralminutes Node3:Backup1startedfromnode1 Node3:Backup1startedfromnode1completed如果在備份的過程中想終止備份可以使用如下的命令。[root@localhostmysql-cluster]#ndb_mgm --NDBCluster--ManagementClient-- ndb_mgm>abortbackupnode_id19.4.2Cluster的聯(lián)機(jī)備份上面的備份例子在兩個數(shù)據(jù)節(jié)點下都可以看到備份的數(shù)據(jù),在IP地址為192.168.0.101的數(shù)據(jù)節(jié)點下,可以看到以下的數(shù)據(jù)文件。

[root@localhost~]#cd/usr/local/mysql/data/BACKUP/BACKUP-1 [root@localhostBACKUP-1]#ls BACKUP-1.2.LOG BACKUP-1.2.LOG BACKUP-1-0.2.Data19.4.3Cluster的數(shù)據(jù)恢復(fù)使用使用STARTBACKUP進(jìn)行MySQLCluster備份,使用ndb_restore工具進(jìn)行數(shù)據(jù)還原,使用命令ndb_restore進(jìn)行還原。 1.備份之前,首先創(chuàng)建測試表t,然后添加若干條記錄,如下所示。 mysql>selectcount(*)fromt; +----------+ |count(*)| +----------+ |8192| +----------+ 1rowinset(0.03sec)19.4.3Cluster的數(shù)據(jù)恢復(fù) 2.在管理節(jié)點上執(zhí)行startbackup進(jìn)行數(shù)據(jù)備份。 ndb_mgm>startbackup; Waitingforcompleted,thismaytakeseveralminutes Node3:Backup2startedfromnode1 Node3:Backup2startedfromnode1completed StartGCP:3059StopGCP:3062 #Records:10249#LogRecords:0 Data:280592bytesLog:0bytes19.4.3Cluster的數(shù)據(jù)恢復(fù) 3.在IP地址為192.168.0.101的數(shù)據(jù)節(jié)點上執(zhí)行如下數(shù)據(jù)還原的命令,如下所示。 [root@localhostmysql-cluster]#ndb_restore-b3-n2-chost=192.168.0.100:1186–m–r/usr/local/mysql/data/BACKUP/BACKUP-3 4.在IP地址為192.168.0.102的數(shù)據(jù)節(jié)點上執(zhí)行如下數(shù)據(jù)還原的命令,如下所示。 [root@localhostmysql-cluster]#ndb_restore-b3-n3-chost=192.168.0.100:1186–m–r/usr/local/mysql/data/BACKUP/BACKUP-319.5Windows操作系統(tǒng)中配置Cluster集群MySQLCluster的下載 Windows操作系統(tǒng)下面的MySQLCluster的下載地址是。如果操作系統(tǒng)是32位的,就選擇Windows(x86,32-bit),ZIPArchive下載,如果是64位的,就選擇Windows(x86,64-bit),ZIPArchive下載。MySQLCluster集群的配置和測試。19.5Windows操作系統(tǒng)中配置Cluster集群管理節(jié)點(192.168.0.208)

SQL節(jié)點(192.168.0.102、192.168.0.206)數(shù)據(jù)節(jié)點(192.168.0.102、192.168.0.206)19.5Windows操作系統(tǒng)中配置Cluster集群步驟1:在IP地址為192.168.0.208的機(jī)器上創(chuàng)建目錄c:/mysql/bin、c:/mysql/mysql-cluster和c:/mysql/bin/cluster-logs目錄,然后將安裝包解壓后的mysql/bin目錄中的ndb_mgmd.exe和ndb_mgm.exe復(fù)制到IP地址為192.168.0.208的c:/mysql/bin目錄下。19.5Windows操作系統(tǒng)中配置Cluster集群然后在192.168.0.208的c:/mysql/bin下生成my.ini和config.ini兩個文件。my.ini的配置信息如下: [mysql_cluster] #Optionformanagementnodeprocess config-file=C:/mysql/bin/config.ini19.5Windows操作系統(tǒng)中配置Cluster集群config.ini的配置信息如下: [ndbddefault] NoOfReplicas=2 #每個數(shù)據(jù)節(jié)點的鏡像數(shù)量 DataDir=D:/ProgramFiles/mysqlcluster/datanode/mysql/bin/cluster-data DataMemory=80M#每個數(shù)據(jù)節(jié)點中給數(shù)據(jù)分配的內(nèi)存 IndexMemory=18M#每個數(shù)據(jù)節(jié)點中給索引分配的內(nèi)存 [ndb_mgmd] HostName=192.168.0.208#管理節(jié)點的IP地址 DataDir=C:/mysql/bin/cluster-logs#管理節(jié)點日志文件的目錄 [ndbd] HostName=192.168.0.102#192.168.0.102的主機(jī)作為數(shù)據(jù)節(jié)點 [ndbd] HostName=192.168.0.206#192.168.0.206的主機(jī)作為數(shù)據(jù)節(jié)點 [mysqld] HostName=192.168.0.102#192.168.0.102的主機(jī)作為SQL節(jié)點 [mysqld] HostName=192.168.0.206#192.168.0.206的主機(jī)作為SQL節(jié)點19.5Windows操作系統(tǒng)中配置Cluster集群步驟2:將IP地址為192.168.0.102和192.168.0.206的兩臺機(jī)器同時作為數(shù)據(jù)節(jié)點,在IP地址為192.168.0.206的計算機(jī)上創(chuàng)建以下目錄結(jié)構(gòu)。 D:/ProgramFiles/mysqlcluster/datanode/mysql/bin D:/ProgramFiles/mysqlcluster/datanode/mysql/cluster-data D:/ProgramFiles/mysqlcluster/datanode/mysql/bin/cluster-data

此時需要在下載的目錄解壓之后的文件mysql/bin中將ndbd.exe復(fù)制到192.168.0.206的D:/ProgramFiles/mysqlcluster/datanode/mysql/bin目錄下。接下來需要在該目錄(D:/ProgramFiles/mysqlcluster/datanode/mysql/bin)下創(chuàng)建my.ini文件,my.ini的配置信息如下

19.5Windows操作系統(tǒng)中配置Cluster集群my.ini的配置信息如下

[mysql_cluster] ndb-connectstring=192.168.0.208#定位管理節(jié)點19.5Windows操作系統(tǒng)中配置Cluster集群步驟3:在IP地址為192.168.0.206的計算機(jī)上創(chuàng)建D:/ProgramFiles/mysqlcluster/sqlnode目錄,然后將下載解壓后的文件夾mysql直接整個復(fù)制到D:/ProgramFiles/mysqlcluster/sqlnode目錄下面,然后在D:/ProgramFiles/mysqlcluster/sqlnode/mysql下面創(chuàng)建my.ini文件。my.ini的配置信息如下: [mysqld] ndbcluster#運(yùn)行NDB存儲引擎 ndb-connectstring=192.168.0.208#定位管理節(jié)點19.5Windows操作系統(tǒng)中配置Cluster集群步驟4:啟動管理節(jié)點。首先在IP地址為192.168.0.208的主機(jī)上打開命令窗口,切換到C:\mysql\bin目錄下面,輸入: C:\DocumentsandSettings\Administrator>cdc:\mysql\bin C:\mysql\bin>ndb_mgmd-fconfig.ini --configdir=c:\mysql\mysql-cluster19.5Windows操作系統(tǒng)中配置Cluster集群步驟5:啟動數(shù)據(jù)節(jié)點

。 在IP地址為192.168.0.206的主機(jī)中打開一個新的命令行窗口,切換到目錄D:/ProgramFiles/mysqlcluster/datanode/mysql/bin,輸入如下命令: D:\ProgramFiles\mysqlcluster\datanode\mysql\bin>ndbd-c192.168.0.208同時,登錄在IP地址為192.168.0.102的主機(jī)中打開一個新的命令行窗口,輸入如下命令: D:\ProgramFiles\mysqlcluster\datanode\mysql\bin>ndbd-c192.168.0.10219.5Windows操作系統(tǒng)中配置Cluster集群下面在IP地址為192.168.0.208的主機(jī)上使用ndb_mgm命令測試發(fā)現(xiàn)沒有成功連接上數(shù),如下: C:\mysql\bin>ndb_mgm --NDBCluster--ManagementClient-- ndb_mgm>allstatus ConnectedtoManagementServerat:localhost:1186 Node2:started(mysql-5.5.27ndb-7.2.8) Node3:started(mysql-5.5.27ndb-7.2.8)19.5Windows操作系統(tǒng)中配置Cluster集群步驟6:啟動SQL節(jié)點 在IP地址為192.168.0.206的主機(jī)中打開一個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論