amoeba-mysql主从复制配置

article/2025/9/13 13:01:06

amoeba-mysql主从复制配置

主mysql192.168.8.186
1. 同步时间ntpdate ntp.org.cn
2. 打开mysql配置文件/etc/my.cnf,在mysqld下添加
a) log-bin=master-bin ---------启动二进制日志系统
b) server-id=1 ---------服务id,主服务器server-id比从服务器server-id小
c) log-slave-updates=true
3. 重启mysql
4. 进入数据库
5. 创建同步账号,并赋予权限GRANT REPLICATION SLAVE ON . TO ‘test’@‘192.168.8.184’ IDENTIFIEDBY ‘123456’;
6. 刷新flush privileges;
7. 查看master的状态信息,记录下file和position的值,在后边的slave配置中会用到
show slave status\G;
在这里插入图片描述
从mysql192.168.8.184
1. 同步时间ntpdate ntp.org.cn
2. 打开mysql配置文件/etc/my.cnf,在mysqld下添加
a) server-id=2 -------- 服务id,从服务器server-id比主服务器server-id大
b) relay-log=relay-log
c) relay-log=relay-log-bin
d) relay-log-index=slave-relay-bin.index
3. 进入mysql
4. 停止slave服务:stop slave;
5. 配置slave同步

CHANGE MASTER TO     MASTER_HOST='192.168.8.186',MASTER_USER='test',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=336;
    6.     开启slave同步:start slave;复位slave同步:reset slave;

在这里插入图片描述
7. 查看slave状态show slave status\G;
在这里插入图片描述
主机192.168.8.185
1. 查找已安装jiva并卸载
在这里插入图片描述
2. 下载jdk-6u14-linux-x64.bin和amoeba-mysql-binary-2.2.0.tar.gz
3. 给权限chmod +x jdk-6u14-linux-x64.bin
4. 执行./jdk-6u14-linux-x64.bin
5. 移动 mv jdk1.6.0_14/ /usr/local/jdk1.6
6. 进入cd /usr/local/jdk1.6/
7. 配置java环境变量vim /etc/profile
exportJAVA_HOME=/usr/local/jdk1.6
exportCLASSPATH= C L A S S P A T H : CLASSPATH: CLASSPATH:JAVA_HOME/bin: P A T H : PATH: PATH:HOME/jre/bin
export PATH= J A V A H O M E / l i b : JAVA_HOME/lib: JAVAHOME/lib:JAVA_HOME/jre/bin: P A T H : PATH: PATH:HOME/bin
exportAMOEBA_HOME=/usr/local/amoeba/
exportPATH= P A T H : s P A T H : PATH:sPATH: PATH:sPATH:AMOEBA_HOME/bin
8. 更新配置source /etc/profile
9. 查看java -version
在这里插入图片描述
10. 创建mkdir /usr/local/amoeba
11. 解压tar zxf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba
12. 给权限chmod -R 755 /usr/local/amoeba/
13. 两个数据库都新建用户与授权并刷新grant all privileges on . to ‘test’@’%’ identified by ‘123456’;
在这里插入图片描述
14. 配置Amoeba先配置vim /usr/local/amoeba/conf/dbServers.xml

<?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 factoryConfigsuch as 'multiPool' dbServer   --><dbServer name="abstractServer" abstractive="true"><factoryConfig
class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory"><property name="connectionManager">${defaultManager}</property><property name="sendBufferSize">64</property><property name="receiveBufferSize">128</property><!-- mysql port --><property name="port">3306</property>  #设置Amoeba要连接的mysql数据库的端口,默认是3306<!-- mysql schema --><property name="schema">testdb</property>  #设置缺省的数据库,当连接amoeba时,操作表必须显式的指定数据库名,即采用dbname.tablename的方式,不支持 use dbname指定缺省库,因为操作会调度到各个后端dbserver<!-- mysql user --><property name="user">test1</property>  #设置amoeba连接后端数据库服务器的账号和密码,因此需要在所有后端数据库上创建该用户,并授权amoeba服务器可连接<property name="password">123456</property></factoryConfig><poolConfig class="com.meidusa.toolkit.common.poolable.PoolableObjectPool"><property name="maxActive">500</property>  #最大连接数,默认500<property name="maxIdle">500</property>    #最大空闲连接数<property name="minIdle">1</property>    #最新空闲连接数<property name="minEvictableIdleTimeMillis">600000</property><property name="timeBetweenEvictionRunsMillis">600000</property><property name="testOnBorrow">true</property><property name="testOnReturn">true</property><property name="testWhileIdle">true</property></poolConfig></dbServer><dbServer name="writedb"  parent="abstractServer">  #设置一个后端可写的dbServer,这里定义为writedb,这个名字可以任意命名,后面还会用到<factoryConfig><!-- mysql ip --><property name="ipAddress">192.168.8.186</property>
#设置后端可写主dbserver</factoryConfig></dbServer>   <dbServer name="slave"  parent="abstractServer">  #设置后端可读dbserver<factoryConfig><!-- mysql ip --><property name="ipAddress">192.168.8.184</property></factoryConfig></dbServer>   <dbServer name="myslave" virtual="true">  #设置定义一个虚拟的dbserver,实际上相当于一个dbserver组,这里将可读的数据库ip统一放到一个组中,将这个组的名字命名为myslave<poolConfig class="com.meidusa.amoeba.server.MultipleServerPool"><!-- Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA--><property name="loadbalance">1</property>  #选择调度算法,1表示复制均衡,2表示权重,3表示HA, 这里选择1         <!-- Separated by commas,such as: server1,server2,server1 --><property name="poolNames">slave</property>  #myslave组成员</poolConfig></dbServer>        
</amoeba:dbServers>
  1. 配置第二个文件vim /usr/local/amoeba/conf/amoeba.xml
    
