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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

6、且開啟主從同步;3. 建議Mycat服務器本地有一個MySQL Server,若沒有,建議安裝一個;4 Mycat安裝配置4.1 首先確認Mycat服務器網絡是否聯通用IP地址為33的主機ping31的機器,其結果如下: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的主機ping32的機器,其結果如下: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說明:網絡不通的話請先檢查網絡。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語言開發,運行環境為JDK1.7及以上的版本,Mycat服務器需要安裝JDB1.7或以上版本;如果版本過低請下載JDK1.7或以上版本安裝;4.3 下載Mycat安裝包這里下載的版本是Mycat 1.4-RELEASE版;下載完成后通過FTP或傳輸軟件將安裝包上傳到服務器目錄/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說明:安裝包已經提前上傳到目錄/usr/local/下,修改解壓后文件夾名為Mycat4.5 增加Mycat相關的環境變量rootwyg003 Mycat# cdrootwyg003 # vi .bash_profileexport MYCAT_HOME=/usr/local/Mycatrootwyg003 #source .bash_profile說明:設置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 說明:進入/usr/local/Mycat/conf/目錄修改,主要配置的是Mycat的用戶名和密碼,Mycat的用戶名和密碼和MySQL的用戶名密碼是分開的,應用連接Mycat就用這個用戶名和密碼。邏輯庫TESTDB,用戶名test,密碼test;4.6.2 修改schema.xmlrootwyg003 conf# cd /usr/local/Mycat/conf/rootwyg003

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

13、at startStarting Mycat-server.rootwyg003 bin#說明:進入目錄/usr/local/Mycat/bin/執行;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默認使用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 關閉Mycat服務rootwyg003 bin# cd /usr/local/Mycat/bin/rootwyg003 bin# ./mycat stopStopping Mycat-server.Stopped M

17、ycat-server.rootwyg003 bin#說明:進入/usr/local/Mycat/bin/目錄執行;5 讀寫分離驗證先將日志的debug(log4j.xml文件)模式打開,執行建表插入數據操作;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)說明:執

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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論