分布式数据库搭建详细教程
由于业务本⾝的需求,有时需要构建分布式数据库。⼀个具有较好设计的分布式数据库,对于⽤户(调⽤者)来说透明,跟使⽤本地数据库⼀样。
本⽂准备使⽤中间件的架构,实现分布式数据库的构建。简单点说,调⽤者与中间件通信,有中间件与各个数据库通讯,完成基本数据操作,将结果返回给调⽤者。
注意:本⽂篇幅看似短⼩,⽂字间引⽤的⽂章链接都是需要各位读者详细阅读的。
      本⽂中Amoeba+Mysql架构⽰意图
1,在虚拟机上构建Mysql server
本⽂使⽤的VM虚拟机,系统为ubuntu 14.04,安装好系统之后,通过apt安装mysql server,⽐较⽅便。安装完成之后,记得打开3306端⼝。
参考下⾯两个教程步骤,完成第⼀步的安装要求。
(安装完mysql即可,Apache等不需要装)
2,链接数据库
mysql服务器安装教程通过上⼀步可以构建若⼲(你开⼼就好)Mysql数据库,本⽂建了两个仅做实验验证。完成后在本地安装Navicat,验证数据连接⽆误。
点击【连接】按钮,输⼊上⼀步建⽴的sever的ip,⽤户名和密码。顺利连接会跟下图⼀样,显⽰链接成功。
3,配置Amoeba
安装Amoeba 直接执⾏以下命令即可:
wget jaist.dl.sourceforge/project/amoeba/Amoeba%20for%20mysql/2.x/amoeba-mysql-binary-2.0.
mkdir /usr/local/amoeba-2.0.1
tar xf amoeba-mysql-binary-2.0. -C /usr/local/amoeba-2.0.1/
(配置参考链接中第三步之后对amoeba配置⽅式),连接两个数据库。
然后可以执⾏下列代码运⾏Amoeba中间件:
/usr/local/amoeba-2.0.1/bin/amoeba start
权限问题出现的话,可能需要在代码前加 sudo
顺利的话可以直接连上数据库(怎么可能这么顺利呐?!),如果发⽣错误很⼤的可能性为常见的两种错误。
参考下⾯链接的解决办法:
ubuntu 14.04默认java的安装在/usr/lib/jvm/java-7-openjdk-amd64下
设置JAVA_HOME环境变量,在bashrc⽂件最后加上:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
重启命令⾏窗⼝,再次运⾏Amoeba
如果正确配置的话,执⾏启动amoeba命令后,会有如下⾯的输出。此时amoeba对外提供MYSQL的服务可以看做是⼀个虚拟的MySQL数据库。
该数据库的地址为amoeba的ip,端⼝在配置过程中会有设置,默认为8066(从下图也能看出来)。
4,设置分⽚
上⼀步中笔者默认忽略了对数据库分⽚的设置。然⽽实际上分布式数据库最终要的就是对⽔平分⽚和竖直分⽚的设置。在amoeba中,是通过对conf⽂件夹中l⽂件进⾏配置实现的。
默认的l⽂件如下图。
所谓⽔平切分就是按照⼀定规则将记录存储在不同的服务器上,官⽅⽂档有详细的
⽽垂直区分则是将⼀条记录的不同列按照约定存储在不同服务器上,可以对敏感重要资料起到⼀定的保护作⽤。
---------------------------------------------------------------------------------------
完成以上的步骤之后,你就可以的得到⼀个⾃⼰的分布式数据库,之后调⽤完全跟普通MYSQL数据库⼀样。笔者使⽤写了⼀个简单点JAVA⼩界⾯连接测试了搭建的数据库,over。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。