mysql-雙主+keepalived高可用架構

來源:互聯網
上載者:User

標籤:msyql   keepalived   

 在生產環境中,任何架構的建立,必須擁有防止單點故障的存在.
mysql可以擁有主從,或者雙主,加上keepalived的VRRP熱備切換功能可以實現
還有其他的,MHA,PXC,MMM,heartbeat+DRBD等
-----------------------------------------------------------------------------------
 搭建思路,首先兩台mysql互為主從複製關係,通過keepalived的虛擬IP來提供mysql服務
centos7+雙mysql
今天要達到的目的是主主複製,都是主也都是從,再用keepalived虛擬IP來提供服務,保證伺服器的高可用性
 650) this.width=650;" height="490" src="http://b287.photo.store.qq.com/psb?/81c1194a-ff39-4e50-b1b1-40057b06260f/srz3G1sSLgeLGSWHhjn*g678RUtC5i.Z3dWg4uTGsDg!/b/dB8BAAAAAAAA&bo=2ALqAQAAAAAFEAI!" width="728" style="vertical-align:top;" alt="dB8BAAAAAAAA&bo=2ALqAQAAAAAFEAI!" />
主從複製原理
主伺服器將更新事物儲存binlog記錄檔,
slave將主伺服器binlog拷貝到自己的中繼日誌使用io線程
sql線程重放中繼日誌中的事物.完成主從複製
--------------------------------------------------------------------------------------
主從複製遇到的問題,從伺服器同步延遲
1,5.6之前的版本主從複製是單線程,之後的版本是多線程,可以升級mysql或者mariadb
2,從伺服器的硬體設定差距大,無法承載主伺服器過大的資料並發,升級配置
3,單一語句或事物執行時間過長,可以使用慢語句一點一點排查最佳化
4,主從的網路問題,可以配置乙太網路彙總鏈路,提高網路頻寬.
5,從資料庫多,導致延遲
6,待續
---------------------------------------------------------------------------------------- 
主從資料庫設定
首先修改my.cnf檔案
650) this.width=650;" height="217" src="http://b286.photo.store.qq.com/psb?/81c1194a-ff39-4e50-b1b1-40057b06260f/FLILc01GSx7arW6.MXNlU9TvcJ4iioc1ECnlVu*6TAQ!/b/dB4BAAAAAAAA&bo=gAHZAAAAAAAFEGs!" width="384" style="vertical-align:top;" alt="dB4BAAAAAAAA&bo=gAHZAAAAAAAFEGs!" />
首先開啟binlog,然後開啟relaylog
auto-increment-increment=2   如果表中有auto自動成長的列,每次增加數是2,因為只用到了2台mysql,如果是3台就用3
auto-increment-offset=1   預設起始位,第二天則用2
預防的問題就是如果第一台宕機,
正好自動序列停在了3,
而另一台還沒有同步到資料就切換
新來的資料將會還是延續之前的自動填寫,
等第一台修好以後,原本的資料會跟另一台衝突,
如果按照上面的思路,兩邊增量跟起始位都不一樣
例:135     246, 就算中途沒有同步到某條資料
等開始同步後是不會有任何衝突的
而且這樣做可以讓兩台伺服器都同是運行也不會有幹擾
binlog_do_db=庫名,加入單條命令就是制定同步哪個,也可以加入多個

