一、由于是MySql集群,所以就不可能只有一个MySql,需要多个MySql,具体安装步骤,可以参考http://www.cnblogs.com/ywzq/p/4882140.html这个地址进行安装配置和启动。

  二、现在MySql有了,开始安装Ameoba

    1.下载文件:amoeba-mysql-0.32.tar.gz

    2.创建文件amoeba

    mkdir amoeba

    cd amoeba

    3.解压文件(由于amoeba的作者打包时没太注意,所以你要先件个文件)

      tar amoeba-mysql-0.32.tar.gz

      cd conf/

        配置前端访问接口<server></server>如:     

            <server>
              <property name="port">8066</property>

              <property name="ipAddress">101.201.140.214</property>

              <property name="readThreadPoolSize">500</property>

              <property name="clientSideThreadPoolSize">500</property>

              <property name="serverSideThreadPoolSize">500</property>

              <property name="netBufferSize">200</property>

              <property name="tcpNoDelay">true</property>

              <property name="user">root</property>

              <property name="password">root</property>
            </server>

        配置监听:

            

            <connectionManagerList>
              <connectionManager name="defaultManager" class="com.meidusa.amoeba.net.AuthingableConnectionManager"/>
            </connectionManagerList>

     搭建主从复制,读写分离的架构

        配置多个数据<dbServerList></dbServerList>

            配置Master(主)MySql数据库:     

            <dbServer name="master">
              <factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">

              <property name="manager">defaultManager</property>

              <property name="port">4308</property>

              <property name="ipAddress">101.201.140.214</property>

              <property name="schema">test</property>

              <property name="user">root</property>

              <property name="password">root4308</property>

             </factoryConfig>

                <poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool">
                <property name="maxActive">500</property>
                <property name="maxIdle">200</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>

            配置Slave(从>1)

            <dbServer name="slave1">
              <factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">
                <property name="manager">defaultManager</property>

                <property name="port">4306</property>

                <property name="ipAddress">101.201.140.214</property>
               <property name="schema">test</property>

                <property name="user">root</property>

                <property name="password">root4306</property>

              </factoryConfig>
                <poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool">
                <property name="maxActive">500</property>
                <property name="maxIdle">200</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>

            配置Slave(从>1)

            <dbServer name="slave2">

              <factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">
                <property name="manager">defaultManager</property>

                <property name="port">4307</property>

                <property name="ipAddress">101.201.140.214</property>

                <property name="schema">test</property>

                <property name="user">root</property>

                <property name="password">root4307</property>

              </factoryConfig>
              <poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool">
                <property name="maxActive">500</property>
                <property name="maxIdle">200</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>

            配置写入MySql

            <dbServer name="virtualSlave" virtual="true">
              <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">
                <!-- 1=ROUNDROBIN , 2=WEIGHTBASED -->
                <property name="loadbalance">1</property>
                <property name="poolNames">slave1,slave2</property>
              </poolConfig>
            </dbServer>

            分配读写使用的数据库  

            <queryRouter class="com.meidusa.amoeba.mysql.parser.MysqlQueryRouter">
              <property name="ruleConfig">${amoeba.home}/conf/rule.xml</property>
              <property name="functionConfig">${amoeba.home}/conf/functionMap.xml</property>
              <property name="ruleFunctionConfig">${amoeba.home}/conf/ruleFunctionMap.xml</property>
              <property name="LRUMapSize">1500</property>
              <property name="defaultPool">master</property>
              <property name="writePool">master</property>
              <property name="readPool">virtualSlave</property>
              <property name="needParse">true</property>
            </queryRouter>

            修改权限文件

          <amoeba:rule xmlns:amoeba="http://amoeba.meidusa.com/"> 

            <tableRule name="test_horiz" schema="test" defaultPools="master">

              <rule name="rule1">
                <parameters>ID</parameters>
                <expression><![CDATA[ ID <= 1000000]]></expression>
                <defaultPools>master</defaultPools>
                <readPools>slave1</readPools>
                <writePools>master</writePools>
              </rule>

              <rule name="rule2">    

                ==========

                <expression><![CDATA[ ID between 1000001 and 2000000 ]]></expression>

                <defaultPools>master</defaultPools>

                <writePools>master2</writePools>

                <readPools>slave2</readPools>

              </rule>

              <rule name="rule3">

                ==========

                <expression><![CDATA[ ID > 20000000 ]]></expression>

                <defaultPools>master</defaultPools>

              </rule>  

            </tableRule>

          

            <tableRule name="master" schema="test" defaultPools="master"/>
            <tableRule name="slave1" schema="test" defaultPools="slave1"/>
            <tableRule name="slave2" schema="test" defaultPools="slave1"/>
            <tableRule name="master" schema="t" defaultPools="master"/>

          </amoeba:rule>

  三.主从复制

    1、修改MySql配置文件my.cnf

      mast(主库)配置文件:

        server-id = 4308
        log-bin = mysql-bin
        log-bin-index = mysql-bin.index
        binlog-do-db= ng_base
        binlog-do-db= ng_push
        binlog-ignore-db = test
        binlog-ignore-db = mysql
        binlog-ignore-db = information_schema

      slave(从库1)配置文件:

        server-id = 4307

        log-bin = mysql-bin
        log-bin-index = mysql-bin.index
        relay-log = slave-relay-bin
        relay-log-index = slave-relay-bin.index
        sync_master_info = 1
        sync_relay_log = 1
        sync_relay_log_info = 1

  二、配置主从复制  

    1、主库操作

      授权给从数据库服务器192.168.10.131
      mysql> GRANT REPLICATION slave ON *.* to 'rep1'@'192.168.10.131' identified by ‘root4308’;

      查询主数据库状态
      Mysql> show master status;

        | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
        +------------------+----------+--------------+------------------+
        | mysql-bin.000005 | 261 | | |

 

    -- SLAVE STOP;

    2、 从库操作

    change master to
    master_host='101.201.140.214',
    master_user='slave',
    master_password='root4308',
    master_log_file='binlog.000005',
    master_log_pos=107;

    正确执行后启动Slave同步进程

    SLAVE START;

    可以使用show slave status\G检查

          