<?xml version="1.0" encoding="gbk"?><!DOCTYPE amoeba:configuration SYSTEM "amoeba.dtd">
<amoeba:configurationxmlns:amoeba="http://amoeba.meidusa.com/"> <proxy><!-- service class must implements com.meidusa.amoeba.service.Service --><service name="Amoeba for Mysql" class="com.meidusa.amoeba.mysql.server.MySQLService"><!-- port --><property name="port">8066</property>    #设置amoeba监听的端口,默认是8066       <!-- bind ipAddress -->    #下面配置监听的接口,如果不设置,默认监听所以的IP<!-- <property name="ipAddress">127.0.0.1</property>-->        <property name="connectionFactory"><bean class="com.meidusa.amoeba.mysql.net.MysqlClientConnectionFactory"><property name="sendBufferSize">128</property><property name="receiveBufferSize">64</property></bean></property><property name="authenticateProvider"><bean class="com.meidusa.amoeba.mysql.server.MysqlClientAuthenticator">                   
# 提供客户端连接amoeba时需要使用这里设定的账号 (这里的账号密码和amoeba连接后端数据库服务器的密码无关)<property name="user">root</property>                     <property name="password">123456</property><property name="filter"><bean class="com.meidusa.toolkit.net.authenticate.server.IPAccessController"><property name="ipFile">${amoeba.home}/conf/access_list.conf</property></bean></property></bean></property>          </service>    <runtime class="com.meidusa.amoeba.mysql.context.MysqlRuntimeContext">            <!-- proxy server client process thread size --><property name="executeThreadSize">128</property>            <!-- per connection cache prepared statement size  --><property name="statementCacheSize">500</property>            <!-- default charset --><property name="serverCharset">utf8</property>            <!-- query timeout( default: 60 second , TimeUnit:second) --><property name="queryTimeout">60</property></runtime>        </proxy>    <!-- Each ConnectionManager will start as threadmanager responsible for the Connection IO read , Death Detection--><connectionManagerList><connectionManager name="defaultManager"
class="com.meidusa.toolkit.net.MultiConnectionManagerWrapper"><property name="subManagerClassName">com.meidusa.toolkit.net.AuthingableConnectionManager</property></connectionManager></connectionManagerList>    <!-- default using file loader--><dbServerLoader class="com.meidusa.amoeba.context.DBServerConfigFileLoader"><property name="configFile">${amoeba.home}/conf/dbServers.xml</property></dbServerLoader>    <queryRouter class="com.meidusa.amoeba.mysql.parser.MysqlQueryRouter"><property name="ruleLoader"><bean class="com.meidusa.amoeba.route.TableRuleFileLoader"><property name="ruleFile">${amoeba.home}/conf/rule.xml</property><property name="functionFile">${amoeba.home}/conf/ruleFunctionMap.xml</property></bean></property><property name="sqlFunctionFile">${amoeba.home}/conf/functionMap.xml</property><property name="LRUMapSize">1500</property><property name="defaultPool">writedb</property>  #设置amoeba默认的池,这里设置为writedb                <property name="writePool">writedb</property>  #这两个选项默认是注销掉的,需要取消注释,这里用来指定前面定义好的俩个读写池<property name="readPool">myslave</property>   #        <property name="needParse">true</property></queryRouter>
</amoeba:configuration>
  1. 分别在主mysql和从mysql上为amoedb授权
    

    GRANT ALL ON testdb.* TO ‘test1’@‘192.168.8.185’ IDENTIFIED BY ‘123456’;
    flush privileges;
    在这里插入图片描述

  2. 启动amoeba
    

    /usr/local/amoeba/bin/amoeba start

  3. 测试远程登陆mysql客户端通过指定amoeba配置文件中指定的用户名、密码、和端口以及amoeba服务器ip地址链接mysql数据库
    

    在这里插入图片描述

  4. 在testdb中创建表mysql并插入数据
    在这里插入图片描述

  5. 分别登陆主mysql和从mysql查看数据
    

    主mysql
    在这里插入图片描述
    从mysql
    在这里插入图片描述

  6. 停掉主mysql,然后在客户端分别执行插入和查询功能
    

    在这里插入图片描述
    可以看到,关掉主mysql写入报错,读正常

  7. 停掉主从mysql,然后在客户端分别执行插入和查询功能
    

    在这里插入图片描述
    可以看到插入成功,读取失败

  8. 开启从mysql,查看数据是否自动同步
    

    在这里插入图片描述

