一 简介: 今天咱们来聊聊 canal和otter的组合搭配吧
二 概念统计
   1. 基于Canal开源产品,获取数据库增量日志数据。
   2. 典型管理系统架构,manager(web管理)+node(工作节点)
      a. manager运行时推送同步配置到node节点
      b. node节点将同步状态反馈到manager上
  3. 基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作.
三 机器组成:
   1 manager节点(最好自带数据库) 2 node节点 3 ZK集群 4 mysql数据库
四 manager安装
  1 下载sql文件并导入
     wget https://raw.github.com/alibaba/otter/master/manager/deployer/src/main/resources/sql/otter-manager-schema.sql
     source otter-manager-schema.sql
  2 下载安装包
     wget https://github.com/alibaba/otter/releases/download/v4.2.15/manager.deployer-4.2.15.tar.gz
     tar xzvf manager.deployer-4.2.15.tar.gz -C /usr/local/otter-manager
  3 修改配置文件otter.properties
      otter.zookeeper.cluster.default = zk地址:2181
      otter.domainName =本机IP地址
      otter.database.driver.url = jdbc:mysql://IP:3306/otter
      otter.database.driver.username = 用户名
      otter.database.driver.password = 密码 //otter管理节点需要使用数据库,这里设置的是连接这台数据库的用户名密码
  4 启动相应进程
    startup.sh
  5 manager启动测试
    访问地址 http://127.0.0.1:8080/login.htm,初始密码为:admin/admin

五 node 启动
web端进行配置
  1 机器管理->node管理->node 添加
    机器名称:可以随意定义,方便自己记忆即可
    机器ip:对应node节点将要部署的机器ip,如果有多ip时,可选择其中一个ip进行暴露. (此ip是整个集群通讯的入口,实际情况千万别使用127.0.0.1,否则多个机器的node节点会无法识别)
    外部ip :对应node节点将要部署的机器ip,存在的一个外部ip,允许通讯的时候走公网处理,此参数适用于node集群
 2 从节点服务器进行安装配置
  1 wget https://github.com/alibaba/otter/releases/download/v4.2.15/node.deployer-4.2.15.tar.gz
     tar xzvf node.deployer-4.2.15.tar.gz -C /usr/local/otter-node
     wget http://repository.it4i.cz/mirrors/repoforge/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
     rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
     yum -y install aria2
 2 修改配置文件
  1 NID配置
    echo 1 > conf/nid (这里的NID是第一步配置生成的第一个ID)
  2 otter.properties配置修改
    otter.manager.address = IP:1099 正确的otter-manager地址
  3 启动node节点服务,观察日志
  4  查看状态
   机器管理->node管理 查看node节点是否正常运行如果没有启用,请查看日至进行排查
六 同步配置
  1 canal配置
    配置管理->canal管理
    相关参数: 1 源数据源和相关的账号密码字符集
                    2 zk集群
                    3 同步信息存储机制
  2 数据源配置
    配置管理->数据源配置
   相关参数: 1 原和目的数据的账号密码和URL
   配置完进行检测
 3 数据表配置
   配置管理->数据表配置
   相关参数:1 原和目的的数据库相关的库+表(.*代表匹配全部)
 七 同步管理
    1 添加chanal通道
      添加pipeline
     相关参数:源和目的映射参数
    2 启动chanal通道
八 验证节点
  1 node节点状态
  2 chanal状态
  3 数据源相关配置状态
  4 zk节点配置

