amoeba实现mysql主从读写分离_amoeba实现mysql主从读写分离

昨天搞了一天的mysql-proxy搭建读写分离,各种安装报错,自认为比较复杂(暂时放弃)。今天听说amoeba这个软件工具,实现方法比较简单,于是实验搭建了一下。过程如下:

实验机器:centos X64 amoeba: 192.168.213.65

master: 192.168.213.81

slave:192.168.213.53

1.3台服务器都安装mysql, 另外mysql主从安装方法,这边就略过了

2.以下都是在amoeba这台服务器上进行的安装操作:

2.1. 首先安装jdk (Amoeba框架是基于Java SE1.5开发的,建议使用Java SE1.5以上的版本。)

#tar zxf jdk-8u45-linux-x64.tar.gz

#mv jdk1.8.0_45/ /usr/local/

方法一:

#vim /etc/profile.d/java.sh //新建java.sh并编辑,生成java环境变成

JAVA_HOME=/usr/local/jdk1.8.0_45

JAVA_BIN=/usr/local/jdk1.8.0_45/bin

JRE_HOME=/usr/local/jdk1.8.0_45/jre

PATH=$PATH:/usr/local/jdk1.8.0_45/bin:/usr/local/jdk1.8.0_45/jre/bin

CLASSPATH=/usr/local/jdk1.8.0_45/jre/lib:/usr/local/jdk1.8.0_45/lib:/usr/local/jdk1.8.0_45/jre/lib/charsets.jar

#source /etc/profile.d/java.sh //让配置文件立刻生效

或方法二

#vim /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_45

export JRE_HOME=/usr/local/jdk1.8.0_45/jre

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$PATH

#source /etc/profile

2.2安装amoeba

本例使用版本:amoeba-mysql-3.0.5-RC-distribution.zip

#unzip amoeba-mysql-3.0.5-RC-distribution.zip

#chmod -R +x /usr/local/amoeba/bin/

#cd /usr/local/amoeba/conf/

修改配置文件:

⑴dbServer.xml 的配置:

${defaultManager}

64

128

3306

test

root

123456

500

500

1

600000

600000

true

true

true

192.168.213.81

192.168.213.53

1

server1,server2

⑵amoeba.xml 配置:

客户端连接Amoeba时所绑定的IP地址、端口、用户名和密码。及IP访问限制。

8066

128

64

root

123456

${amoeba.home}/conf/access_list.conf

以下内容是定义读写分离:

${amoeba.home}/conf/rule.xml

${amoeba.home}/conf/ruleFunctionMap.xml

${amoeba.home}/conf/functionMap.xml

1500

multiPool

server1

server2

true

⑶ jvm.properties配置文件(amoeba安装目录下)

#cd /usr/local/amoeba

#vim jvm.properties //修改Xss的值大于228,否则后面启动服务的时候会报错

找到:

JVM_OPTIONS="-server -Xms256m -Xmx1024m -Xss128k -XX:PermSize=16m -XX:MaxPermSize=96m"

改为:

JVM_OPTIONS="-server -Xms512m -Xmx1024m -Xss256k -XX:PermSize=16m -XX:MaxPermSize=96m"

3.测试读写分离

# cd /usr/local/amoeba/bin/

# ./launcher& //(也可通过nohup后台启动,或者自己写一个脚本来启动。 )

启动的Amoeba默认端口为8066

为了方便判断主从的读写过程,在master和slave上面mysql配置文件中添加一条日志:

#vim /etc/my.cnf

log = /data/mysql/mysql.log //注意行语句仅用于测试使用,测试完注释掉,不然会生成很大的日志文件

保存后重启mysql服务。

#tail -f /data/mysql/mysql.log (主从上,查看此动态日志,监控mysql读写执行情况)

在客户端连接Amoeba测试:(此处我用的amoeba这台服务器)

#service mysqld start

# mysql -uroot –p123456 -h192.168.213.65 --port 8066

mysql> show databases;

mysql> use test; //选择默认测试库 test

mysql>create table zhang (id int(10) ,name varchar(10),address varchar(20));

mysql>select * from zhang;

mysql>insert into zhang values('1','sdasd','w');

mysql>select * from zhang;

mysql>insert into zhang values('2,'dwqe','w');

mysql>select * from zhang;

输入完以上的测试语句,在主上会发现只有insert的记录,而从上面会有select的记录,insert记录是通过主从复制而得到。

至此实验完成!

本文由 gjc159357 创作,采用 知识共享署名4.0 国际许可协议进行许可

本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名

最后编辑时间为: Aug 26, 2016 at 01:24 pm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值