多實例部署概念
在同一主機上,同時開啟多個不同的服務器端口(如: 3306、3307),同時運行多個MySQL服務進程,這些服務通過不同的socket監聽不同的服務器端口來提供服務。
說明: 服務器硬件資源(CPU、Mem、Disk)、軟件資源(centos系統)為公共資源。
多實例部署適用場景
優勢:
(1)有效利用服務器資源。單個服務器資源有剩余時,可以充分利用剩余的資源提供服務,且可以實現資源的邏輯隔離。
(2)節約服務器資源。資源緊張,數據庫又需要各自盡量獨立地提供服務,而且需要主從復制等技術,多實例為最佳首選。
弊端:
存在資源相互搶占的問題。
當某個數據庫實例并發很高,或有SQL慢查詢時,整個實例會消耗大量的系統CPU、磁盤IO等資源,導致服務器上其他數據庫實例提供服務的質量一起下降。
適用場景:
(1)資源緊張型的企業選擇。
少量服務器部署多個實例,交叉做主從復制、數據備份及讀寫分離。
(2)并發訪問不是特別大的業務。
當訪問量不大的時候,服務器的資源基本上都浪費了,適合多實例部署,即使并發很大,合理分配系統資源,搭配服務,也不會有太大問題。
(3)門戶網站較多適用多實例。
硬件配置好的服務器,可節省IDC機柜空間,同時跑多實例也會減少硬件資源跑不滿浪費。
部署方案
1、單一配置文件單一啟動程序部署(使用mysqld_multi部署)
此方案使用單一配置文件,不好管理,耦合度太高,不推薦使用此方案!
2、多配置文件多啟動程序部署方案
(1)部署規劃:實例3306:
/data/mysql/mysql3306/data/data/mysql/mysql3306/my.cnf
實例3307:
/data/mysql/mysql3307/data/data/mysql/mysql3307/my.cnf
說明:MySQL數據庫的安裝請參考MySQL5.7編譯安裝詳解。
(2)啟動停止命令:
#mysqld_safe --defaults-file=/data/mysql/mysql3306/my.cnf 2>&1 > /dev/null &
#mysqld_safe --defaults-file=/data/mysql/mysql3307/my.cnf 2>&1 > /dev/null &
#mysqladmin -uroot -pxxx -S /data/mysql/mysql3306/mysql.sock shutdown
#mysqladmin -uroot -pxxx -S /data/mysql/mysql3307/mysql.sock shutdown