一,拓撲圖
一,拓撲設置和疑問
1) mysql數據庫進行一主二從設置,從1和從2
2) 在主庫上安裝Mysql_proxy,實現主庫和從1的讀寫分離
3) 擔心的問題:從1不能及時從主庫同步
主庫故障,可停止Mysql_proxy,切換到從1,從2停止從主庫備份,
和從1組合成一個主從和讀寫分離架構。主庫修復好了,但數據還是老數據,可以執行原來從3的備份任務。這樣需要一個全局的工具部署,如,每臺機器都安裝Mysql_proxy,寫腳本實現角色切換等等。
三,Mysql_proxy 安裝過程
1)下載mysql-proxy-0.6.0 -linux-rhas4-x86.tar.gz
mv sbin/mysql-proxy /usr/local/sbin/
mv share/mysql-proxy /usr/local/share/
2)編輯啓動腳本:
Vi /etc/init.d/mysql_proxy
#!/bin/sh
export LUA_PATH=/usr/local/share/mysql-proxy/?.lua
mode=$1
if [ -z "$mode" ] ; then
mode="start"
fi
case $mode in
'start')
mysql-proxy --daemon \ #以守護進程方式啓動
--admin-address=:4401 \
--proxy-address=:3307 \ #監聽3307端口
--proxy-backend-addresses=:3306 \ #本機數據庫的3306端口(寫)
--proxy-read-only-backend-addresses=192.168.109.3:3306 \ #從1的地址和端口
#--proxy-read-only-backend-addresses=10.10.74.61:3306 \
--proxy-lua-script=/usr/local/share/mysql-proxy/rw-splitting.lua
;;
'stop')
killall mysql-proxy
;;
'restart')
if $0 stop ; then
$0 start
else
echo "retart failed!!!"
exit 1
fi
;;
esac
exit 0
3)相關命令
/etc/init.d/mysql_proxy start/stop/restart
四,提高這個存儲架構的一些設想:
1) 主庫和從1設置成互爲主從模式,是否可以解決從1同步的問題
2) 主庫出現問題時如何對應?硬盤空間不足,故障及時隔離和處置