zoukankan      html  css  js  c++  java
  • Ubuntu10下MySQL搭建Amoeba_基础

    一、背景知识

    Amoeba 是阿里巴巴的技术陈思儒开始的一个开源项目,它是分布式数据库Proxy解决方案。Amoeba框架是基于Java SE 1.5开发的,在安装Amoeba之前需要先安装Java环境。经验证,Amoeba在Java SE 1.5和Java SE 1.6上能正常运行。

    (一) Amoeba包括3个产品:Amoeba From Sourceforge

    1.      Amoeba for MySQL是Amoeba开源社区发布的一款MySQL数据库中间层代理软件,致力于数据库的切分整合、负载均衡、高可用性等;

    2.      Amoeba for Aladdin支持所有提供jdbc驱动的数据库(Oracle、SQL Server、MySQL等) ;

    3.      Amoeba for MongoDB支持NoSQL数据库MongoDB;

    (二) 其他的MySQL分布式数据库系统的中间层软件还有MySQL Proxy,HiveDB。Amoeba for MySQL相较于其他软件有以下优势

    1.      基于XML的配置文件,用SQLJEP语法编写规则,配置比较简单(MySQL Proxy需要编写大量Lua脚本才能实现),有比较完善的使用帮助文档

    2.      同时支持水平切分和垂直切分(HiveDB只支持水平切分)

    3.      目前的版本已经比较稳定,已有很多企业用于生产环境

    4.      支持HA机制、支持活动连接数均衡、支持权重配置

    相较于其他软件有以下劣势

    1.      Amoeba for MySQL不支持事务:其实,分布式事务的问题是所有数据库中间层普遍面临的问题,不是Amoeba独有的问题;目前通常的解决办法是,将事务拆分成几个单数据库内的小事务,由应用程序进行总控。

    2.      Amoeba for MySQL不支持跨节点JOIN:同样,这个问题也不是Amoeba独有的,通常的解决办法是由应用程序先从一个节点取出数据,然后由应用程序去其他节点JOIN。

    3.      Amoeba for MySQL不支持跨节点排序:这个问题也不是Ameoba独有的,通常的解决办法是由应用程序从多个节点中取出数据,然后进行排序。

    4.      Amoeba for MySQL不适合返回大量(超过10万)数据的查询。

    5.      Amoeba for MySQL不支持分库分表,只能做到分数据库实例。

    二、配置过程

    下面是Amoeba for MySQL的基础搭建(不包含读写分离和数据分片):

    (一) 下载JDK:jdk-6u30-linux-i586.bin(解压版安装)

    (二) 安装和验证JDK:Ubuntu10下安装JAVA JDK

    (三) 下载Amoeba for MySQL:amoeba-mysql-binary-2.1.0-RC5.tar.gz

    (四) 安装和验证Amoeba for MySQL:

    1.      拷贝文件到/tmp目录:E:\>pscp.exe amoeba-mysql-binary-2.1.0-RC5.tar.gz chen@192.168.1.147:/tmp/

    2.      /usr/local创建文件夹:#mkdir amoeba

    3.      进入文件夹:#cd amoeba

    4.      解压文件到/usr/local/amoeba

    #tar -zxvf /tmp/amoeba-mysql-binary-2.1.0-RC5.tar.gz

    5.      验证Amoeba是否安装成功的命令(如下图):/usr/local/amoeba/bin/amoeba


    (图1:安装成功)

    6.      启动amoeba:/usr/local/amoeba/bin/amoeba start


    (图2:启动成功)

    7.      修改/usr/local/amoeba/conf/dbServers.xml文件:(需要根据自己的情况)

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

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

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

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

    8.      只要上面的参数对了,amoeba.xml是不需要修改的,直接输入下面的命令,密码为空(默认为空),直接回车就可以进入了:

    #mysql -u root -p -h 192.168.1.147 -P 8066

    或者#mysql -u root -p -h 127.0.0.1 -P 8066

    如果开启的amoeba的终端没有报错,恭喜你,搭建amoeba for mysql成功了!!下面是对配置的一些不错测试:

    9.      使用SQLyog进行测试:


    (图3:测试空密码)

    10.   可以尝试修改amoeba.xml:

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

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

    登陆应该改为:#mysql -u testuser -p -h 192.168.1.147 -P 8066,密码为password,这样一样能登陆成功。

    11.   可以尝试使用SQLyog进行登陆


    (图4:测试帐号密码)

    三、注意事项

    (一) 验证Amoeba是否安装成功的命令:/usr/local/amoeba/bin/amoeba 要全部输入,如果是进入到bin执行amoeba是不行的。

    (二) #mysql -u root -p -h 127.0.0.1 -P 8066其中root和密码表示的是在amoeba.xml中配置的帐号密码。

    (三) Amoeba主要配置文件:#/usr/local/amoeba/conf/*.xml

    1.      amoeba.xml用来配置Amoeba服务的基本参数,如Amoeba主机地址、端口、认证方式、用于连接的用户名、密码、线程数、超时时间、其他配置文件的位置等。

    2.      dbServers.xml用来存储和配置Amoeba所代理的数据库服务器的信息,如:主机IP、端口、用户名、密码等。

    3.      rule.xml用来配置切分规则。

    4.      ruleFunctionMap.xml用来配置切分规则中使用的用户自定义函数的处理方法。

    5.      functionMap.xml用来配置数据库函数的处理方法,Amoeba将使用该配置文件中的方法解析数据库函数。

    6.      access_list.conf用来授权或禁止某些服务器IP访问Amoeba。

    7.      log4j.xml,用来配置Amoeba输出日志的级别和方式。

    (四) dbServers.xml中的loadbalance标签选项的3个定义:

    1=ROUNDROBIN round robin

    2=WEIGHTBASED weight based

    3=HA high availability

    四、错误与疑问

    1.      amoeba start之后,再用终端连接上mysql,出现了下面的错误:


    (图5:错误信息)

    这个错误是dbServers.xml中配置的mysql的连接存在问题,可以先使用里面的帐号测试登陆,进一步排除问题。

    2.      下面两个图是启动amoeba的不同界面,为什么会有区别呢?用于调试:


    (图6:有及时信息输出)


    (图7:回到命令行了)

    3.      Amoeba的启动用户,需要是root嘛?

    4.      如果你修改了配置,不要以为重启amoeba就可以了,如果你还是使用之前遗留的链接到MySQL的操作界面,那么你修改的文件是不会生效的,需要重新登录数据库,比如我是在IP147的机器上搭建amoeba的,如果是在本机打开终端的就需要关掉终端,重新打开,如果还是使用SQLyog的,那就需要断开,重新链接。

    5.      Amoeba Monitor Server的使用?

    6.      什么是tar.gz

    解压:$ tar zxvf FileName.tar.gz

    压缩:$ tar zcvf FileName.tar.gz DirName

    五、参考文献

    Amoeba使用指南

    通过Amoeba对一个数据库实例进行操作

    Amoeba for MySQL学习研究之介绍

    Amoeba for MySQL学习研究之安装

    Amoeba for MySQL学习研究之配置

    UBUNTU11.10下安装 JDK-6U30-LINUX-I586.BIN

    linux解压 tar命令

    tar.gz

  • 相关阅读:
    Javaoop_继承
    事务,视图,索引,备份和恢复
    常用函数。
    为虚拟机配置NAT网络
    安装Linux系统
    初始Redis
    高内聚低耦合
    MyBatis动态SQL
    初始MyBatis
    GitHub的操作
  • 原文地址:https://www.cnblogs.com/gaizai/p/2439477.html
Copyright © 2011-2022 走看看