MySQL多实例部署案例
昨天晚上在群中和一些网友聊到了MySQL多实例的话题,最早接触MySQL多实例还是在1年前,那会我刚步入运维行业,做过MySQL多实例的相关实验,在后来的工作中也很少用到多实例,一直就淡漠了它,昨天再次提及,故此再次重新整理下以前的笔记,参考一些大牛的观点,也参考我的好友贺总(尊称)的意见,特此写下这篇文章!废话不说,切入正题....
在同一台物理服务器上部署多个实例,而多实例的部署方式简单,但是如何才能减少我们生产环境的维护成本,如何减少我们出错的机会,如何方便我们后续的迁移和清理等工作,以及如何借助多实例绑定的方式提高服务器的CPU资源利用率. 什么情况下我们会考虑一台物理服务器上部署多个实例,大致有以下几种情况: 采用了数据伪分布式架构的原因,而项目启动初期又不一定有那多的用户量,为此先一组物理数据库服务器,但部署多个实例,方便后续迁移; 为规避mysql对SMP架构不支持的缺陷,使用多实例绑定处理器的办法(NUMA处理器必须支持,不过现在大部分处理器都支持的!),把不同的数据库分配到不同的实例上提供数据服务; 一台物理数据库服务器支撑多个数据库的数据服务,为提高mysql复制的从机的恢复效率,采用多实例部署; 已经为双主复制的mysql数据库服务器架构,想部分重要业务的数据多一份异地机房的热备份,而mysql复制暂不支持多主的复制模式,且不给用户提供服务,为有效控制成本,会考虑异地机房部署一台性能超好的物理服务器,甚至外加磁盘柜的方式,为此也会部署多实例; 传统游戏行业的MMO/MMORPG,以及Web Game,每一个服都对应一个数据库,而可能要做很多数据查询和数据订正的工作,为减少维护而出错的概率,也可能采用多实例部署的方式,按区的概念分配数据库; 下面是具体的搭建细节! 首先说明下MySQL的运行平台: CentOS 5.8 x86_64 MySQL-5.5.25 准备的软件列表: mysql-5.5.25.tar.gz cmake-2.8.4.tar.gz libunwind-1.0.1.tar.gz gperftools-2.0.tar.gz 1. 安装Tcmalloc 优化加速mysql 64位操作系统要先安装libunwind库,32位操作系统可以不要安装: cd /home/qiuzhijun/soft tar zxf libunwind-1.0.1.tar.gz cd libunwind-1.0.1 ./configure make;make install cd .. tar zxf gperftools-2.0.tar.gz cd gperftools-2.0 ./configure make;make install cd .. echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf /sbin/ldconfig cd .. 利用TCMalloc提高mysql在高并发下的性能: [root@MySQL5_10 ~]# ll /usr/local/lib/libtcmalloc.so lrwxrwxrwx 1 root root 20 Jul 9 21:17 /usr/local/lib/libtcmalloc.so -> libtcmalloc.so.4.1.0 sed -i '/# executing mysqld_safe/aexport LD_PRELOAD=/usr/local/lib/libtcmalloc.so' /usr/local/webserver/mysql/bin/mysqld_safe (编辑:滁州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |