1,用的Amoeba版本是
amoeba-mysql-3.0.5-RC-distribution.zip
下载地址:
http://files.cnblogs.com/files/wendu/Amoeba.zip
2,解压
unzip amoeba-mysql-3.0.5-RC-distribution.zip
3,
主数据库操作
查看数据库编码
show variables like 'character_set_database';
修改编码
alter database mastertest CHARACTER SET utf8;
主数据库锁表(禁止再插入数据以获取主数据库的的二进制日志坐标)
flush tables with read lock;
在主数据库上创建用于主从复制的账户并赋予远程登录权限
GRANT REPLICATION SLAVE ON flow_trade.* TO flowtrade@'192.168.108.167' IDENTIFIED BY '123456';
查看主数据库的状态(并记录下File字段和Position字段的值,在配置从服务器时有用到)
show master status;
解除锁表
unlock tables;
flush privileges;
从数据库操作
在从数据库服务器上设置主数据库服务器向从数据库服务器同步
change master to master_host = '192.168.108.166',master_user='flowtrade',master_password='123456',master_log_file='mysql-bin-log.000001',master_log_pos=456;
启动从节点
start slave;
查看从节点状态
show slave status \G
两个yes表示成功
4,移动到相应路径下并该名
mv amoeba-mysql-3.0.5-RC /usr/local/
cd /usr/local/
mv amoeba-mysql-3.0.5-RC/ amoeba
5,修改配置文件
cd /usr/local/amoeba/conf/
修改第一个文件amoeba.xml
vi amoeba.xml
1 <?xml version="1.0" encoding="gbk"?> 2 3 <!DOCTYPE amoeba:configuration SYSTEM "amoeba.dtd"> 4 <amoeba:configuration xmlns:amoeba="http://amoeba.meidusa.com/"> 5 6 <proxy> 7 8 <!-- service class must implements com.meidusa.amoeba.service.Service --> 9 <service name="Amoeba for Mysql" class="com.meidusa.amoeba.mysql.server.MySQLService"> 10 <!-- port --> 11 <property name="port">8066</property> 12 13 <!-- bind ipAddress --> 14 <!-- 15 <property name="ipAddress">0.0.0.0</property> 16 --> 17 18 <property name="connectionFactory"> 19 <bean class="com.meidusa.amoeba.mysql.net.MysqlClientConnectionFactory"> 20 <property name="sendBufferSize">128</property> 21 <property name="receiveBufferSize">64</property> 22 </bean> 23 </property> 24 25 <property name="authenticateProvider"> 26 <bean class="com.meidusa.amoeba.mysql.server.MysqlClientAuthenticator"> 27 28 <property name="user">amoeba</property> 29 30 <property name="password">123456</property> 31 32 <property name="filter"> 33 <bean class="com.meidusa.toolkit.net.authenticate.server.IPAccessController"> 34 <property name="ipFile">${amoeba.home}/conf/access_list.conf</property> 35 </bean> 36 </property> 37 </bean> 38 </property> 39 40 </service> 41 42 <runtime class="com.meidusa.amoeba.mysql.context.MysqlRuntimeContext"> 43 44 <!-- proxy server client process thread size --> 45 <property name="executeThreadSize">128</property> 46 47 <!-- per connection cache prepared statement size --> 48 <property name="statementCacheSize">500</property> 49 50 <!-- default charset --> 51 <property name="serverCharset">utf8</property> 52 53 <!-- query timeout( default: 60 second , TimeUnit:second) --> 54 <property name="queryTimeout">60</property> 55 </runtime> 56 57 </proxy> 58 59 <!-- 60 Each ConnectionManager will start as thread 61 manager responsible for the Connection IO read , Death Detection 62 --> 63 <connectionManagerList> 64 <connectionManager name="defaultManager" class="com.meidusa.toolkit.net.MultiConnectionManagerWrapper"> 65 <property name="subManagerClassName">com.meidusa.toolkit.net.AuthingableConnectionManager</property> 66 </connectionManager> 67 </connectionManagerList> 68 69 <!-- default using file loader --> 70 <dbServerLoader class="com.meidusa.amoeba.context.DBServerConfigFileLoader"> 71 <property name="configFile">${amoeba.home}/conf/dbServers.xml</property> 72 </dbServerLoader> 73 74 <queryRouter class="com.meidusa.amoeba.mysql.parser.MysqlQueryRouter"> 75 <property name="ruleLoader"> 76 <bean class="com.meidusa.amoeba.route.TableRuleFileLoader"> 77 <property name="ruleFile">${amoeba.home}/conf/rule.xml</property> 78 <property name="functionFile">${amoeba.home}/conf/ruleFunctionMap.xml</property> 79 </bean> 80 </property> 81 <property name="sqlFunctionFile">${amoeba.home}/conf/functionMap.xml</property> 82 <property name="LRUMapSize">1500</property> 83 <property name="defaultPool">readpool</property> 84 85 86 <property name="writePool">writepool</property> 87 <property name="readPool">readpool</property> 88 89 <property name="needParse">true</property> 90 </queryRouter> 91 </amoeba:configuration>
修改第二个配置文件
vi dbServers.xml
1 <?xml version="1.0" encoding="gbk"?> 2 3 <!DOCTYPE amoeba:dbServers SYSTEM "dbserver.dtd"> 4 <amoeba:dbServers xmlns:amoeba="http://amoeba.meidusa.com/"> 5 6 <!-- 7 Each dbServer needs to be configured into a Pool, 8 If you need to configure multiple dbServer with load balancing that can be simplified by the following configuration: 9 add attribute with name virtual = "true" in dbServer, but the configuration does not allow the element with name factoryConfig 10 such as 'multiPool' dbServer 11 --> 12 13 <dbServer name="abstractServer" abstractive="true"> 14 <factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory"> 15 <property name="connectionManager">${defaultManager}</property> 16 <property name="sendBufferSize">64</property> 17 <property name="receiveBufferSize">128</property> 18 19 <!-- mysql port --> 20 <property name="port">3306</property> 21 22 <!-- mysql schema --> 23 <property name="schema">flow_trade</property> 24 25 <!-- mysql user --> 26 <property name="user">root</property> 27 28 <property name="password">123456</property> 29 </factoryConfig> 30 31 <poolConfig class="com.meidusa.toolkit.common.poolable.PoolableObjectPool"> 32 <property name="maxActive">500</property> 33 <property name="maxIdle">500</property> 34 <property name="minIdle">1</property> 35 <property name="minEvictableIdleTimeMillis">600000</property> 36 <property name="timeBetweenEvictionRunsMillis">600000</property> 37 <property name="testOnBorrow">true</property> 38 <property name="testOnReturn">true</property> 39 <property name="testWhileIdle">true</property> 40 </poolConfig> 41 </dbServer> 42 43 <dbServer name="server1" parent="abstractServer"> 44 <factoryConfig> 45 <!-- mysql ip --> 46 <property name="ipAddress">192.168.108.167</property> 47 <property name="user">root</property> 48 <property name="password">123456</property> 49 </factoryConfig> 50 </dbServer> 51 52 <dbServer name="server2" parent="abstractServer"> 53 <factoryConfig> 54 <!-- mysql ip --> 55 <property name="ipAddress">192.168.108.166</property> 56 <property name="user">root</property> 57 <property name="password">123456</property> 58 </factoryConfig> 59 </dbServer> 60 61 <dbServer name="writepool" virtual="true"> 62 <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool"> 63 <!-- Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA--> 64 <property name="loadbalance">1</property> 65 66 <!-- Separated by commas,such as: server1,server2,server1 --> 67 <property name="poolNames">server1</property> 68 </poolConfig> 69 </dbServer> 70 <dbServer name="readpool" virtual="true"> 71 <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool"> 72 <!-- Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA--> 73 <property name="loadbalance">1</property> 74 75 <!-- Separated by commas,such as: server1,server2,server1 --> 76 <property name="poolNames">server1,server2,server1</property> 77 </poolConfig> 78 </dbServer> 79 80 </amoeba:dbServers>
#配置java环境 修改launcher文件加入(这个看情况而定)
#JAVA_HOME=/usr
6,启动
./launcher
关闭
./shutdown
7,防火墙设置
iptables -I INPUT -s 192.168.108.165 -p TCP --dport 8806 -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
service iptables save
service iptables restart
8,登录测试
./mysql -uamoeba -p -h192.168.108.167 -P 8806