可以看到数据正常同步,ok!!!


http://chatgpt.dhexx.cn/article/R6orf1lf.shtml

相关文章

mysql amoeba 事务_MySQL-Amoeba

Amoeba 变形虫 Amoeba 变形虫服务默认端口号8066 该软件能识别读写请求&#xff0c;把读写请求分配到不同的后端MySQL服务器 不用像MySQL-router用端口进行区分读写。 实验: 为了查看读写分离效果 本实验就不配置主从复制 1、 首先IP规划 amoeba:192.168.1.76 master:192.168.1…

amoeba mysql proxy_mysql-proxy和amoeba 分别实现Mariadb读写分离

内容概览&#xff1a; 1、mysql-proxy实现Mariadb读写分离 1、1 拓扑图和环境介绍 1、2 mysql-proxy安装 1、3 设置mysql-proxy 1、4 主节点添加mysql-proxy可访问用户 1、5 读写分离验证 2、amoeba 2、1 amoeba工作原理图 2、2 环境拓扑 2、3 配置JAVA环境 2、4 安装配置amoeb…

amoeba mysql_使用Amoeba 实现MySQL DB 读写分离

Amoeba(变形虫)项目是一个开源框架&#xff0c;于2008年开始发布一款 Amoeba for MySQL软件&#xff1b; 这个软件致力于MySQL的分布式数据库前端代理层&#xff0c;它主要在应用层访问MySQL的时候充当SQL路由功能&#xff0c;专注于分布式数据库代理层(Database Proxy)开发&am…

amoeba mysql_mysql中间件-amoeba

中间件&#xff1a;一种提供在不同技术、不同的软件之间共享资源的程序&#xff0c;更大化了利用了数据库的性能&#xff0c;可以无限扩展(注&#xff1a;真实环境中并非如此) 数据库的中间件&#xff1a; mysql proxy (官方版本)性能低&#xff0c;需要lua 脚本 atlas 性能低&…

Amoeba

1.介绍 Amoeba是mysql代理&#xff0c;增强mysql。类似的产品还有MyCat &#xff08;mysql代理&#xff09; 2.资源&#xff1a;点击打开链接c82k 3.准备&#xff1a;amoeba是基于java的所以必须有jdk 4.上传amoeba 5.解压tar包 6.配置文件 amoeba配置文件两个 dbServer…

Mysql基于Amoeba_读写分离搭架

一、Amoeba简介 Amoeba是一个以MySQL为底层数据存储&#xff0c;并对应用提供MySQL协议接口的proxy。它集中地响应应用的请求&#xff0c;依据用户事先设置的规则&#xff0c;将SQL请求发送到特定的数据库上执行。基于此可以实现负载均衡、读写分离、高可用性等需求&#xff0…

mysql基于Amoeba(变形虫)实现读写分离

一&#xff0c;Amoeba介绍 1、什么是amoeba&#xff1f; ​ Amoeba(变形虫)项目&#xff0c;专注 分布式数据库 proxy 开发。座落与Client、DB Server(s)之间。对客户端透明。具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库、可并发请求多台数据…

Amoeba:开源的分布式数据库Porxy解决方案

什么是Amoeba? Amoeba(变形虫)项目&#xff0c;该开源框架于2008年 开始发布一款 Amoeba for Mysql软件。这个软件致力于MySQL的分布式数据库前端代理层&#xff0c;它主要在应用层访问MySQL的 时候充当SQL路由功能&#xff0c;专注于分布式数据库代理层&#xff08;Database …

findbugs html报告,利用findBugs插件来扫描代码,并用ant生成报告

