day17mysql集群解決方案主從復(fù)制pxc mycat haproxy講義_第1頁
day17mysql集群解決方案主從復(fù)制pxc mycat haproxy講義_第2頁
day17mysql集群解決方案主從復(fù)制pxc mycat haproxy講義_第3頁
day17mysql集群解決方案主從復(fù)制pxc mycat haproxy講義_第4頁
day17mysql集群解決方案主從復(fù)制pxc mycat haproxy講義_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡介

在我們的系統(tǒng)架構(gòu)中,DBsrver方面我們只是使用了單節(jié)點(diǎn)服務(wù),如果面對大并發(fā),海量數(shù)據(jù)的,顯然單節(jié)點(diǎn)的系統(tǒng)架構(gòu)將存在很嚴(yán)重的問題,所以接下來,實(shí)現(xiàn)MySQL的集群,來應(yīng)對大并發(fā)、海量數(shù)據(jù)等問題。我們一般應(yīng)用對數(shù)據(jù)庫而言都是“讀多寫少”,也就說對數(shù)據(jù)庫數(shù)據(jù)的壓力比較大,有一個(gè)思路就是說采用數(shù)據(jù)庫集群的方案:其中一個(gè)是主庫,負(fù)責(zé)寫入數(shù)據(jù),我們稱之為:寫庫;其它都是從庫,負(fù)責(zé)數(shù)據(jù),我們稱之為:讀庫; 通過上面的架構(gòu),可以看出,應(yīng)用程序會(huì)連接到多個(gè)節(jié)點(diǎn),使得應(yīng)用程序的復(fù)雜度會(huì)提升,可以通過中間件方式解決,如下:這樣的話,中間件的可靠性得到了保證,但是也帶來了新的問題,應(yīng)用系統(tǒng)依然是需要連接到2 、PXC面的架構(gòu)中,都是基于MySQL主從的架構(gòu),那么在主從架構(gòu)中,弱一致性問題依然沒有解決,如果在需要強(qiáng)一致中,顯然這種架構(gòu)是不能應(yīng)對的,比如:數(shù)據(jù)。C提供了讀寫強(qiáng)一致性的功能,可以保證數(shù)據(jù)在任何一個(gè)節(jié)點(diǎn)寫入的同時(shí)可以同步到其它節(jié)點(diǎn),也就意味著可以存其它的任何節(jié)點(diǎn)進(jìn)行操作,無延遲。面的C架構(gòu)中,雖然可以實(shí)現(xiàn)了事務(wù)的強(qiáng)一致性,但是它是通過犧牲了性能換來的一致性,如果在某些業(yè)務(wù)場景下,如果沒有強(qiáng)一致,那么使用C就不合適了。所以,在我們的系統(tǒng)架構(gòu)中,需要將這兩種方式綜合起來,這樣才是一個(gè)較為完善的架構(gòu)。master將數(shù)據(jù)改變記錄到二進(jìn)制日志(inyog),也即是配置文件log-bn指定的文件(志,binarylogvnts)slave將master的binarylogevents拷貝到它的中繼日志(relaylog)主DBserver和從DBserver數(shù)據(jù)庫的版本一致主DBserver和從DBserver數(shù)據(jù)庫數(shù)據(jù)一致主DBserver開啟二進(jìn)制日志,主DBserver和從DBserver的server_id1123456789SHOWMASTERSTATUS11234 用戶slave登錄grantreplicationslaveon*.*to'slave01'@''identifiedby'123456';flush1123456789CHANGEMASTERSTARTSHOWSLAVEmkdir33456789mkdirconfdataod777*-cdflog-bin=mysql-bin開啟二進(jìn)制日志server-id=1#服務(wù)id,不可重復(fù)dockercreate--namepercona-master01-v/data/mysql/master01/data:/var/lib/mysql- f.d-p3306:3306-edockerstartpercona-master01&&dockerlogs-fpercona-createuser'@'%'identifiedbygrantreplicationslaveon*.*toflush#出現(xiàn)[Err]1055Expression#1ofORDERBYclauseisnotinGROUPBYclauseand 28showmastershowglobalvariableslikeshowglobalvariableslikemaster1123456789cd/data/mysql/slave01mkdirconfdataod777*-cdfserver-id=2#服務(wù)iddockercreate--namepercona-slave01-v/data/mysql/slave01/data:/var/lib/mysql- f.d-p3307:3306-edockerstartpercona-slave01&&dockerlogs-fpercona-CHANGEMASTERmaster_user='master_password='startshowslave12123456789mysql>showslavestatus***************************1.row***************************Slave_IO_State:WaitingformastertosendeventMaster_Port:Last_Errno:0Until_Log_Pos:0000Master_UUID:/var/lib/mysql/SQL_Delay:SQL_Remaining_Delay:Slavehasreadallrelaylog;waitingformoreupdatesSlave_SQL_Running_State:86400Executed_Gtid_Set:1rowinset(0.00(statement-basedreplication,SBR),基于行的(row-basedreplication,RBR),混合模式(mixed-basedreplication,MBR)。對應(yīng)的,binlog的格式也有三種:STATEMENT,ROW,MIXED。STATEMENT模式缺點(diǎn)是在某些情況下會(huì)導(dǎo)致master-slave中的數(shù)據(jù)不一致(如sleep()函數(shù),last_insert_id(),以及user-de?ned112345678dockerrestartpercona-master01&&dockerlogs-fpercona-showglobalvariableslike4、MyCat一個(gè)可以視為MySQL集群的企業(yè)級數(shù)據(jù)庫,用來替代昂貴的Oacle一個(gè)融合內(nèi)存緩存技術(shù)、NL技術(shù)、HDFS大數(shù)據(jù)的新型SQLServer結(jié)合傳統(tǒng)數(shù)據(jù)庫和新型分布式數(shù)據(jù)倉庫的新一代企業(yè)級數(shù)據(jù)庫產(chǎn)品基于阿里開源的Cobar產(chǎn)品而研發(fā),Cobar的穩(wěn)定性、可靠性、優(yōu)秀的架構(gòu)和性能以及眾多成使用案例使MYCAT泛融入到MYCAT的中,使得MYCAT在很多方面都領(lǐng)先于目前其他一些同類的開源項(xiàng)目,甚至某些商業(yè)產(chǎn)品MCT背后有一支強(qiáng)大的技術(shù)團(tuán)隊(duì),其參與者都是5年以上資深軟件工程師、架構(gòu)師、DAMCT的產(chǎn)品質(zhì)量。支持MySQL、Oracle、DB2、SQLServer、PostgreSQL等DB的常見SQL語法基于心跳的自動(dòng)故障切換,支持讀寫分離,支持MySQL主從,以及galeracluster集群。支持GaleraforMySQL集群,PerconaCluster或者M(jìn)ariaDBcluster支持?jǐn)?shù)據(jù)的多片自動(dòng)路由與聚合,支持sum,count,max等常用的聚合函數(shù),支持單庫內(nèi)部任意jn,支持跨庫2表in,甚至基于caet的多表in。支持前端作為MySQL通用,后端JDBC方式支持Oracle、DB2、SQLServer、mongodb、巨杉。支持非堆內(nèi)存(DirectMemory)聚合計(jì)算(1.6)me程t參數(shù)、多結(jié)果集返回6)r)percona-percona-123456789<?xmlversion="1.0"encoding="UTF-<!DOCTYPEmycat:serverSYSTEM<mycat:serverxmlns:mycat="<property<property<property<property<property<property<property<property<property<property<property<property<property<property<user"<property<property1123456789<?xml<!DOCTYPEmycat:schemaSYSTEM<mycat:schema<schema"checkSQLschema="false"<dataNodename="dn1"dataHost="cluster1""<dataHostname="cluster1"maxCon="1000"minCon="10"balance="3"writeType="1"dbType="mysql"dbDriver="native"switchType="1"<heartbeat>select<writeHosthost="W1"url="8:3306"user="root"<readHosthost="W1R1"url="8:3307"user="root"password="root"/>負(fù)載均衡類型,目前的取值有3balance="0",不開啟讀寫分離機(jī)制,所有讀操作都發(fā)送到當(dāng)前可用的writeHostbalance="1",全部的readHost與standbywriteHost參與select語句的負(fù)載均衡,簡單的說,當(dāng)雙主雙從模式(M1->S1,M2->S2,并且M1與M2互為主備),正常情況下,M2,S1,S2都參與select語句的負(fù)balance="2",所有讀操作都隨機(jī)的在writeHost、readhostbalance="3",所有讀請求隨機(jī)的分發(fā)到wiriterHost對應(yīng)的readhost執(zhí)行,writerHost不負(fù)擔(dān)讀壓力,注意balance=3只在1.4及其以后版本有,1.3沒有。<property1212345678CREATETABLE`tb_ad``id`bigint(20)NOTNULL`type`int(10)DEFAULTNULLCOMMENT' 類型`title`varchar(100)DEFAULTNULLCOMMENT'描述`url`varchar(200)DEFAULTNULLCOMMENT' URL地址`created`datetimeDEFAULT`updated`datetimeDEFAULT99PRIMARYKEY)ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8 表'1','UniCity萬科天空之城', /images/2018/11/26/15432029097062227.jpg','2018-11-26'2018-11-26-percona-percona-percona-percona-、配置123456789cd/data/mysql/master02mkdirconfdataod777*- log-bin=mysql-bin#開啟二進(jìn)制日志server-id=1#服務(wù)id,不可重復(fù)dockercreate--namepercona-master02-v/data/mysql/master02/data:/var/lib/mysql- f.d-p3316:3306-edockerstartpercona-master02&&dockerlogs-fpercona-createuser''@'%'identifiedby'grantreplicationslaveon*.*to'flushshowmaster、配置1123456789cd/data/mysql/slave02mkdirconfdataod777*-cdf#server-id=2#服務(wù)id,不可重復(fù)dockercreate--namepercona-slave02-v/data/mysql/slave02/data:/var/lib/mysql- f.d-p3317:3306-eMYSQL_ROOT_PASSWORD=rootdockerstartpercona-slave02&&dockerlogs-fpercona-CHANGEMASTERstartshowslaveCREATECREATETABLE`tb_ad``id`bigint(20)NOTNULL`type`int(10)DEFAULTNULLCOMMENT 類型`title`varchar(100)DEFAULTNULLCOMMENT'描述`url`varchar(200)DEFAULTNULLCOMMENT URL地址`created`datetimeDEFAULT`updated`datetimeDEFAULTPRIMARYKEY)ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8 表、配置1234<?xml<!DOCTYPEmycat:schemaSYSTEM<mycat:schemaxmlns:mycat="556789<schema"checkSQLschema="false"<tablename="tb_ad"dataNode="dn1,dn2"rule="mod-<dataNodename="dn1"dataHost="cluster1"<dataNodename="dn2"dataHost="cluster2"""<dataHostname="cluster1"maxCon="1000"minCon="10"balance="3"writeType="1"dbType="mysql"dbDriver="native"switchType="1"<heartbeat>select<writeHosthost="W1"url="8:3306"user="root"<readHosthost="W1R1"url="8:3307"user="root"password="root"/><dataHostname="cluster2"maxCon="1000"minCon="10"balance="3"writeType="1"dbType="mysql"dbDriver="native"switchType="1"<heartbeat>select<writeHosthost="W2"url="8:3316"user="root"<readHosthost="W2R1"url="8:3317"user="root"password="root"/><property11./startup_nowrap.sh&&tail-f11INSERTINTO`tb_ad`(`id`,`type`,`title`,`url`,`created`,`updated`)VALUES('1','1','UniCity萬科天空之城',' /images/2018/11/26/15432029097062227.jpg','2018-11-26'2018-11-2623INSERTINTO`tb_ad`(`id`,`type`,`title`,`url`,`created`,`updated`)VALUES('2','1','天和尚海庭前',' /images/2018/11/26/1543202958579877.jpg','2018-11-26'2018-11-2645INSERTINTO`tb_ad`(`id`,`type`,`title`,`url`,`created`,`updated`)VALUES('3','1','[奉賢南橋]光語著',' /images/2018/11/26/15432029946721854.jpg','2018-11-26'2018-11-2667INSERTINTO`tb_ad`(`id`,`type`,`title`,`url`,`created`,`updated`)VALUES'1',周邊嘉興海逸長洲'-/images/2018/11/26/15432030275359146.jpg','2018-11-26'2018-11-268、mycatmycat做了數(shù)據(jù)庫的,在高并發(fā)的情況下,必然也會(huì)單節(jié)點(diǎn)性能問題,所以需要部署多個(gè)myct。架構(gòu):1cpmycatmycat2-23vim4#設(shè)置jmx5 67vim89<property<propertytail-f面架構(gòu)中,雖然對mycat做了集群,保障了mycat的可靠性,但是,應(yīng)用程序需要連接到多個(gè)myct很友好的,也就是說缺少負(fù)載均衡的組件,接下來我們來了解下HA 。 112345678dockerpullmkdirdockercreate--name--nethost-v vim/haoke/ha 9 optionhttp-server-option except timeouthttp- timeout timeout timeout timeouthttp-keep-alivetimeout 28 modestats statsrealmGlobal\statsauth 35 - modebalance 8:8066 8:8067dockerrestart&&dockerlogs-f6、PXCPerconaXtraDBCluster(簡稱PXC)是針對MySQL用戶的高可用性和擴(kuò)展性解決方案,基于PerconaServer。其包括了WriteSetREPlication補(bǔ)丁,使用Galera2.0庫,這是一個(gè)針對事務(wù)性應(yīng)用程序的同步多主機(jī)插件。PerconaServer是MySQL的改進(jìn)版本,使用XtraDB引擎,在功能和性能上較MySQL有著很顯著的提升,如提升了在高負(fù)載情況下的InnoDB的性能,為DBA提供了一些非常有用的性能診斷工具,另外有的參數(shù)和命令來PerconaXtraDBCluster官網(wǎng) /software/mysql-database/percona-xtradb-11234567dockervolumecreatev1dockervolumecreatev2dockervolumecreatedockerpullpercona/percona-xtradb-889dockertagpercona/percona-xtradb-cluster:5.7dockernetworkcreate--subnet=/24pxc-dockercreate-p13306:3306-vv1:/var/lib/mysql-eMYSQL_ROOT_PASSWORD=root-CLUSTER_NAME=pxc--name=pxc_node1--net=pxc-network--ip=dockercreate-p13307:3306-vv2:/var/lib/mysql-eMYSQL_ROOT_PASSWORD=root-eCLUSTER_NAME=pxc--name=pxc_node2-eCLUSTER_JOIN=pxc_node1--net=pxc-network--ip=pxcdockercreate-p13308:3306-vv3:/var/lib/mysql-eMYSQL_ROOT_PASSWORD=root-eCLUSTER_NAME=pxc--name=pxc_node3-eCLUSTER_JOIN=pxc_node1--net=pxc-network--ip=pxcshowstatuslike1123456789CREATETABLE`tb_ad``id`bigint(20)NOTNULL`type`int(10)DEFAULTNULLCOMMENT 類型`title`varchar(100)DEFAULTNULLCOMMENT'描述`url`varchar(200)DEFAULTNULLCOMMENT URL地址`created`datetimeDEFAULTPRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8 表'1','UniCity萬科天空之城', /images/2018/11/26/15432029097062227.jpg','2018-11-26'2018-11-26、PXC集群方案與ReplicationC集群方案所有節(jié)點(diǎn)都是可讀可寫的,Reatin從節(jié)點(diǎn)不能寫入,因?yàn)橹鲝耐绞菃蜗虻?,無法從save節(jié)點(diǎn)向master點(diǎn)同步。C同步機(jī)制是同步進(jìn)行的,這也是它能保證數(shù)據(jù)強(qiáng)一致性的根本原因,ReptinC是用犧牲性能保證數(shù)據(jù)的一致性,Rctin在性能上是高于C的。所以兩者用途也不一致。C重要信息的,例如:訂單、用戶信息等。Reatin用于一般信息的,能夠數(shù)據(jù)丟失,例如:購物車,用戶行為日志等。前面學(xué)習(xí)了主從架構(gòu)、Mycat中間件、HA負(fù)載均衡、PXC集群架構(gòu),在實(shí)際的項(xiàng)目中,往往不單單是一種架 、部署PXChaoke-haoke-haoke-haoke-dockervolumecreatehaoke-v4dockerpullpercona/percona-xtradb-9dockercreate-p13306:3306-vhaoke-v1:/var/lib/mysql-eMYSQL_ROOT_PASSWORD=root-eCLUSTER_NAME=pxc--name=pxc_node1--net=pxc-network--ip=pxcdockercreate-p13307:3306-vhaoke-v2:/var/lib/mysql-eMYSQL_ROOT_PASSWORD=root-eCLUSTER_NAME=pxc--name=pxc_node2-eCLUSTER_JOIN=pxc_node1--net=pxc-network--ip=pxcdockercreate-p13308:3306-vhaoke-v3:/var/lib/mysql-eMYSQL_ROOT_PASSWORD=root-eCLUSTER_NAME=pxc--name=pxc_node3--net=pxc-network--ip=pxcdockercreate-p13309:3306-vhaoke-v4:/var/lib/mysql-eMYSQL_ROOT_PASSWORD=root-eCLUSTER_NAME=pxc--name=pxc_node4-eCLUSTER_JOIN=pxc_node3--net=pxc-network--ip=pxcdockerstartpxc_node1&&dockerlogs-fdockerstartpxc_node2&&dockerlogs-fpxc_node2dockerstartpxc_node3&&dockerlogs-fdockerstartpxc_node4&&dockerlogs-fpxc_node4showstatuslike12123456789CREATETABLE`tb_house_resources``id`bigint(20)NOTNULL`title`varchar(100)DEFAULTNULLCOMMENT'房源標(biāo)題`estate_id`bigint(20)DEFAULTNULLCOMMENT'樓盤`building_num`varchar(5)DEFAULTNULLCOMMENT'樓號(棟`building_unit`varchar(5)DEFAULTNULLCOMMENT'單元號`building_floor_num`varchar(5)DEFAULTNULLCOMMENT'門牌號`rent`int(10)DEFAULTNULLCOMMENT `rent_method`tinyint(1)DEFAULTNULLCOMMENT'租賃方式,1-整租,2-合租六押一,4-年付押一,5-其它一,2-付三押一,3-`covered_area`varchar(10)DEFAULTNULLCOMMENT'建筑面積`use_area`varchar(10)DEFAULTNULLCOMMENT'使用面積`floor`varchar(10)DEFAULTNULLCOMMENT'`orientation`varchar(2)DEFAULTNULLCOMMENT'朝向:東、南、西、北`decoration`tinyint(1)DEFAULTNULLCOMMENT'裝修,1-精裝,2-簡裝,3-毛坯`pic`varchar(1000)DEFAULTNULLCOMMENT ,最多5張`house_desc`varchar(200)DEFAULTNULLCOMMENT'描述`contact`varchar(10)DEFAULTNULLCOMMENT'聯(lián)系人``varchar(11)DEFAULTNULLCOMMENT 號`time`tinyint(1)DEFAULTNULLCOMMENT'看房時(shí)間,1-上午,2-中午,3-下午,4-晚上,5-全天`property_cost`varchar(10)DEFAULTNULLCOMMENT'物業(yè)費(fèi)`created`datetimeDEFAULT`updated`datetimeDEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8COMMENT='房源表1123456789cd/data/mysql/haoke/master01mkdirconfdataod777*-cdf#log-bin=mysql-bin#開啟二進(jìn)制日志server-id=1#服務(wù)id,不可重復(fù)dockercreate--namepercona-haoke-master01-/data/mysql/haoke/master01/data:/var/lib/mysql- f.d-p23306:3306-eMYSQL_ROOT_PASSWORD=rootpercona:5.7.23dockerstartpercona-haoke-master01&&dockerlogs-fpercona-haoke-createuser'@'%'identifiedbygrantreplicationslaveon*.*toflushshowmaster1123456789cd/data/mysql/haoke/slave01mkdirconfdataod777*-cdfserver-id=2#服務(wù)id,不可重復(fù)dockercreate--namepercona-haoke-slave01- f.d-p23307:3306-dockerstartpercona-haoke-slave01&&dockerlogs-fpercona-haoke-CHANGEMASTERCREATECREATETABLE`tb_ad``id`bigint(20)NOTNULL`type`int(10)DEFAULTNULLCOMMENT 類型`title`varchar(100)DEFAULTNULLCOMMENT'描述`url`varchar(200)DEFAULTNULLCOMMENT URL地址`created`datetimeDEFAULT`updated`datetimeDEFAULTPRIMARYKEY)ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8 表、部署cdcdmkdircp/haoke/mycat.-mvmycat/mycat-<?xmlversion="1.0"encoding="UTF-<!DOCTYPEmycat:serverSYSTEM<mycat:serverxmlns:mycat="1234556789<property<property<property<property<property<property<property<property<property<property<property<property<property<property<user"<property<property<?xml<!DOCTYPEmycat:schemaSYSTEM<mycat:schemaxmlns:mycat="<schemaname="haoke"checkSQLschema="false"<tablename="tb_house_resources"dataNode="dn1,dn2"rule="mod-long"<tablename="tb_ad"<dataNodename="dn1"dataHost="cluster1"database="haoke"<dataNodename="dn2"dataHost="cluster2"database="haoke"<dataNodename="dn3"dataHost="cluster3"database="haoke"<dataHostname="cluster1"maxCon="1000"minCon="10"balance="2"writeType="1"dbType="mysql"dbDriver="native"switchType="1"<heartbeat>select<writeHosthost="W1"url="8:13306"user="root"<readHosthost="W1R1"url="8:13307"user="root"password="root"/><dataHostname="cluster2"maxCon="1000"minCon="10"balance="2"writeType="1"dbType="mysql"dbDriver="native"switchType="1"<heartbeat>select<writeHosthost="W2"url="8:13308"user="root"123456789 <readHosthost="W2R1"url="8:13309"password="root"<dataHostname="cluster3"maxCon="1000"minCon="10"writeType="1"dbType="mysql"dbDriver="native"<heartbeat>select<writeHosthost="W3"url="8:23306" <rea

溫馨提示

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

評論

0/150

提交評論