mysql 开源 ~ canal+otter系列(1)的更多相关文章

  1. mysql 开源 ~ canal+otter系列(2)

    一 创建相应用户    源数据用户权限: GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO `retl`@'%';    目的 ...

  2. mysql 开源~canal安装解析

    一 简介:今天咱们来聊聊canal的一些东西 二 原理: canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议 mysql ma ...

  3. mysql 开源~canal的深度解读1

    一 简介:经过一段时间的研究,对canal有了一些见解 二 配置文件: 1 canal.properties (系统根配置文件)     主要参数列表   canal.properties (系统根配 ...

  4. mysql 开源~canal维护相关问题

    一 简介:咱们来讨论下canal的一些技巧 二 场景 场景1 canal过滤指定库后,后端java调用读取相关数据时候出现大量的空事务,为何会出现空事务呢,空事务是由于配置了指定的过滤规则,导致了其他 ...

  5. mysql同步之otter/canal环境搭建完整详细版

    接上一篇mysql 5.7多源复制(用于生产库多主库合并到一个查询从库). 这一篇详细介绍otter/canal环境搭建以及当同步出现异常时如何排查.本文主要参考https://blog.csdn.n ...

  6. mysql数据库同步系统otter部署实践(中国与欧洲同步)

    otter的介绍就不说了, 自己去看官网https://github.com/alibaba/otter/wiki 本系统中, 中国的服务器部署在阿里云上, 欧洲服务器部署在亚马逊上, 由于阿里云的网 ...

  7. Quartz.NET开源作业调度框架系列

    Quartz.NET是一个被广泛使用的开源作业调度框架 , 由于是用C#语言创建,可方便的用于winform和asp.net应用程序中.Quartz.NET提供了巨大的灵活性但又兼具简单性.开发人员可 ...

  8. 【2015上半年总结】js开源组件开发系列索引

    js开源组件开发系列一索引 2015.8 by 田想兵 个人网站 从3月份进入新公司以来,时经五个月,我以平均每周1个小组件的速度,已经完成的js组件有22个之余了,已基本上全部用到实际项目中,这些小 ...

  9. mysql 开发进阶篇系列 55 权限与安全(安全事项 )

    一. 操作系统层面安全 对于数据库来说,安全很重要,本章将从操作系统和数据库两个层面对mysql的安全问题进行了解. 1. 严格控制操作系统账号和权限 在数据库服务器上要严格控制操作系统的账号和权限, ...

随机推荐

  1. 编写一个数组工具类, 编写本软件的 帮助文档(API文档)

    本文档是对静态成员的练习. 一. 建立一个ArrayTool(数组工具)的类,在此类中对传入数组进行一些操作(选最大值.先最小值.冒泡排正序.选择排反序.输出数组元素), 二. 建立一个Test的类, ...

  2. 字节缓冲流 BufferedOutputStream BufferedInputStream

    /*缓冲流:读取数据大量的文件时,读取的速度慢java提供了一套缓冲流 提高io流的效率 * */ package cn.lijun.demo; import java.io.BufferedInpu ...

  3. sed 的|

    #!/bin/bash/etc/init.d/nginx start && \sed -i "s|/project/env/|/${PROJ}/${ENVT}/|g" ...

  4. ruby批量插入数据,bulk_insert-----Gem包使用

    文档 https://github.com/jamis/bulk_insert class Book < ActiveRecord::Base end book_attrs = ... # so ...

  5. C语言宏定义##连接符和#符的使用

    1. 关于宏(Macro) 属于编译器预处理的范畴,属于编译器概念(而非运行期概念). 2. 关于# #的功能:是 将其后面的宏参数进行 字符串化操作(Stringfication),即:在对它所引用 ...

  6. 使用CROS解决跨域问题

    使用jq的话,设置ajax这两个属性即可. 第一个为使用crossDomain,第二个属性使其可以传输cookie $.ajaxSetup({ crossDomain: true, xhrFields ...

  7. 如何更改vs2013中git的远程仓库url地址

    可以通过修改Git库配置文件实现,请看下图:

  8. 混合app开发--js和webview之间的交互总结

    使用场景:原生APP内嵌套H5页面,app使用的是webview框架进行嵌套 这样就存在两种情况 1.原生app调用H5的方法 2.H5调用app的方法 分别讲解下,其实app与H5之间的交互式非常简 ...

  9. Django之名称空间

    由于name没有作用域,Django在反解URL时,会在项目全局顺序搜索,当查找到第一个name指定URL时,立即返回. project/urls.py urlpatterns = [ path('a ...

  10. Nginx不支持Post数据中带有"."

    如果提交的数据中带有.,nginx会把数据过滤掉,会导致后台收不到数据.下面是一个错误示例及解决办法