最近项目要用findbugs插件来生成报告&#xff0c;总结了一下用法和如何生成报告 1&#xff0c; 把下载的压缩包解压后&#xff0c;把 copy到eclipse的plugin目录中去&#xff1b; 2&#xff0c; 重新启动eclipse 3&#xff0c; 打开eclipse->window->Preferences&#xf…

AS之Findbugs

一 前言 Findbugs是由 National Science Foundation支持的一个用静态分析的方式来寻找Java代码中Bug的项目&#xff0c;它是一个静态分析工具&#xff0c;它检查类或者jar文件&#xff0c;将字节码和一组缺陷模式进行对比以发现可能的问题。有了静态分析工具&#xff0c;就可以…

AndroidStudio中FindBugs的简单使用教程

对于代码质量的检查&#xff0c;一直是一个比较棘手的问题。虽然我们部门有关于java代码的各种规范&#xff0c;领导也多次强调对代码的评审。 但是在实际执行过程中&#xff0c;由于开发人员的水平参差不齐&#xff0c;在开发项目时还有各种其他因素&#xff0c;比如时间紧任…

maven项目集成findbugs详解

文章目录 0、概述一、接入方式二、如何使用方式一、在控制台中执行打包命令方式二、使用IntelliJ IDEA的maven工具&#xff08;其他IDE用户忽略&#xff09; 三、bug详情查看四、忽略指定的包、类、类中的方法步骤一、在pom.xml中 增加配置。步骤二、增加配置文件&#xff0c;用…

Findbugs maven 插件使用

Findbugs maven 插件使用 FindBugs™手册 http://findbugs.sourceforge.net/manual/index.html 0、概述 FindBugs是一个静态分析工具&#xff0c;它将**字节码&#xff08;因此需要先编译&#xff09;**与一组缺陷模式进行对比以发现可能的问题。有了静态分析工具&#xff0c;…

检查代码质量的插件Findbugs使用说明

一、简介 Findbugs是一个静态分析工具&#xff0c;它检查类或者jar文件&#xff0c;将字节码与一组缺陷模式进行对比以发现可能的问题。利用这个工具可以在不实际运行程序的情况下对软件进行分析。可以帮助改进代码质量。Findbugs提供了方便操作的可视化界面&#xff0c;同时也…

Findbugs的使用

转载请注明出处&#xff1a;http://blog.csdn.net/feibendexiaoma/article/details/72821781前言 Findbugs很多人都并不陌生&#xff0c;Eclipse中有插件可以帮助查找代码中隐藏的bug&#xff0c;IDEA中也有这款插件。这个插件可以帮助我们查找隐藏的bug,比较重要的功能就是查找…

android studio findbugs 过滤,Android Studio中使用FindBugs

1.什么是FindBugs 一句话简单理解就是&#xff1a;是一个工具&#xff0c;可以用它自动帮你找出代码中潜在的BUG。当然事实并不一定总是如此&#xff0c;也有很多它找不出来的地方。下面将直接介绍如何在Android Studio中的简单使用。有兴趣的童鞋可以自己去了解了解&#xff0…

FindBugs插件

官网 FindBugs官网&#xff1a;http://findbugs.sourceforge.net/ 插件安装 点击settings---->plugins---->Browse repositories 搜索框输入FindBugs-IDEA并点击右侧Install按钮 安装完毕后重启idea&#xff0c;发现左下角多了一个FindBugs图标 插件使用 在被检查文…

eclipse常用插件之FindBugs

1、简介 FindBugs 是由马里兰大学提供的一款开源 Java静态代码分析工具。FindBugs通过检查类文件或 JAR文件&#xff0c;将字节码与一组缺陷模式进行对比从而发现代码缺陷&#xff0c;完成静态代码分析。FindBugs既提供可视化 UI 界面&#xff0c;同时也可以作为 Eclipse插件使…

php findbugs,findBugs插件

现在使用Java进行开发的软件已经很多了&#xff0c;那么我们在使用Java开发的时候&#xff0c;是不是会遇到各种各样的错误了&#xff0c;有的错误隐藏着&#xff0c;有的错误你发现了&#xff0c;可以修改&#xff0c;那没有发现的错误就令人担忧了&#xff01;小编这款插件就…

软件测试实验 FindBugs

1.配置 FindBugs 打开 Eclipse&#xff0c;通过【Window -> Preferences】下【Java -> FindBugs】查看 FindBugs的 配置情况。问题: 这里可以配置 FindBugs的哪些特性&#xff1f; 选择导入的项目&#xff0c;通过【Window -> Preferences】下【Java -> FindBugs…