vim /usr/local/amoeba-2.2.0/conf/dbServers.xml
port = 3306指的是主从数据库的端口号
schema = test指的是amoeba代理数据库的名称
user = root 以及 password 是amoeba登录主从服务器的账号密码,因此要注意这里的账户必须有访问两个数据库的权限才行
这里的localhost指的是主库的代号,底下的ipAddress为主库地址
slave指的是从库的代号,底下的ipAddress为从库地址
轮询的主和从的读设置权重设置成1:3,这样就可以很好的解决主从不压力均衡的问题
vim /usr/local/amoeba-2.2.0/conf/amoeba.xml
这里的8066端口为amoeba代理所监听的端口
user 和 password 是用来登录amoeba代理所使用的账号信息
LRUMapSize定义了Amoeba缓存的SQL语句解析条数
defaultPool配置了默认的节点,一些除了SELELCT/UPDATE/INSERT/DELETEDE的语句都会在上面执行
writePool配置了写库,通常就是主库
readPool配置了读库,可以为一个也可以是数据库池
这样Amoeba的配置就完成了(注:关于配置文件的参数意义在amoeba文档中有完整的解释)
接下来进行环境变量的配置,vim /etc/profile.d/amoeba.sh
export AMOEBA_HOME=/usr/local/amoeba-2.2.0/ export PATH=$AMOEBA_HOME/bin/:$PATH4.启动Amoeba
执行amoeba start
The stack size specified is too small, Specify at least 160k
Could not create the Java virtual machine.
如果报以上错误,需编辑二进制脚本,因为JAVA启动对xss参数最小值有限制
vim /usr/local/amoeba-2.2.0/bin/amoeba
DEFAULT_OPTS=”-server -Xms256m -Xmx256m -Xss128k”
修改为如下
DEFAULT_OPTS=”-server -Xms256m -Xmx256m -Xss256k”
(注:如果启动失败要主要看有无 Amoeba Monitor Server shutdown completed!,如果没有请执行一遍amoeba stop)
5.连接amoeba
正常启动后连接amoeba数据库,mysql -u root -p -h 172.16.2.231 -P8066
这就是正常启动后的提示信息,如果提示错误的话可能性很多,但大多数是网络(防火墙没关,主从数据库未启动等)、权限(主从数据库未提供amoeba账号权限等)以及配置的问题,多多阅读错误提示和日志能让你更快的定位到错误
6.测试
测试的方法有很多种这里就不举例了,主要的思想是:
- 在amoeba上创建表,测试操作是否同步主从;
- 将从库的同步关闭slave stop,在amoeba上进行写操作看是否只有主库写入;在主从上分别插入一条数据,并在amoba上执行读操作看显示的数据等。
Linux下MySQL主从复制(Master-Slave)与读写分离(Amoeba)实践