一、mysql多实例的原理
mysql多实例,简单的说,就是在一台服务器上开启多个不同的mysql服务端口(如3306,3307),运行多个mysql服务进程。这些服务进程通过不同的socket监听不同的服务端口,来提供各自的服务。
这些mysql实例共用一套mysql安装程序,使用不同的my.cnf配置文件、启动程序、数据文件。在提供服务时,mysql多实例在逻辑上看来是各自独立的,各个实例之间根据配置文件的设定值,来取得服务器的相关硬件资源。
二、mysql多实例的特点
2.1 有效的利用服务器资源
当单个服务器资源有剩余时,可以充分利用剩余的服务器资源来提供更多的服务。
2.2 节约服务器资源
当公司资金紧张,但是数据库需要各自提供独立服务,而且需要主从同步等技术时,使用多实例就最好了。
2.3 出现资源互相抢占问题
当某个实例服务并发很高或者有慢查询时,会消耗服务器更多的内存、CPU、磁盘IO等资源,这时就会导致服务器上的其它实例提供访问的质量下降,出现服务器资源互相抢占的现象。
三、mysql多实例应用场景
3.1 资金紧张型公司的选择
当公司业务访问量不太大,又舍不得花钱,但同时又希望不同业务的数据库服务各自独立,而且需要主从同步进行等技术提供备份或读写分离服务时,使用多实例是最好不过的。
3.2 并发访问不是特别大的业务
当公司业务访问量不太大,服务器资源基本闲置的比较多,这是就很适合多实例的应用。如果对SQL语句优化的好,多实例是一个很值得使用的技术。即使并发很大,只要合理分配好系统资源,也不会有太大问题。
四、mysql5.5多实例部署方法
4.1 MySQL多实例部署有2种方法:一种利用mysqld_multi配置、一种多实例分别定义不同的配置文件。先聊下利用mysqld_multi 配置(MySQL-5.5.36.tar.gz、cmake-2.8.8.tar.gz)
1、同步时间
#yum install -y ntp
#ntp -s time.windows.com
#hwclock -w
2、安装MySQL需要的依赖包
# yum install ncurses-devel libaio-devel cmake gcc gcc-c++ -y
3、安装上传工具(上传MySQL、cmake源码包到/src)
#yum install lrzsz -y
4、编译安装cmake
#cd /src
#tar xf cmake-2.8.8.tar.gz
#cd cmake-2.8.8
#./configure #无需加任何参数
#gmake #gmake install
#cd ..
5、创建mysql用户与组
#useradd -r mysql #创建系统用户,不登录系统(等同useradd mysql -s /sbin/nologin -M)
#id mysql #查看用户ID为系统用户
6、开始安装mysql
#cd /src #tar xf mysql-5.5.32.tar.gz #cd mysql-5.5.32