当前位置:Gxlcms > 数据库问题 > amoeba-mysql配置安装(收集整理)

amoeba-mysql配置安装(收集整理)

时间:2021-07-01 10:21:17 帮助过:2人阅读

我下载的:jdk-8-linux-x64.rpm

rpm -ivh jdk-8-linux-x64.rpm  默认安装到了/usr/java下

查看是否安装成功:java -version 会看到版本信息

配置环境变量:vi /etc/profile  

在文件中追加:

JAVA_HOME=/usr/java/jdk1.7.0
JRE_HOME=/usr/java/jdk1.7.0/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

使修改生效:source /etc/profile

查看系统环境状态:

[root@admin ~]# echo $PATH
/usr/local/cmake/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.7.0/bin:/usr/java/jdk1.7.0/jre/bin:/root/bin

接下来就是安装amoeba-mysql

这个地址是amoeba使用指南:http://docs.hexnova.com/amoeba/

这里用 《Amoeba搞定mysql主从读写分离》给的链接下载下来的conf文件好像有修改,可以直接从Amoeba在SourceForge的主页下载Amoeba,http://sourceforge.net/projects/amoeba/files/。

我第一下下载了3.X版本,总是报错。后来下载了2.x.tar.gz的版本,直接解压就OK!

tar -zxpf amoeba-mysql-binary-2.1.0-RC5.tar.gz -C /usr/local/amoeba-mysql    运行很简单 bin/amoeba 即可,后台运行 bin/amoeba & 如果没有配置JAVA_HOME,则会有如下提示: [root@aslibra amoeba-mysql]# bin/amoeba Error: JAVA_HOME environment variable is not set. 如果你是比1.5低,比如1.4的,运行会有错误提示,下载jdk1.5以上的版本,压缩版解压后设置好环境变量即可。   我的启动时报错: The stack size specified is too small, Specify at least 160k
Error: Could not create the Java Virtual Machine.

Error: A fatal exception has occurred. Program will exit.

解决:

打开bin/amoeba   DEFAULT_OPTS="-server -Xms256m -Xmx256m -Xss128k"  改成  DEFAULT_OPTS="-server -Xms2048m -Xmx2048m -Xmn1000m -Xss2048k"

 

配置文件位于conf目录下,执行文件位于bin目录下,解压后发现bin目录下的启动文件没有可执行权限,请执行:chmod -R +x /usr/local/amoeba/bin/

Amoeba For MySQL 的使用非常简单,所有的配置文件都是标准的XML 文件,总共有四个配置文件。分别为:

◆ amoeba.xml:主配置文件,配置所有数据源以及Amoeba 自身的参数设置;实现主从的话配置这个文件就可以了;

◆ rule.xml:配置所有Query 路由规则的信息;

◆ functionMap.xml:配置用于解析Query 中的函数所对应的Java 实现类;

◆ rullFunctionMap.xml:配置路由规则中需要使用到的特定函数的实现类;

 conf/amoeba.xml 配置mysql数据库,简单说明一下:(以下的配置来自《Amoeba非常好用的mysql集群软件》,完全按照这个配置就OK!)   Amoeba配置文件修改 1 server节点定义amoeba为接受client访问的数据库,可以当作是mysql看待的,用户名和密码是访问时使用的,这个似乎不能定义多个用户名密码,也就是只有一个权限控制,这个对于多应用似乎不大方便。 2 dbServerList里面可以定义很多实际的mysql数据库,增加dbServer节点即可,这里的用户名密码是作为amoeba操作数据库使用 的,要有足够权限。dbServer可以是虚拟的,比如要做负载均衡时可用定义多个数据库归属到此虚拟数据库。2.1RC版的dbServer已移到 dbServers.xml文件中配置。 3 queryRouter节点定义读写的分配情况,也就是读写该发往那个dbServer。   vi amoeba.xml 修改主配置文件 4.1)把默认端口8066改成3306 <property name="port">3066</property> 4.2)把默认连接用户名和密码改成自己的 <property name="user">sky</property>  <property name="password">123456</property> 4.3)把默认的客户端线程数,请求数及服务端回应数改成200,300,300 <property name="readThreadPoolSize">200</property>                           <!-- proxy server client process thread size -->                         <property name="clientSideThreadPoolSize">300</property>                         <!-- mysql server data packet process thread size -->                         <property name="serverSideThreadPoolSize">300</property 4.4)把默认注释掉的读写分离选项,把注释去掉并readpool修改成server2 <!--  -->                         <property name="writePool">server1</property>                         <property name="readPool">server2</property> 提示:readPool或writePool可以是dbServers中的multiPool名称,用multiPool来设置负载均衡。   *************************************** *************************************** 此处如果有两个以上的从库做负载均衡的话,可指定:         <property name="writePool">server1</property>  //写池不变                        <property name="readPool">multiPool</property>  //server2 =》multiPool 在修改dbServers.xml 时增加
