在同一主机上,同时开启多个不同的服务器端口(如: 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