讀寫分離

mycat讀寫分離與主從切換數據庫

分表:在臺服務器上,優勢是易維護,相似表分區,缺點是在一臺db服務器上,沒法分擔IO、負載集中。 分庫:在多臺服務器上,優勢是分擔IO、負載均衡,缺點是較不易維護、數據統計以及jion操做有些難度。
數據庫切分的目的是爲了分擔IO、負載均衡,分表沒法達到最佳的要求,因此沒法成爲主流。
在一臺服務器,主3317端口,從3327端口。 主庫備庫上,添加複製賬號:
GRANT REPLICATION SLAVE ON . TO ‘repl’@’10.254.%’ IDENTIFIED BY ‘mycatms’
在備庫上3327端口上設置複製:
主庫:3317端口
這裏寫圖片描述
這裏寫圖片描述
從庫:3327端口
這裏寫圖片描述
這裏寫圖片描述
數據同步測試:
這裏寫圖片描述
這裏寫圖片描述
配置schema.xml:
而後修改mycat的schema.xml:
alance爲1:讓所有的readHost及備用的writeHost參與select的負載均衡。
witchType爲2:基於MySQL主從同步的狀態決定是否切換。
heartbeat:主從切換的心跳語句必須爲show slave status。
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
alance爲1:讓所有的readHost及備用的writeHost參與select的負載均衡。
witchType爲2:基於MySQL主從同步的狀態決定是否切換。
heartbeat:主從切換的心跳語句必須爲show slave status。
這裏寫圖片描述
這裏寫圖片描述
有配置讀節點:
這裏寫圖片描述
這裏寫圖片描述
在mycat窗口上執行select操做:
後臺日誌顯示出只在3327上執行:
這裏寫圖片描述
這裏寫圖片描述
Mycat窗口寫操做:
這裏寫圖片描述
這裏寫圖片描述
後臺log顯示寫操做在3317上:
這裏寫圖片描述
這裏寫圖片描述
Check下主從數據是否都已經寫入了:
主庫3317端口:
這裏寫圖片描述
這裏寫圖片描述
從褲3327端口:
這裏寫圖片描述
這裏寫圖片描述
關閉主庫
這裏寫圖片描述
這裏寫圖片描述
Mycat後臺報錯:
看到主從失效,由於主down了。
由於咱們經過mycat配置了主從切換模式,如今3317端口主庫down了,那麼寫庫應該自動切換到從褲3327上面,若是在mycat上面寫入,就應該寫到3327端口的從庫了,驗證以下:
(1)在mycat窗口錄入數據:
這裏寫圖片描述
這裏寫圖片描述
(2)在3327端口從褲驗證數據:
這裏寫圖片描述
這裏寫圖片描述
看到3327端口的數據有新錄入的4,meituan的數據。代表驗證成功。
(3) dnindex屬性文件中writeHost已經變成了第二個了,以下所示:
這裏寫圖片描述
這裏寫圖片描述
這個時候就會報錯,主從鏈接失敗,緣由是從庫3327會再從新從主庫3317同步全部的數據,可是從庫已經有了,因此就會報錯,以下所示:
這裏寫圖片描述
這裏寫圖片描述
我採用
一個個忽略事後,就正常了,沒有報錯:
這裏寫圖片描述
這裏寫圖片描述
可是這個時候若是再在mycat窗口上錄入數據,debug分析面,仍是會寫入到3327裏面去:
這裏寫圖片描述
這裏寫圖片描述
後臺debug日誌:
這裏寫圖片描述
這裏寫圖片描述
OK,至此,mycat主從切換成功。
相關文章
相關標籤/搜索