mycat實現(xiàn)mysql讀寫分離安裝配置文檔v1.0_第1頁
mycat實現(xiàn)mysql讀寫分離安裝配置文檔v1.0_第2頁
mycat實現(xiàn)mysql讀寫分離安裝配置文檔v1.0_第3頁
mycat實現(xiàn)mysql讀寫分離安裝配置文檔v1.0_第4頁
mycat實現(xiàn)mysql讀寫分離安裝配置文檔v1.0_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄1Mycat概述12讀寫分離32.1讀寫分離定義32.2優(yōu)缺點43安裝環(huán)境44Mycat安裝配置44.1首先確認(rèn)Mycat服務(wù)器網(wǎng)絡(luò)是否聯(lián)通44.2檢查JAVA版本54.3下載Mycat安裝包54.4解壓縮安裝包54.5增加Mycat相關(guān)的環(huán)境變量54.6修改Mycat配置文件64.6.1修改server.xml64.6.2修改schema.xml64.7啟動Mycat74.8連接Mycat74.9查看Mycat邏輯庫84.10關(guān)閉Mycat服務(wù)85讀寫分離驗證81 Mycat概述Mycat從定義和分類來看,它是一個開源的分布式數(shù)據(jù)庫系統(tǒng),是一個實現(xiàn)了MySQL協(xié)議的服務(wù)器,前端用戶可以把

2、它看作是一個數(shù)據(jù)庫代理,用MySQL客戶端工具和命令行訪問,而其后端可以用MySQL原生協(xié)議與多個MySQL服務(wù)器通信,也可以用JDBC協(xié)議與大多數(shù)主流數(shù)據(jù)庫服務(wù)器通信,其核心功能是分表分庫,即將一個大表水平分割為N個小表,存儲在后端MySQL服務(wù)器里或者其他數(shù)據(jù)庫里。MyCat發(fā)展到目前的版本,已經(jīng)不是一個單純的MySQL代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流數(shù)據(jù)庫,也支持MongoDB這種新型NoSQL方式的存儲,未來還會支持更多類型的存儲。而在最終用戶看來,無論是那種存儲方式,在MyCat里,都是一個傳統(tǒng)的數(shù)據(jù)庫表,支持

3、標(biāo)準(zhǔn)的SQL語句進(jìn)行數(shù)據(jù)的操作,這樣一來,對前端業(yè)務(wù)系統(tǒng)來說,可以大幅降低開發(fā)難度,提升開發(fā)速度。Mycat架構(gòu)圖Mycat支持基于MySQL主從復(fù)制狀態(tài)的高級讀寫分離控制機(jī)制2 讀寫分離2.1 讀寫分離定義為了確保數(shù)據(jù)庫產(chǎn)品的穩(wěn)定性,很多數(shù)據(jù)庫擁有雙機(jī)熱備功能。也就是,第一臺數(shù)據(jù)庫服務(wù)器,是對外提供增刪改查業(yè)務(wù)的生產(chǎn)服務(wù)器;第二臺數(shù)據(jù)庫服務(wù)器,僅僅接收來自第一臺服務(wù)器的備份數(shù)據(jù)。一般來說,為了配置方便,以及穩(wěn)定性,這兩臺數(shù)據(jù)庫服務(wù)器,都用的是相同的配置。在實際運行中,第一臺數(shù)據(jù)庫服務(wù)器的壓力,遠(yuǎn)遠(yuǎn)大于第二臺數(shù)據(jù)庫服務(wù)器。因此,很多人希望合理利用第二臺數(shù)據(jù)庫服務(wù)器的空閑資源。從數(shù)據(jù)庫的基本業(yè)務(wù)