linux上使用amoeba实现MySql集群,以及读写分离,主从复制的更多相关文章

  1. 2.Mysql集群------Mycat读写分离

    前言: Mycat: 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务.ACID.可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一 ...

  2. mycat+mysql集群:实现读写分离,分库分表

    1.mycat文档:https://github.com/MyCATApache/Mycat-doc       官方网站:http://www.mycat.org.cn/ 2.mycat的优点: 配 ...

  3. 在Linux上使用Nginx为Solr集群做负载均衡

    在Linux上使用Nginx为Solr集群做负载均衡 在Linux上搭建solr集群时需要用到负载均衡,但测试环境下没有F5 Big-IP负载均衡交换机可以用,于是先后试了weblogic的proxy ...

  4. atlas+mysql主主集群实现读写分离

     atlas+mysql主主集群实现读写分离 前言: 目前线上系统数据库采用的是主主架构.其中一台主仅在故障时切换使用,(仅单台服务器对外提供服务,当一台出现问题,切换至另一台).该结构很难支撑较大并 ...

  5. Mysql数据库优化一:集群(读写分离)之主从服务器的安装与配置

    Mysql数据库的集群(读写分离),说白了就是将读操作和写操作分开在不同的服务器上实现,以达到提高效率的目的. 大致原理如下: 数据库中的所有操作都是有日志记录的(前提是要打开这个日志记录功能) 1. ...

  6. Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发MapReduce的demo

    近期为了分析国内航空旅游业常见安全漏洞,想到了用大数据来分析,其实数据也不大,只是生产项目没有使用Hadoop,因此这里实际使用一次. 先看一下通过hadoop分析后的结果吧,最终通过hadoop分析 ...

  7. mysql与mycat搭建实现集群与读写分离

    数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...

  8. windowsxp下的mysql集群技术

    1.准备工作 a.系统环境为:Windows Xp系统 b.mysql版本为:MySQL Server 5.5 c.mysql cluster版本为:mysql-cluster-gpl-noinsta ...

  9. 170711、Linux下搭建MySQL集群

    一.MySQL集群简介 1.什么是MySQL集群 MySQL集群是一个无共享的(shared-nothing).分布式节点架构的存储方案,其目的是提供容错性和高性能. 数据更新使用读已提交隔离级别(r ...

随机推荐

  1. 不会JavaScript能混前端么?能拿到高薪么?

    不会JavaScript能混前端么?能拿到高薪么? 答案是:很难! 为什么这么说呢,理由很简单 1)有很多企业不注重前端开发,当然也就不会给你高薪了,这样的企业以小企业居多. 他们一般对前端开发的认识 ...

  2. Java中是否可以继承String类,为什么

    Java中,是否可以继承String类?为什么? 答案: 不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变. public final class ...

  3. Java请求参数类QueryParameter

    import java.util.HashMap; import java.util.Map; import org.apache.commons.lang.StringUtils; /** * 请求 ...

  4. BZOJ 1668: [Usaco2006 Oct]Cow Pie Treasures 馅饼里的财富( dp )

    dp , dp[ i ][ j ] = max( dp[ k ][ j - 1 ] ) + G[ i ][ j ] ( i - 1 <= k <= i + 1 , dp[ k ][ j - ...

  5. scala查询dataFrame结构

    println(dataFrame.printSchema)

  6. crontab工具安装和检查

    什么是crontab?crontab 是一个用于设置周期性执行任务的工具 重启crond守护进程 systemctl restart crond 查看当前crond状态 systemctl statu ...

  7. springMVC下出现http 400错误

    参数绑定过程中类型转换失败 Failed to convert property value of type 'java.lang.String' to required type 'java.uti ...

  8. (原创)一个简洁通用的调用DLL函数的帮助类

    本次介绍一种调用dll函数的通用简洁的方法,消除了原来调用方式的重复与繁琐,使得我们调用dll函数的方式更加方便简洁.用过dll的人会发现c++中调用dll中的函数有点繁琐,调用过程是这样的:在加载d ...

  9. Form_Form Builder的常用变量(概念)

    2014-12-30 Created By BaoXinjian

  10. linux 的 awk 使用

    linux中awk命令对文本内容进行操作,其功能十分强大 1.如:查看一个有几百万行内容的文件中第3列数字内容(不重复) cat test.csv | awk -F ',' '{print $3}' ...