<dbServer name="server2"    parent="abstractServer"> 
    <factoryConfig> 
          <!-- mysql ip --> 
          <property name="ipAddress">192.168.2.13</property> 
          </factoryConfig> 
</dbServer>

有几个从server增加几个,然后在 <dbServer name="multiPool" virtual="true">中添加从的server名<property name="poolNames">server2,server3,server4,server5</property>

配置方式在dbServers.xml注释中有提到:

<!-- 
   Each dbServer needs to be configured into a Pool,
   If you need to configure multiple dbServer with load balancing that can be simplified by the following configuration:
    add attribute with name virtual = "true" in dbServer, but the configuration does not allow the element with name factoryConfig
    such as ‘multiPool‘ dbServer   
  -->

<!-- 
            一台mysqlServer 需要配置一个pool,
            如果多台 平等的mysql需要进行loadBalance, 
            简单的配置是属性加上 virtual="true",该Pool 不允许配置factoryConfig
            例如 ‘multiPool‘ dbServer 
 -->

*******************************************

**********************************************

  5.vi dbServers.xml 增加SEVER2模块,里面的连接用户名密码及地址都表示两台MYSQL的物理机器,192.168.1.11和192.168.1.13 另SERVER1是写,SERVER是读   <?xml version="1.0" encoding="gbk"?>  <!DOCTYPE amoeba:dbServers SYSTEM "dbserver.dtd">    <amoeba:dbServers xmlns:amoeba="http://amoeba.meidusa.com/">      <!--             Each dbServer needs to be configured into a Pool,          If you need to configure multiple dbServer with load balancing that can be simplified by the following configuration:            add attribute with name virtual = "true" in dbServer, but the configuration does not allow the element with name factoryConfig            such as ‘multiPool‘ dbServer               -->    <dbServer name="abstractServer" abstractive="true">        <factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">          <property name="manager">${defaultManager}</property>          <property name="sendBufferSize">64</property>          <property name="receiveBufferSize">128</property>          <!-- mysql port -->          <property name="port">3306</property>          <!-- mysql schema -->          <property name="schema">test</property>          <!-- mysql user -->          <property name="user">root</property>          <!--    mysql password -->          <property name="password">123456</property>        </factoryConfig>        <poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool">          <property name="maxActive">500</property>          <property name="maxIdle">500</property>          <property name="minIdle">10</property>          <property name="minEvictableIdleTimeMillis">600000</property>          <property name="timeBetweenEvictionRunsMillis">600000</property>          <property name="testOnBorrow">true</property>          <property name="testWhileIdle">true</property>        </poolConfig>      </dbServer>      <dbServer name="server1"    parent="abstractServer">        <factoryConfig>          <!-- mysql ip -->          <property name="ipAddress">192.168.2.11</property>        </factoryConfig>      </dbServer>    <dbServer name="server2"    parent="abstractServer">        <factoryConfig>          <!-- mysql ip -->          <property name="ipAddress">192.168.2.13</property>        </factoryConfig>      </dbServer>     <dbServer name="multiPool" virtual="true">        <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">          <!-- Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA-->          <property name="loadbalance">1</property>          <!-- Separated by commas,such as: server1,server2,server1 -->          <property name="poolNames">server1</property>        </poolConfig>      </dbServer>    </amoeba:dbServers>    6:修改log4j.xml 取消日志文件生成,如做pdf时(太大了,磁盘很容易满) <param name="file" value="${amoeba.home}/logs/project.log"/>  改成  <param name="file" value="<![CDATA[${amoeba.home}/logs/project.log>/dev/null]]>"/> 注意:我在2.1-rc5版本下第6条的设置JAVA运行时报警,无法通过。 这个确实不能通过!   7:性能优化,打开bin/amoeba   DEFAULT_OPTS="-server -Xms256m -Xmx256m -Xss128k"  改成  DEFAULT_OPTS="-server -Xms2048m -Xmx2048m -Xmn1000m -Xss2048k"   8:启动amoeba nohup /usr/local/amoeba/bin/amoeba start 2>&1 >/dev/null & 

 

amoeba-mysql配置安装(收集整理)

标签:

人气教程排行