Atlas實現Mysql讀寫分離(結合MHA)

來源:互聯網
上載者:User

標籤:mysql   atlas   讀寫分離   

一、Atlas介紹


Atlas是由 Qihoo 360, Web平台部基礎架構團隊開發維護的一個基於MySQL協議的資料中介層項目。它是在mysql-proxy 0.8.2版本的基礎上,對其進行了最佳化,增加了一些新的功能特性。360內部使用Atlas啟動並執行mysql業務,每天承載的讀寫請求數達幾十億條。

目前實現比較穩定功能的是讀寫分離.分庫分表還沒那麼的完善..


二、環境:

作業系統版本:CentOS-6.5 64bit

Atlas 版本: 2.2.1

mysql 版本: mysql-5.6.32

192.168.2.45    mysql01      # mysql

192.168.2.46    mysql02      # mysql

192.168.2.47    mysql03      # mysql

192.168.2.48    mysql04      # mysql

192.168.2.40    atlas        # atlas


三、安裝部署步驟

1,安裝部署MySQL-Master

2,安裝部署MySQL-Slave

3,安裝部署Atlas


# MySQL-Master/Slave 這裡就不做安裝配置說明了.請參考<<Centos 6.5 安裝配置Mysql MHA>>

1、安裝部署Atlas並配置讀寫分離

# 為了簡單,這裡就使用rpm Or yum 方式安裝Atlas

1.1、下載rpm包

下載軟體地址為請點進去自行下載對應的版本 https://github.com/Qihoo360/Atlas/releases 

下載完了之後.如果有yum倉庫的同學可以將Atlas的rpm添加到yum倉庫,即使用yum安裝,

rpm -ivh Atlas-2.2.1.el6.x86_64.rpm


1.2、配置Atlas

# 編輯設定檔

cat /usr/local/mysql-proxy/conf/test.cnf

# 內容如下, End結束

[mysql-proxy]admin-username = adminadmin-password = pwdproxy-backend-addresses = 192.168.2.30:3306proxy-read-only-backend-addresses = 192.168.2.47:3306pwds = root:cSC39iNdNwY+dCK5O+BClA==, backup:yU4TuGo3ReQ=  # 要在mysql資料庫機器授權root使用者遠端連線daemon = truekeepalive = trueevent-threads = 4log-level = debuglog-path = /usr/local/mysql-proxy/logproxy-address = 0.0.0.0:33            06admin-address = 0.0.0.0:2345# End

---------------

# 配置Atlas環境變數

echo ‘export PATH=$PATH:/usr/local/mysql-proxy/bin/‘ > /etc/profile.d/atlas.shsource /etc/profile.d/atlas.sh


# 編輯開機指令碼

cat /etc/init.d/atlas 

#!/bin/bash##atlas:    Atlas Daemon## chkconfig:    - 90 25# description:  Atlas Daemon## Source function library.start(){        echo -n $"Starting atlas: "        /usr/local/mysql-proxy/bin/mysql-proxyd test start        echo }stop(){        echo -n $"Shutting down atlas: "        /usr/local/mysql-proxy/bin/mysql-proxyd test stop        echo}ATLAS="/usr/local/mysql-proxy/bin/mysql-proxyd"[ -f $ATLAS ] || exit 1# See how we were called.case "$1" in        start)                start                ;;        stop)                stop                ;;        restart)                stop                sleep 3                start                ;;        *)                echo $"Usage: $0 {start|stop|restart}"                exit 1esacexit 0


# 設定為開機自動啟動

chmod +x /etc/init.d/atlaschkconfig --add atlaschkconfig atlas on


# 查看監聽連接埠

netstat -tanlp | grep mysqltcp        0      0 0.0.0.0:2345                0.0.0.0:*                   LISTEN      9111/mysql-proxy    tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      9111/mysql-proxy


2345連接埠是Atlas的管理介面,此介面提供了查看mysql狀態,設定上線、下線後端mysql伺服器

存取方法使用mysql命令

mysql -h127.0.0.1 -P2345 -uadmin -ppwd

這裡的使用者名稱密碼是上面設定檔中的admin-username = admin、admin-password = pwd

下面是管理介面的使用協助

SELECT * FROM help;  # 查看協助資訊SELECT * FROM backends; # 查看後端主機狀態SET OFFLINE $backend_id  # 下線一台主機,$backend_id == SELECT * FROM backends;查出來的IDSET ONLINE $backend_id   # 上線一台主機ADD MASTER $backend      # 添加一台master節點,如: ADD MASTER 192.168.2.30;ADD SLAVE $backend       # 添加一台slave節點,如 : ADD SLAVE 192.168.2.47;REMOVE BACKEND $backend_id # 刪除一個節點,


3306連接埠是用戶端串連此連接埠用來發送sql指令,預設的連接埠為1234,這裡修改為了3306,配置項為proxy-address = 3306


[說明]

1、主庫上綁定vip,在atlas設定檔中主庫設定為vip地址,這樣無論主庫怎麼切換,最終的vip不會改變。atlas永遠把vip對應的伺服器當作主庫。

2、由於備用主庫原來是從庫,即在atlas設定檔中是作為從庫的,故當接管為主庫時,這時該庫既可以寫入也可以讀。故需要手工移除從庫的讀功能。(到管理介面,remove backend idx)

3、如果需要修複原主庫,那麼原主庫作為新主庫的從庫存在。可以手工加入atlas中(add slave ip:port)

[結論]:可以很好的支援MHA切換,但是需要注意以上第2點內容。


本文出自 “讓一切隨風” 部落格,謝絕轉載!

Atlas實現Mysql讀寫分離(結合MHA)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.