• Linux命令大主从复制与读写分离技术实例(二)读写分离

2

系统版本:CentOS 6.5   MySQL版本:mysql-5.5.38   Amoeba版本:amoeba-mysql-binary-2.2.0  

JDK版本:jdk-6u14-linux-x64.bin


案例拓扑图:

mysql 主从读写  (二)--变形虫_变形虫

案例环境:

mysql 主从读写  (二)--变形虫_变形虫_02


搭建MySQL的读写分离

一、搭建MySQL读写分离之前需要先完成MySQL的主从复制,主从复制的相关操作可以参考:《MySQL的主从复制与读写分离技术实例(一)主从复制


二、安装Amoeba软件

Amoeba这个软件致力于MySQL的分布式数据库前端代理层,主要为应用层访问MySQL时充当SQL路由功能,并具有负载均衡、高可用性、SQL过滤、读写分离等功能。Amoeba是基于jdk1.5开发的,需要应用到Java环境中,并且建议使用jdk1.5或jdk1.6的版本搭建,我这里软件已经准备好了

mysql 主从读写  (二)--变形虫_变形虫_03


1.在Amoeba服务器上安装Java环境

mysql 主从读写  (二)--变形虫_变形虫_04


2.将jdk安装目录移动到/usr/local/jdk1.6,并在全局变量中添加如下配置项,指定jdk安装目录、类路径、Amoeba安装目录

mysql 主从读写  (二)--变形虫_拓扑图_05

mysql 主从读写  (二)--变形虫_拓扑图_06


3.刷新环境变量,并查看刚刚安装的java版本

mysql 主从读写  (二)--变形虫_服务器_07

Jave环境配置成功


4.安装Amoeba软件,注意全局变量中已经指定好Amoeba安装目录,直接解压到此目录即可

mysql 主从读写  (二)--变形虫_拓扑图_08


三、配置Amoeba服务器,实现MySQL的读写分离和两个Slave服务器的负载均衡

1.在三台MySQL服务器上分别开放权限给Amoeba访问,这里用Master说明

mysql 主从读写  (二)--变形虫_服务器_09

mysql 主从读写  (二)--变形虫_服务器_10


2.修改Amoeba服务器的代理配置文件amoeba.xml,修改以下红方框中的内容:

mysql 主从读写  (二)--变形虫_数据库_11

mysql 主从读写  (二)--变形虫_服务器_12


mysql 主从读写  (二)--变形虫_变形虫_13


3.修改Amoeba服务器对后端MySQL做配置的dbServers.xml文件,同样修改以下红方框的内容:

mysql 主从读写  (二)--变形虫_拓扑图_14

mysql 主从读写  (二)--变形虫_拓扑图_15


mysql 主从读写  (二)--变形虫_数据库_16


4.修改好以后,启动Amoeba执行后台运行,默认端口号tcp的“8066”,注意防火墙

mysql 主从读写  (二)--变形虫_变形虫_17

mysql 主从读写  (二)--变形虫_拓扑图_18


四、测试

1.用客户机通过amoeba代理服务器访问MySQL

mysql 主从读写  (二)--变形虫_服务器_19


2.在Master上创建一个表,然后同步到各从服务器上

mysql 主从读写  (二)--变形虫_数据库_20

同步完成后关闭两台从服务器的同步功能

mysql 主从读写  (二)--变形虫_数据库_21


3.在主服务器Master上向表中添加内容

mysql 主从读写  (二)--变形虫_应用层_22


在从服务器Slave1和Slave2分别插入下面内容

Slave1:

mysql 主从读写  (二)--变形虫_应用层_23

Slave2:

mysql 主从读写  (二)--变形虫_变形虫_24


4.测试从服务器的负载均衡,用客户机进行读操作

mysql 主从读写  (二)--变形虫_拓扑图_25


5.测试读写分离,在客户机上进行写操作,然后用客户端是查询不到刚刚写入的内容的

mysql 主从读写  (二)--变形虫_变形虫_26


只有在Master主服务器上才能查询到,这也说明写操作是在Master上进行的,也就实现了读写分离

mysql 主从读写  (二)--变形虫_应用层_27


mysql 主从读写  (二)--变形虫_数据库_28
mysql 主从读写  (二)--变形虫_变形虫_29