具备负载均衡功能MySQL服务器集群部署及实现
2009-04-21 11:19:42 来源:WEB开发网[mysqld]
log-bin=mysql-master-bin
server-id=1
在其它三台Slave机器的配置文件/etc/my.cnf文件写入如下内容:
[mysqld]
server-id=int
其中,int为一大于1且互不相等的正整数,如2,3,4等。务必要正确设置每个机器上的/etc/my.cnf配置文件,尤其是server-id不能有重复,这是一对多数据库复制能否成功的关键[5]!
设定好上述/etc/my.cnf文件后启动Master上的MySQL数据库服务时就自动开启了二进制更新日志功能。在Slave上启动MySQL时要加上--log-bin参数,即可开启二进制更新日志功能。在Slave机器上启动MySQL服务的命令如下:
# /app/mysql5/bin/mysqld_safe --user=mysql --log-bin &
这样做的目的为了实现冗余容错功能。当主服务器Master出现故障停止服务时,在预转换角色成为Master的Slave上执行STOP SLAVE; RESET MASTER SQL语句,在其它两台Slave上执行CHANGE MASTER TO SQL语句,执行STOP SLAVE; RESET MASTER SQL语句的Slave服务器即转换成新的Master,其余两台机器则从新的Master复制数据库数据(复制的是更新UPDATE、INSERT等操作,并不是简单的copy),从而实现冗余容错。
3.3 系统实现
完成上述准备后可以开始实现MySQL数据库的一对多复制,对应用系统的数据库访问代码进行优化,使更新操作UPDATE、INSERT等SQL语句定向到Master服务器,查询检索SELECT语句定向到Slave服务器,从而实现负载均衡;当主服务器Master出现故障停止服务时,通过服务器角色转换实现冗余容错;上述所有服务器通过高速核心交换机连接在一起,协同工作,提供集群(Cluster)性能。下面,本文就此举一简例,具体说明实现(Implementation)步骤。
更多精彩
赞助商链接