4、來看,數(shù)據(jù)庫的操作無非就是增刪改查這4個操作。但對于“增刪改”這三個操作,如果是雙機(jī)熱備的環(huán)境中做,一臺機(jī)器做了這三個操作的某一個之后,需要立即將這個操作,同步到另一臺服務(wù)器上。出于這個原因,第二臺備用的服務(wù)器,就只做了查詢操作。進(jìn)一步,為了降低第一臺服務(wù)器的壓力,干脆就把查詢操作全部丟給第二臺數(shù)據(jù)庫服務(wù)器去做,第一臺數(shù)據(jù)庫服務(wù)器就只做增刪改了。2.2 優(yōu)缺點優(yōu)點:合理利用從數(shù)據(jù)庫服務(wù)器的空閑資源。缺點:本來第二臺數(shù)據(jù)庫服務(wù)器,是用來做熱備的,它就應(yīng)該在一個壓力非常小的環(huán)境下,保證運行的穩(wěn)定性。而讀寫分離,卻增加了它的壓力,也就增加了不穩(wěn)定性。因此,讀寫分離,實質(zhì)上是一個在資金比較缺乏,但又需

5、要保證數(shù)據(jù)安全的需求下,在雙機(jī)熱備方案上,做出的一種折中的擴(kuò)展方案。3 安裝環(huán)境MySQL主庫MySQL從庫Mycat服務(wù)器操作系統(tǒng)Centos6.5 64位Centos6.5 64位Centos6.5 64位主機(jī)名wyg001wyg002wyg003IP313233數(shù)據(jù)庫版本MySQL 5.6.23MySQL 5.6.23MySQL 5.6.23說明: 1. Mycat由Java語言開發(fā),運行環(huán)境為JDK1.7及以上的版本,Mycat服務(wù)器需要安裝JDB1.7或以上版本;2. MySQL主庫和從庫MySQL數(shù)據(jù)庫服務(wù)已經(jīng)開啟并

6、且開啟主從同步;3. 建議Mycat服務(wù)器本地有一個MySQL Server,若沒有,建議安裝一個;4 Mycat安裝配置4.1 首先確認(rèn)Mycat服務(wù)器網(wǎng)絡(luò)是否聯(lián)通用IP地址為33的主機(jī)ping31的機(jī)器,其結(jié)果如下:rootwyg003 conf# ping 31PING 31 (31) 56(84) bytes of data.64 bytes from 31: icmp_seq=1 ttl=64 time=1.93 ms64 bytes from 192.

7、168.0.131: icmp_seq=2 ttl=64 time=0.468 ms64 bytes from 31: icmp_seq=3 ttl=64 time=0.539 ms用IP地址為33的主機(jī)ping32的機(jī)器,其結(jié)果如下:rootwyg003 conf# ping 32PING 32 (32) 56(84) bytes of data.64 bytes from 32: icmp_seq=1 ttl=64 time=7.97 m

8、s64 bytes from 32: icmp_seq=2 ttl=64 time=0.448 ms64 bytes from 32: icmp_seq=3 ttl=64 time=0.446 ms說明:網(wǎng)絡(luò)不通的話請先檢查網(wǎng)絡(luò)。4.2 檢查JAVA版本rootwyg003 bin# java -versionjava version 1.7.0_67Java(TM) SE Runtime Environment (build 1.7.0_67-b01)Java HotSpot(TM) 64-Bit Server VM (build 24.65-b0

9、4, mixed mode)說明:Mycat由Java語言開發(fā),運行環(huán)境為JDK1.7及以上的版本,Mycat服務(wù)器需要安裝JDB1.7或以上版本;如果版本過低請下載JDK1.7或以上版本安裝;4.3 下載Mycat安裝包這里下載的版本是Mycat 1.4-RELEASE版;下載完成后通過FTP或傳輸軟件將安裝包上傳到服務(wù)器目錄/usr/local/下。4.4 解壓縮安裝包rootwyg003 local# cd /usr/local/rootwyg003 local# tar zxvf Mycat-Server-1.4-RC-Linux-RW-20150724.tar.gzrootwyg00

10、3 local# mv Mycat-Server-1.4-RC-Linux-RW-20150724 Mycat說明:安裝包已經(jīng)提前上傳到目錄/usr/local/下,修改解壓后文件夾名為Mycat4.5 增加Mycat相關(guān)的環(huán)境變量rootwyg003 Mycat# cdrootwyg003 # vi .bash_profileexport MYCAT_HOME=/usr/local/Mycatrootwyg003 #source .bash_profile說明:設(shè)置MYCAT_HOME目錄;source 命令使之立即生效;4.6 修改Mycat配置文件4.6.1 修改server.xmlro