開始建立授權使用者
650) this.width=650;" height="67" src="http://b287.photo.store.qq.com/psb?/81c1194a-ff39-4e50-b1b1-40057b06260f/wBLOLANz2OnE2C4QUzbJ5ZeJ3qzYeVEdUSnqchqQfIE!/b/dB8BAAAAAAAA&bo=2QJDAAAAAAAFEKs!" width="729" style="vertical-align:top;" alt="dB8BAAAAAAAA&bo=2QJDAAAAAAAFEKs!" />
查看當前binlog和位置
650) this.width=650;" height="237" src="http://b286.photo.store.qq.com/psb?/81c1194a-ff39-4e50-b1b1-40057b06260f/fsnPvTf2Yftey7pUIh30Uv8bCdSfE8l3ZxThhdUTv0c!/b/dB4BAAAAAAAA&bo=1wLtAAAAAAAFEAs!" width="727" style="vertical-align:top;" alt="dB4BAAAAAAAA&bo=1wLtAAAAAAAFEAs!" />
從開始建立串連
650) this.width=650;" height="60" src="http://b288.photo.store.qq.com/psb?/81c1194a-ff39-4e50-b1b1-40057b06260f/npUfOaCkaHQ48MC6HCKRiS5ksjuVbvNacL8WYDvPPmI!/b/dCABAAAAAAAA&bo=1AI8AAAAAAAFENk!" width="724" style="vertical-align:top;" alt="dCABAAAAAAAA&bo=1AI8AAAAAAAFENk!" />
start slave;啟動
650) this.width=650;" height="261" src="http://b286.photo.store.qq.com/psb?/81c1194a-ff39-4e50-b1b1-40057b06260f/QpUtwRE27KXbPXOEEkPRVxvTDXL6ak5gOcxVM9JEwFY!/b/dB4BAAAAAAAA&bo=dgIFAQAAAAAFEEM!" width="630" style="vertical-align:top;" alt="dB4BAAAAAAAA&bo=dgIFAQAAAAAFEEM!" />
兩台電腦都要互相主從複製
關注防火牆,不然串連不到..
搞定之後兩邊各自建立庫表,插入資料,會發現原來設定的意義
------------------------------------------------------------------------------------------------
 keepalived高可用性
keepalived是一個叢集管理中保證叢集高可用的軟體解決方案,類似heartbeat,防止單點故障
VRRP協議為基礎,虛擬路由冗餘協議
多個相同功能的伺服器組成一個組,組裡有一個master和多個backup,master擁有vip對外提供服務
組播地址是224.0.0.18,當backup收不到vrrp包就認為是master宕機了.這時候vrrp按照優先順序
來選舉一個master繼續提供服務.
keepalived主要擁有三個模組
core模組是keepalived的核心模組
check是負責健全狀態檢查的,常見的是下面幾種
    1,tcp_check  工作在四層
    2,http_get 工作在五層,向指定url執行http請求,將得到的md5加密並與之指定的md5匹配,不匹配從伺服器集區中移除
    3,ssl_get與上一個類似
    4,misc_check 用指令碼來檢測
    5,smtp_check 檢測郵件服務的
vrrp是用來實現vrrp協議的
----------------------------------------------------------------------------------------------------
keepalived的安裝配置
首先安裝一下keepalived的支援包,
yum -y install kernel-devel openssl-devel popt-devel
 kernel-devel                    核心檔案
 openssl-devel                  標頭檔,標頭檔參考,某些庫檔案等跟開發相關的東西
 popt-devel                      popt庫檔案解析命令等
源碼包安裝keepalived,
centos7.2以後就不需要再指定核心位置了,安裝在/下以後自動在etc中產生650) this.width=650;" height="135" src="http://b176.photo.store.qq.com/psb?/81c1194a-ff39-4e50-b1b1-40057b06260f/DtISTpD8URCoQDnm3NjJ1*RP1xRfOsj0NlkrUYYSdeo!/b/dLAAAAAAAAAA&bo=9QKHAAAAAAAFEEM!" width="757" style="vertical-align:top;" alt="dLAAAAAAAAAA&bo=9QKHAAAAAAAFEEM!" />
centos7開防火牆

650) this.width=650;" height="94" src="http://b287.photo.store.qq.com/psb?/81c1194a-ff39-4e50-b1b1-40057b06260f/i5ud0noUn75g8EcMf3EQcnkGkKJ*rmumPKxQ0a6JhIg!/b/dB8BAAAAAAAA&bo=IANeAAAAAAAFEE4!" width="800" style="vertical-align:top;" alt="dB8BAAAAAAAA&bo=IANeAAAAAAAFEE4!" />
keepalived設定檔選項
650) this.width=650;" height="620" src="http://b287.photo.store.qq.com/psb?/81c1194a-ff39-4e50-b1b1-40057b06260f/UTXwUCTCGzot9*cZpSdXtOGV6blW2MzM.5vPCd0BMZA!/b/dB8BAAAAAAAA&bo=sQFsAgAAAAAFEO0!" width="433" style="vertical-align:top;" alt="dB8BAAAAAAAA&bo=sQFsAgAAAAAFEO0!" />
keepalived設定檔除了,
router_id        
priority      
state      
real_server  這幾個地方有可能不一樣外,其他的都應該是一樣的!


本文出自 “11627223” 部落格,請務必保留此出處http://11637223.blog.51cto.com/11627223/1911980

mysql-雙主+keepalived高可用架構

聯繫我們

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