Amoeba實現mysql的讀寫分離 CentOS6.5下

來源:互聯網
上載者:User

標籤:centos6.5   資料庫   amoeba   mysql   

Amoeba是一個以MySQL為底層資料存放區,並對應用提供MySQL協議介面的proxy。它集中地響應應用的請求,依據使用者事先設定的規則,將SQL請求發送到特定的資料庫上執行。基於此可以實現負載平衡、讀寫分離、高可用性等需求。與MySQL官方的MySQL Proxy相比,作者強調的是amoeba配置的方便(基於XML的設定檔,用SQLJEP文法書寫規則,比基於lua指令碼的MySQL Proxy簡單)


不足

a)、目前還不支援事務b)、暫時不支援預存程序(近期會支援)

c)、不適合從amoeba導資料的情境或者對大資料量查詢的query並不合適(比如一次請求返回10w以上甚至更多資料的場合)

d)、暫時不支援分庫分表,amoeba目前只做到分資料庫執行個體,每個被切分的節點需要保持庫表結構一致:

Amoeba:阿米巴原蟲



實驗環境:ip

master:192.168.122.26

slave:192.168.122.165

client:192.168.122.62



第一步:兩台mysql實現主從複製。從可以有多台(不再贅述)


第二部:安裝Amoeba


    安裝Amoeba需要java環境,

    yum localinsatll jdk-7ull-linux-x64.rpm

    A. JAVA環境
[[email protected] ~]# java -version         //查看java安裝高本版的
java version "1.7.0_09-icedtea"
OpenJDK Runtime Environment (rhel-2.3.4.1.el6_3-x86_64)
OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)


d第三部:

        vim/etc/profile

         650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/70/F5/wKioL1XCHAjgvDr1AADN-EqRUa8441.jpg" title="21.png" alt="wKioL1XCHAjgvDr1AADN-EqRUa8441.jpg" />


     source /etc/profile


Amoeba 不許要安裝,只需要解壓即可

    mkdir /usr/local/amoeba

    # tar xf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/

    

    在master端授權一個使用者給讀寫權限

    mysql> grant select, insert, update,delete on *.* to [email protected]‘192.168.122.%‘     identified by ‘123‘;

    mysql> flush privileges;


    查看slave伺服器使用者

     mysql> select user host from mysql.user;

    mysql> delete from mysql.user where user=‘amoeba‘;  刪除自動同步的使用者


    mysql>grant select on *.* to [email protected]‘192.168.122.%‘identified by ‘123‘;  建立一個唯讀用    戶

    mysql> flush privileges;

    mysql> show grants for ‘amoeba‘@‘192.168.122.%‘;   查詢授權使用者



設定資料庫的串連池

        

    650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/70/F5/wKioL1XCIQaymxgSAAFaGDTMFss095.jpg" title="21.png" alt="wKioL1XCIQaymxgSAAFaGDTMFss095.jpg" />



  vim dbServers.xml

    650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/70/F5/wKioL1XCIR2QbGlWAAKUFIIB6io218.jpg" title="22.png" alt="wKioL1XCIR2QbGlWAAKUFIIB6io218.jpg" />

        650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/70/F9/wKiom1XCHzTwBXpDAAME3o3IMZA861.jpg" title="23.png" alt="wKiom1XCHzTwBXpDAAME3o3IMZA861.jpg" />






vim amoeba.xml 的修改




        650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/70/F9/wKiom1XCIT-ieMqvAAILtcggO2Q705.jpg" title="21.png" alt="wKiom1XCIT-ieMqvAAILtcggO2Q705.jpg" />


650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/70/F9/wKiom1XCIVHiVme6AAI58pdPYd4055.jpg" title="22.png" alt="wKiom1XCIVHiVme6AAI58pdPYd4055.jpg" />


提示:
defaultPool:配置了預設的資料庫節點,一些除了SELECTUPDATE INSERT DELETE的語句都會在defaultPool執行。
writePool:配置了資料庫寫庫,通常配為Master,如這裡就配置為之前定義的Master資料庫。
readPool:配置了資料庫讀庫,通常配為Slave或者Slave組成的資料庫池,如這裡就配置之前的virtualSlave資料庫池。


    650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/70/F5/wKioL1XCI1mxQ4AHAAKPkLEFkL4552.jpg" title="23.png" alt="wKioL1XCI1mxQ4AHAAKPkLEFkL4552.jpg" />    



    四、啟動並測試
1. 啟動
[[email protected] conf]# /usr/local/amoeba/bin/amoeba start
The stack size specified is too small, Specify at least 160k    //提示棧太小128k
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

[[email protected] conf]# vim /usr/local/amoeba/bin/amoeba
DEFAULT_OPTS="-server -Xms256m -Xmx256m -Xss256k"



測試的討論

1,在master端建立一個庫,他會被同時複製到slave端。

2,在slave端,停掉主從複製 ( mysql>slave stop;)

3在master端,建立的庫裡插入一張表1,(slave端不會有)

4,在slave端的新庫裡插入一張表2 (master端不會有)

 5,mysql>slave start; 開啟複製

6.在client端插入一張表3,在master端查看,slave端沒有,成功。


        650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/70/F5/wKioL1XCJnOxXxb8AAGLEgo7nGE201.jpg" title="24.png" alt="wKioL1XCJnOxXxb8AAGLEgo7nGE201.jpg" />

            650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/70/F9/wKiom1XCJIqzpPbTAAHMcf1Ylsw441.jpg" title="35.png" alt="wKiom1XCJIqzpPbTAAHMcf1Ylsw441.jpg" />

    650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/70/F5/wKioL1XCJqDilgliAAC5Sb_admc440.jpg" title="客胡端查詢1.png" alt="wKioL1XCJqDilgliAAC5Sb_admc440.jpg" />


本文出自 “學習日誌” 部落格,請務必保留此出處http://feibendeqie.blog.51cto.com/10208202/1682083

Amoeba實現mysql的讀寫分離 CentOS6.5下

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.