11、otwyg003 conf# cd /usr/local/Mycat/conf/rootwyg003 conf# vi server.xml !- 32 32 8066 9066 - test TESTDB 說明:進(jìn)入/usr/local/Mycat/conf/目錄修改,主要配置的是Mycat的用戶名和密碼,Mycat的用戶名和密碼和MySQL的用戶名密碼是分開的,應(yīng)用連接Mycat就用這個用戶名和密碼。邏輯庫TESTDB,用戶名test,密碼test;4.6.2 修改schema.xmlrootwyg003 conf# cd /usr/local/Mycat/conf/rootwyg003

12、conf# vi schema.xml select user() 說明:進(jìn)入/usr/local/Mycat/conf/目錄修改;主要配置主從庫的數(shù)據(jù)庫連接地址信息; schema name=TESTDB對應(yīng)server.xml配置的Mycat邏輯庫名稱;屬性設(shè)置balance =1代表全部的readHost與stand by writeHost參與select語句的負(fù)載均衡; witchType=2代表基于MYSQL主從同步的狀態(tài)決定是否主從切換;4.7 啟動Mycatrootwyg003 bin# cd /usr/local/Mycat/bin/rootwyg003 bin# ./myc

13、at startStarting Mycat-server.rootwyg003 bin#說明:進(jìn)入目錄/usr/local/Mycat/bin/執(zhí)行;4.8 連接Mycatrootwyg003 bin# mysql -utest -ptest -h -P8066 -DTESTDBWarning: Using a password on the command line interface can be insecure.Reading table information for completion of table and column namesYou can turn

14、 off this feature to get a quicker startup with -AWelcome to the MySQL monitor. Commands end with ; or g.Your MySQL connection id is 9Server version: 5.5.8-mycat-1.4-alpha-20150520235658 MyCat Server (OpenCloundDB)Copyright (c) 2009-2015 Percona LLC and/or its affiliatesCopyright (c) 2000, 2015, Ora

15、cle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type help; or h for help. Type c to clear the current input statement.mysql說明:Mycat默認(rèn)使用8066端口;4.9 查看Mycat邏輯庫mysql show d

16、atabases;+-+| DATABASE |+-+| TESTDB |+-+1 row in set (0.00 sec)mysql select user();+-+| USER() |+-+| test |+-+1 row in set (0.01 sec)mysql說明:可以看到我們在server.xml配置的TESTDB邏輯庫和test用戶;4.10 關(guān)閉Mycat服務(wù)rootwyg003 bin# cd /usr/local/Mycat/bin/rootwyg003 bin# ./mycat stopStopping Mycat-server.Stopped M

17、ycat-server.rootwyg003 bin#說明:進(jìn)入/usr/local/Mycat/bin/目錄執(zhí)行;5 讀寫分離驗證先將日志的debug(log4j.xml文件)模式打開,執(zhí)行建表插入數(shù)據(jù)操作;mysql create table user(id int not null primary key,name varchar(100);Query OK, 0 rows affected (0.20 sec)mysql insert into user(id,name) values(1,alibaba);Query OK, 1 row affected (0.07 sec)說明:執(zhí)

18、行插入記錄操作。rootwyg003 logs# more debug.log12/22 00:51:40.228 DEBUG $_NIOREACTOR-2-RW (NonBlockingSession.java:113) -ServerConnection id=1, schema=TESTDB, host=0:0:0:0:0:0:0:1, user=test,txIsolation=3, autocommit=true, schema=TESTDBinsert into user(id,name) values(1,alibaba), route= 1 - dn1insert into u

19、ser(id,name) values(1,alibaba) rrs 12/22 00:51:40.661 DEBUG $_NIOREACTOR-2-RW (MultiNodeQueryHandler.java:83) -execute mutinode query insert into user(id,name) values(1,alibaba)12/22 00:51:40.694 DEBUG $_NIOREACTOR-2-RW (MultiNodeQueryHandler.java:167) -received ok response ,executeResponse:true from MySQLConnection id=6, lastTime=1437541572734, schema=db1, old shema=db1, borrowed=true, fromSlaveDB=false, threadId=514, charset=gb

溫馨提示

  • 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

提交評論