mysql数据库双机同步开源软件otter《转载》

  转载地址:http://blog.chinaunix.net/uid-15472411-id-3886795.html

先说下项目情况,数据库是只用于管理后台供管理员配置使用,不影响任何业务的主流程,单机房可以满足需求。 可是客户非要求用双机房双写,本着简单解决问题的想法,我们就打算采用单点写双读。可是结果。。。。郁闷的是,人家都懒得跟我们说一声原因,怎么问都往数据不一致问题上绕, ,单写!额。。。开发工期很紧,我们先开发了,到最后都部署了,又跟客户沟通数据库同步问题。这次在绕了好几天后,dba终于开口说,原因是Mysql本身的复制机制在跨机房情况下不可靠。 泪奔.......

    otter开源了 ,这个时间点太好了,刚好能用上,ye!向otter的开发者致敬!
    otter的wiki页面:https://github.com/alibaba/otter
    
     otter的环境需要:mysql  ,jdk, zookeeper , node , aria2 , manager
     为了防止otter的闪断,我把一些软件上传到了百度云上:
    http://pan.baidu.com/share/link?uk=3708161223&shareid=2987646776#dir
     其他的就不说了,直接说安装和使用。
    1 安装mysql,  jdk ,zookeeper
       otter只支持5.5及以下版本的Mysql,不支持maridb
       此处假设安装了数据库A:192.168.85.10:3306
                             数据库B: 192.168.85.11:3306
       jdk,我安装的是7,安装完后,配置环境变量
       zookeeper,可以只安装一个,可以以集群形式安装。
       我现在只安装了一个,zookeeper的地址: 192.168.85.10:2181           
    2 安装node和aria2
     node 需要aria2支持,我是在AB机房各安装了一套。

     安装node:
    创建目录:mkdir node
    进入目录:cd  node
    下载node:
    解压缩:tar zxvf node.deployer-$version.tar.gz
    修改node的配置:vi conf/otter.properties
         otter.manager.address =172.20.150.70:1099  ##对用manager中otter.properties的配置otter.communication.manager.port
    node的启动/停止:
        cd   bin
       startup.sh/stop.sh
        
    安装aria2:   
     下载aria2:
     解压缩:tar zxvf aria2-$version.tar.gz
     为了方便切换目录:mv aria2-$version aria2
     进入目录: cd aria2
     编译:  

        ./configure

        Make

        Make install

     把aria2安装后的bin目录下的执行文件添加到环境变量path中
      ( 我本地安装的目录是/usr/local/aria2,安装后 ,bin目录在/usr/local/bin/)

     3 安装manager
     创建目录:mkdir manager
     进入目录:cd  manager
     下载:wget  https://github.com/alibaba/otter/releases/download/otter-x.y.z/manager.deployer-x.y.z.tar.gz
     解压缩:tar zxvf manager.deployer-$version.tar.gz
    
      安装manager的数据库:     
      下载初始化sql:wget https://raw.github.com/alibaba/otter/master/manager/deployer/src/main/resources/sql/otter-manager-schema.sql 

      进入Mysql中执行:mysql>     source  /usr/local/otter-manager-schema.sql

       
     修改manager的配置文件:vi conf/otter.properties
           ## otter manager domain name
           otter.domainName = 172.20.150.70##本地的域名
            ## otter manager http port
           otter.port =  8080 ##对外访问的端口号
            ## jetty web config xml
           otter.jetty = jetty.xml
           ## otter manager database config
           otter.database.driver.class.name = com.mysql.jdbc.Driver
           otter.database.driver.url =  jdbc:mysql://192.168.85.10:3308/otter##otter数据的配置

           otter.database.driver.username = canal
           otter.database.driver.password =  canal
            ## otter communication port
            otter.communication.manager.port = 1099##对应Node中的配置
            ## otter communication pool size
            otter.communication.pool.size = 10
            ## default zookeeper address
            otter.zookeeper.cluster.default = 192.168.85.10:2181##zookeeper


           manager的启动/停止:
               cd bin
               tartup.sh/stop.sh
         4 调试
           启动预装好的Mysql,zookeeper,manager.
           4.1 在 manager的界面,添加Node,如下图:
            机器管理—》Node管理
                
                   

                 
                 
                      添加完成后,根据添加后的node序号,如下图中,192.168.85.10中对应的序号是1,那么进入10机器下的node目录,执行echo 1 > conf/nid,然后启动node.
                   

                   

                   4.2  添加Zookeeper:
                      机器管理-》Zookeeper管理
                    
                       如图,点击添加按钮,添加内容参考下图:
                     
                 4.3 数据源配置:
                    配置管理-》数据源配置,点击添加按钮
                     数据源配置填写需要同步的两个数据库信息                              
                    

                  
                         添加内容如下图所示,添加完成后,点击验证连接数据源
                       
                                      
                     4.4 数据表配置:
                          配置管理-》数据表配置,点击添加按钮。
                          数据表配置需要同步的表的信息   
                          
                          添加数据库的名称,数据表的名称和数据源名称,并点击验证连接表
                         
                   4.5 canal配置:
                        配置管理-》canal配置,点击添加按钮。
                                      
                        
                             canal需要添加两个,每一个对应一个数据库信息,从配置的数据库中,拉取bin-log信息。
                            
                     4.5 同步管理:
                        1)添加channel
                         
                           
                           
                     2) channel下需要配置pipeline,点击channel的名字,可以添加pipeline
                          

                        
                  3)添加完成pipeline后,点击pipeline的名字,添加映射关系,映射关系配置同步的原表和目标表。
                       
                       
                 4)配置完成后,启动channel.
                     
                          需要注意的是,如果配置的双通道,就是双机房双写,那么需要点击使用文档-》数据库初始化页面。
                         在双机房的数据库同时执行初始化SQL.

                     

                  
                  5)启动后,对双机房中的相应表分别进行插入,更新或其他操作,验证双机房同步结果~
                     终于同步了!再次感谢otter的开发者agapple ,否则我还不定在哪边绕呢。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值