登錄mycat 命令:mysql -uroot -p123456 -h 192.168.57.98 -P8066
1. 主庫(kù)只負(fù)責(zé)讀聂喇,備庫(kù)只負(fù)責(zé)寫,一主一備
當(dāng)備庫(kù)掛掉時(shí)风喇,無(wú)法讀取數(shù)據(jù)
當(dāng)主庫(kù)掛掉時(shí),無(wú)法寫數(shù)據(jù),但是還能讀取數(shù)據(jù)
第一種情況:當(dāng)配置為 balance=3朴读;writetype=1;switch=0或者switch=1走趋;
當(dāng)備庫(kù)掛掉時(shí)衅金,無(wú)法讀取數(shù)據(jù)
當(dāng)主庫(kù)掛掉時(shí),無(wú)法寫數(shù)據(jù),但是還能讀取數(shù)據(jù)
第二種情況:當(dāng)配置為balance=3氮唯;writetype=1鉴吹;switch=2時(shí)
主庫(kù)掛掉既不能讀也不能寫
備庫(kù)掛掉即能讀也能寫
配置的文件如下:
有兩個(gè)參數(shù)需要注意,balance和 switchType您觉。其中拙寡,balance指的負(fù)載均衡類型,目前的取值有4種:
balance=“0”, 不開啟讀寫分離機(jī)制琳水,所有讀操作都發(fā)送到當(dāng)前可用的writeHost上肆糕;
balance=“1”,全部的readHost與stand by writeHost參與select語(yǔ)句的負(fù)載均衡在孝,簡(jiǎn)單的說(shuō)诚啃,當(dāng)雙主雙從模式(M1->S1,M2->S2私沮,并且M1與 M2互為主備)始赎,正常情況下,M2仔燕、S1造垛、S2都參與select語(yǔ)句的負(fù)載均衡;如果是雙主雙從架構(gòu)晰搀,正常情況下五辽,只有第一臺(tái)主庫(kù)充當(dāng)寫操作,其余的三臺(tái)全部是從讀
balance=“2”外恕,所有讀操作都隨機(jī)的在writeHost杆逗、readhost上分發(fā);
balance=“3”鳞疲,所有讀請(qǐng)求隨機(jī)的分發(fā)到wiriterHost對(duì)應(yīng)的readhost執(zhí)行罪郊,writerHost不負(fù)擔(dān)讀壓力。
heartbeat 標(biāo)簽指明用于和后端數(shù)據(jù)庫(kù)進(jìn)行心跳檢查的語(yǔ)句尚洽。
? ? ? 可以使用兩種方式檢查:? select user() 或者show slave status
write type
writeType="0", 所有寫操作發(fā)送到配置的第一個(gè) writeHost悔橄,第一個(gè)掛了切到第二個(gè)writeHost,重新啟動(dòng)后已切換后的為準(zhǔn)翎朱,切換記錄在配置文件中:dnindex.properties .
writeType="1"橄维,所有寫操作都隨機(jī)的發(fā)送到配置的 writeHost,1.5以后已經(jīng)廢棄了拴曲。
writeType="2"争舞,沒(méi)實(shí)現(xiàn)。 -1 表示不自動(dòng)切換 1 默認(rèn)值澈灼,自動(dòng)切換 2 基于MySQL 主從同步的狀態(tài)決定是否切換
switchType指的是切換的模式竞川,目前的取值也有4種:
switchType=’-1’ 表示不自動(dòng)切換店溢;
switchType=‘1’ 默認(rèn)值,表示自動(dòng)切換委乌;
switchType=‘2’?基于MySQL主從同步的狀態(tài)決定是否切換,心跳語(yǔ)句為 show slave status床牧;
switchType='3’基于MySQL galary cluster的切換機(jī)制(適合集群)(1.4.1),心跳語(yǔ)句為 show status like ‘wsrep%’遭贸。
2. 一主一備戈咳,主備都能讀寫,主庫(kù)down掉后 就以從庫(kù)為準(zhǔn)了壕吹,就算主庫(kù)恢復(fù)了著蛙,還是以從庫(kù)為準(zhǔn)
配置:當(dāng)配置為 balance=2;writetype=0耳贬;switch=1踏堡;
? ? 當(dāng)主庫(kù)和備庫(kù)都能讀寫,當(dāng)主庫(kù)和備庫(kù)隨機(jī)讀咒劲,主庫(kù)down了以從庫(kù)為準(zhǔn)進(jìn)行讀寫顷蟆,當(dāng)主庫(kù)恢復(fù)后,讀還是隨機(jī)的兩臺(tái)機(jī)器腐魂,但是寫數(shù)據(jù)以從庫(kù)為準(zhǔn)帐偎,無(wú)法恢復(fù)到從主庫(kù)進(jìn)行寫了
3. 雙主、互為主備
互為主備:只要把slave節(jié)點(diǎn)也按照master節(jié)點(diǎn)進(jìn)行配置蛔屹,就可以實(shí)現(xiàn)雙向的主從復(fù)制肮街。
從庫(kù)新增用戶:grant replication slave,replication client on *.* to 'slave'@'192.168.57.98' identified by 'Zdkx#2021';
從庫(kù)指定master地址:change master to master_host='192.168.56.46', master_user='slave', master_password='Zdkx#2021', master_port=3306, master_log_file='mysql-bin.000020', master_log_pos=941, master_connect_retry=30;
配置:當(dāng)配置為 balance=1;writetype=0判导;switch=1;
schema 配置如下: