天天看點

Mysql DBA 進階運維學習之路-MySQL資料庫多執行個體介紹1.什麼是MySQL多執行個體?2.MySQL多執行個體的作用與存在的問題

1.什麼是MySQL多執行個體?

簡單的說,就是一台機器上開啟多個不同的服務端口(如3306,3307),運作多個MySQL服務程序,這些程序通過不同的socket監聽不同的服務端口來提供各自的服務。

這些MySQL多執行個體共用一套MySQL安裝程式,使用不同(也可以相同)的my.cnf配置檔案、啟動程式檔案,資料檔案。本次的案例采用共用一套安裝程式,使用不同的配置檔案、不同的啟動程式、不同的資料檔案的mysql多執行個體。在提供服務的時候,多執行個體MySQL在邏輯上看來是各自獨立的,多個執行個體的自身是根據配置檔案對應的設定值,來取得伺服器的相關硬體資源多少的。

做一個形象的比喻,MySQL多執行個體相當于房子的多個卧室一樣,每個執行個體可以看作是一個卧室,整個伺服器就是一套房子,伺服器的硬體資源可以看作是房子的衛生間、廚房一樣是房子的公共資源。就像是北漂住在一套房子裡,肯定要共享資源。其實很多服務都可以有多執行個體如nginx,apache,redias等。

2.MySQL多執行個體的作用與存在的問題

(1) 有效利用伺服器資源

當單個伺服器資源有剩餘時,可以充分利用剩餘的資源提供更多的服務。一般伺服器資源占用率應該到60%-70%。

(2) 節約伺服器資源

當公司資金比較緊張,但是資料庫又需要各自盡量獨立提供服務,而且需要主從同步技術時多執行個體就再好不過了。

(2)資源互相搶占問題

當某個執行個體并發很高或者慢查詢時,整個執行個體會消耗整個伺服器更多的記憶體、cpu、磁盤IO資源,導緻伺服器上的其他執行個體提供服務的品質下降,這就相當于大家住在一個房子的不同卧室一樣,早晨起來要上班,都要刷牙、洗臉等等。這樣衛生間就會長期占用,其他人要等待一樣的道理。

轉載于:https://blog.51cto.com/10642812/2065487