1 需求

  • 在同一台服务器同一MySQL实例中的source库和target库都存在student表。如果source库中该表发生增删改操作时,也需要体现到target库的student表中;

2 解决方案

2.1 方案一:使用Shell脚本实现

2.2 方案二:DataX

  • 官方介绍:

    • DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。
  • 没有采纳此方案的原因:
    • DataX 本身占用空间太大,771M;
    • DataX 中使用到了Python,这门语言自己暂时也是一知半解;
    • DataX 适用于不同数据源的数据同步,而这个需求中的数据源均为MySQL,故放弃此方案;

2.3 方案三: Otter 增量同步

  • 官方介绍:

    • 纯Java开发;
    • 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统;

2.3.1 工作原理(摘自官网):

原理描述:

  1. 基于Canal开源产品,获取数据库增量日志数据;
  2. 典型管理系统架构,manager(web管理)+node(工作节点)

    a. manager运行时推送同步配置到node节点;

    b. node 节点将同步状态反馈到manager上;
  3. 基于zookeeper,解决分布式状态调度,允许多node节点之间协同工作;

2.3.2 环境准备

2.3.3 环境搭建及参数配置

3. Otter搭建过程中遇到的问题总结

3.1 MySQL 开启binlog

  • Windows 系统:

    • my.ini中添加如下语句,注意my.ini保存时,编码为:GB2312
# Binary Logging
log-bin=mysql-bin
binlog-format=ROW #Server ID 不能重复
#注意:在 MySQL 5.7.3 及以后版本,如果没有设置server-id, 那么设置binlog后无法开启MySQL服务.
server-id=201609
  • Linux系统:

    • 查看是否有设置使用指定目录的my.cnf文件:ps aux|grep mysql|grep 'my.cnf';如果没有输出,表示没有设置;
    • 查看mysql默认读取my.cnf的目录:mysql --help|grep 'my.cnf';
# Binary Logging
log-bin=/var/lib/mysql/mysql-bin # 此处为绝对路径
binlog-format=ROW #Server ID 不能重复
#注意:在 MySQL 5.7.3 及以后版本,如果没有设置server-id, 那么设置binlog后无法开启MySQL服务.
server-id=201609
  • 查看是否设置成功:

    • 通过MySQL客户端:SHOW MASTER STATUS,如果设置成功,会有如下输出:

3.2 初始化Otter系统表

3.3 manager数据表配置说明:

参考资料:

MySQL 同一实例不同库之间表同步(Otter 应用)的更多相关文章

  1. mysql语句1-创建库和表

    一.DDL数据定义语言 就是对书库内部的对象进行创建.删除.修改等操作的语言. 关键字:create  drop  alter 1.连接数据库 mysql -u用户名 -p -h指定主机(不指定默认是 ...

  2. Logstash学习之路(四)使用Logstash将mysql数据导入elasticsearch(单表同步、多表同步、全量同步、增量同步)

    一.使用Logstash将mysql数据导入elasticsearch 1.在mysql中准备数据: mysql> show tables; +----------------+ | Table ...

  3. Mysql基础(四):库、表、记录的详细操作、单表查询

    目录 数据库03 /库.表.记录的详细操作.单表查询 1. 库的详细操作 3. 表的详细操作 4. 行(记录)的详细操作 5. 单表查询 数据库03 /库.表.记录的详细操作.单表查询 1. 库的详细 ...

  4. 【GoldenGate】使用OGG,两个Oracle库之间单向同步数据

    ************************************************************************ ****原文:blog.csdn.net/clark_ ...

  5. mysql单实例多库与多实例单库

    一.单实例多库: 一个mysql实例,创建多个数据目录. 规划: 实例路径:/usr/local/mysql 数据目录路径: (1)/usr/local/mysql/data (2)/usr/loca ...

  6. Mysql基础语法-建库-建表(增、删、改、查、表关联及子查询)

    前言:MySQL是一个数据库管理系统,也是一个关系数据库.它是由Oracle支持的开源软件,MySQL可以在各种平台上运行UNIX,Linux,Windows等.可以将其安装在服务器甚至桌面系统上. ...

  7. mysql 主从单库单表同步 binlog-do-db replicate-do-db

    方案一:两边做主从. SELECT SUM(DATA_LENGTH)+SUM(INDEX_LENGTH) FROM information_schema.tables WHERE TABLE_SCHE ...

  8. MysQL使用一创建库与表

    数据库简介 人类在进化的过程中,创造了数字.文字.符号等来进行数据的记录,但是承受着认知能力和创造能力的提升,数据量越来越大,对于数据的记录和准确查找,成为了一个重大难题 计算机诞生后,数据开始在计算 ...

  9. MySQL 多实例删库脚本

    DB版本:5.5.14 OS:CentOS 6.3 在测试环境中,在一台服务器上创建多个实例,在每个实例中一个一个删库比较麻烦,因此用下面脚本,可以直接删除所有库,除了系统库以外: #!/bin/ba ...

随机推荐

  1. ASP.NET MVC入门到精通——第一个ASP.NET MVC程序

    开发流程 新建Controller 创建Action 根据Action创建View 在Action获取数据并生产ActionResult传递给View. View是显示数据的模板 Url请求→Cont ...

  2. button按钮不能点击鼠标形状css 代码,禁用button按钮时鼠标形状

    cursor:not-allowed;

  3. .net中单选按钮RadioButton,RadioButtonList 以及纯Html中radio的用法实例?

    .net中单选按钮RadioButton,RadioButtonList 以及纯Html中radio的用法,区别? RadioButton实例及说明: <asp:RadioButton ID=& ...

  4. Glide加载图片缓存库出现——You cannot start a load for a destroyed activity

    请记住一句话:不要再非主线程里面使用Glide加载图片,如果真的使用了,请把context参数换成getApplicationContext.

  5. 脚本学习 game.sh

    #!/bin/bash #game_error.sh ]]; then #$#表示参数个数 -lt小于 echo "Usage: game_error.sh time[20170710]&q ...

  6. android checkbox样式

    1. 首先要导入你准备用作CheckBox选中和补选中状态的两图片到res的drawable中,如checkbox_checked.png,checkbox_normal.png: 2. 在res/d ...

  7. 深入理解 Neutron -- OpenStack 网络实现(3):VXLAN 模式

    问题导读1.VXLAN 模式下,网络的架构跟 GRE 模式类似,他们的不同点在什么地方?2.网络节点的作用是什么?3.tap-xxx.qr-xxx是指什么? 接上篇:深入理解 Neutron -- O ...

  8. 【分享】Linux(Ubuntu)下如何自己编译JDK

    最近在看<深入理解 Java 虚拟机>这本书.里面提到了如何手动编译JDK,于是就试了试. 在编译的过程中,遇到了一些问题.上网一搜,发现了一篇很好的文章,跟大家分享一下:ubuntu 1 ...

  9. Jenkins常见任务配置

    一.pmd 二.checkstyle -DskipTests=true clean compile package -Dcheckstyle.config.location="custom- ...

  10. Artech的MVC4框架学习——第二章URL路由

    总结:HttpModule 和HttpHandler是Asp.net管道的两个重要组件.请求最终处理通过HttpHandler完成.MVC就是通过名为MvcHandler自定义HttpHandler现 ...