3.4 注意事项
正确部署实现具有负载均衡功能的MySQL服务器集群必须注意以下事项:
(1). MySQL数据库复制(replication)特性是核心
此处的复制不是简单的copy,从属服务器启动两个线程(thread):I/O线程和SQL线程,I/O线程接收主服务器对参与复制数据库的更新操作事件(event),并记入自己的中继二进制更新日志文件(hostname-relay-bin.00000n),由SQL线程将更新操作写入自己的数据库表项。主从服务器之间复制的不是具体的数据内容,而是具体的以二进制格式记录的操作事件,因而在一定程度上实现主从服务器之间的数据同步。(这种复制类似于生物学意义上的按基因复制,在英语中replication的主要词义就是指该种复制。)
(2). 复制的复杂性
主从数据库服务器间的replication要求Master与Slave上的MySQL版本最好一致,主从服务器必须设置相同的字符集,否则很容易造成复制失败。主服务器上更新权限表内容的FLUSH语句不会被复制[8]。
(3). 按照范式化要求设计数据库
生产环境下基于MySQL服务器的应用系统要想稳定运行,按范式化设计系统数据库是基本要求,具体内容可参考相关书籍。
(4). 打开数据库服务器的远程用户连接功能
打开主从服务器的远程用户连接是实现更新、查询操作分别定向的必要条件,否则,来自应用服务器的连接请求失败,影响系统应用正常运行。
(5). 负载均衡功能的实现需要良好的团队合作
BIND DNS服务器实现了从属服务器Slave之间的负载均衡,Slave和Master之间的负载均衡则由应用系统开发人员在程序代码级实现。整个系统的性能提升和冗余容错需要网络管理和应用系统开发团队之间的良好合作,否则负载均衡功能的实现就会失败。