一、前言1.1 分布式數(shù)據(jù)庫 隨著IT行業(yè)的迅猛發(fā)展,行業(yè)應(yīng)用系統(tǒng)的數(shù)據(jù)規(guī)模呈現(xiàn)爆炸式增長,對數(shù)據(jù)庫的數(shù)據(jù)處理能力要求越來越高,分布式數(shù)據(jù)庫正是因此應(yīng)運而生。 分布式數(shù)據(jù)庫特點包括: 透明性:用戶不必關(guān)心后臺數(shù)據(jù)庫的具體實現(xiàn) 擴展性:能夠根據(jù)系統(tǒng)壓力情況進行擴展 可靠性:如果其中一臺服務(wù)器宕機,備用服務(wù)器能夠自動切換繼續(xù)提供服務(wù) 高性能: 1.2 Mycat介紹 Mycat(http://www./)是一個支持mysql、sql server等數(shù)據(jù)庫集群化部署的中間件。它由Amoeba和cobar發(fā)展而來。 二、負載均衡三、測試環(huán)境四、測試腳本CREATE TABLE `employee` ( 五、軟件安裝首先安裝mycat-server、mycat-eye、zookeeper和navicat for mysql 六、服務(wù)啟動6.1 、啟動mycat 6.1.1、安裝java環(huán)境 1、 安裝jdk 2、 配置環(huán)境變量 JAVA_HOME=C:Program FilesJavajdk1.8.0_131 CLASSPATH=.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar; Path =%JAVA_HOME%in;%JAVA_HOME%jrein; 6.1.2、啟動mycat服務(wù) 在windows8操作系統(tǒng)上啟動mycat服務(wù),命令如下 cmd cd /d D:EC-OFCJavaMycatMycat-server-1.6mycatin startup_nowrap.bat 6.1.3、連接mycat 6.1.3.1、navicat連接 使用navicat連接mycat,默認端口為8066,密碼123456 6.1.3.2、DOS鏈接
注意:如果需要使用如show @@datasource命令時,需要連接9066端口而不是8066 6.2 、啟動zookeeper D:EC-OFC開發(fā)工具zookeeper-3.4.10inzkServer.bat 6.3 、啟動mycat-eye D:EC-OFCJavaMycatmycat-webstart.bat 七、寫集群7.1 拓撲圖 7.2 配置文件 <?xml version='1.0'?> 八、主從配置8.1 業(yè)務(wù)要求 Master掛掉時,Slave還能提供讀服務(wù)。 8.2 配置步驟 注意每臺mysql服務(wù)器的server-id必須唯一 第一步: 在10.3.30.161中創(chuàng)建一個10.3.30.238主機中可以登錄的MySQL用戶 用戶:mysql238 密碼:123456 mysql>GRANT REPLICATION SLAVE ON *.* TO ‘mysql238’@’10.3.30.238’ IDENTIFIED BY ‘123456’; mysql>FLUSH PRIVILEGES; 第二步: 需要先在C:ProgramDataMySQLMySQL Server 5.7my.ini文件中添加log-bin=mysql-bin 查看10.3.30.161MySQL服務(wù)器二進制文件名與位置 mysql>SHOW MASTER STATUS; 第三步: 告知二進制文件名與位置 在10.3.30.238中執(zhí)行: mysql>CHANGE MASTER TO MASTER_HOST='10.3.30.161', MASTER_USER='mysql238', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mybin.000001', MASTER_LOG_POS=154; 完成主從復制配置 8.3 驗證配置 在10.3.30.238中 mysql> START SLAVE; #開啟復制 mysql>SHOW SLAVE STATUSG #查看主從復制是否配置成功 當看到Slave_IO_Running: YES、Slave_SQL_Running: YES才表明狀態(tài)正常 8.4 配置文件 switchType='-1'意味著當主掛掉的時候,不進行自動切換,即hostS1并不會被提升為主,仍只提供讀的功能。這就避免了將數(shù)據(jù)寫進slave的可能性,單純的MySQL主從集群并不允許將數(shù)據(jù)寫進slave中,除非配置的是雙master。
九、Haproxy配置9.1 拓撲圖 9.2 配置文件 此處為haproxy配置文件 #global mysql客戶端或者應(yīng)用程序可以通過如上配置的127.0.0.1:3307端口鏈接haproxy實現(xiàn)鏈接mycat集群的目的。 十、注意事項1、主主復制配置文件中auto_increment_increment和auto_increment_offset只能保證主鍵不重復,卻不能保證主鍵有序。 2、當配置完成Slave_IO_Running、Slave_SQL_Running不全為YES時,show slave statusG信息中有錯誤提示,可根據(jù)錯誤提示進行更正。 3、Slave_IO_Running、Slave_SQL_Running不全為YES時,大多數(shù)問題都是數(shù)據(jù)不統(tǒng)一導致。 常見出錯點: 1、兩臺數(shù)據(jù)庫都存在db數(shù)據(jù)庫,而第一臺MySQL db中有tab1,第二臺MySQL db中沒有tab1,那肯定不能成功。 2、已經(jīng)獲取了數(shù)據(jù)的二進制日志名和位置,又進行了數(shù)據(jù)操作,導致POS發(fā)生變更。在配置CHANGE MASTER時還是用到之前的POS。 3、stop slave后,數(shù)據(jù)變更,再start slave。出錯。 終極更正法:重新執(zhí)行一遍CHANGE MASTER就好了。 ●編號346,輸入編號直達本文 ●輸入m獲取文章目錄 |
|