MySQL 同一实例不同库之间表同步(Otter 应用)
1 需求
- 在同一台服务器同一MySQL实例中的source库和target库都存在student表。如果source库中该表发生增删改操作时,也需要体现到target库的student表中;

2 解决方案
2.1 方案一:使用Shell脚本实现
- 由于自己缺少使用Shell编程的经验,此路暂时不通;
- shell脚本实现Mysql主从数据库
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 工作原理(摘自官网):

原理描述:
- 基于Canal开源产品,获取数据库增量日志数据;
- 典型管理系统架构,manager(web管理)+node(工作节点)
a. manager运行时推送同步配置到node节点;
b. node 节点将同步状态反馈到manager上;- 基于zookeeper,解决分布式状态调度,允许多node节点之间协同工作;
2.3.2 环境准备
- MySQL 5.7.24
- JDK 1.8
- otter-manager-4.2.17
- otter-node-4.2.17
- zookeeper-3.4.10
- Aria2-1.34.0
2.3.3 环境搭建及参数配置
- otter 配置单向同步步骤:
- MySQL 开启binlog;
- 配置zookeeper参数;
- 配置manager参数;
- 配置node参数;
- 参考链接:
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,如果设置成功,会有如下输出:
- 通过MySQL客户端:

3.2 初始化Otter系统表

3.3 manager数据表配置说明:

参考资料:
MySQL 同一实例不同库之间表同步(Otter 应用)的更多相关文章
- mysql语句1-创建库和表
一.DDL数据定义语言 就是对书库内部的对象进行创建.删除.修改等操作的语言. 关键字:create drop alter 1.连接数据库 mysql -u用户名 -p -h指定主机(不指定默认是 ...
- Logstash学习之路(四)使用Logstash将mysql数据导入elasticsearch(单表同步、多表同步、全量同步、增量同步)
一.使用Logstash将mysql数据导入elasticsearch 1.在mysql中准备数据: mysql> show tables; +----------------+ | Table ...
- Mysql基础(四):库、表、记录的详细操作、单表查询
目录 数据库03 /库.表.记录的详细操作.单表查询 1. 库的详细操作 3. 表的详细操作 4. 行(记录)的详细操作 5. 单表查询 数据库03 /库.表.记录的详细操作.单表查询 1. 库的详细 ...
- 【GoldenGate】使用OGG,两个Oracle库之间单向同步数据
************************************************************************ ****原文:blog.csdn.net/clark_ ...
- mysql单实例多库与多实例单库
一.单实例多库: 一个mysql实例,创建多个数据目录. 规划: 实例路径:/usr/local/mysql 数据目录路径: (1)/usr/local/mysql/data (2)/usr/loca ...
- Mysql基础语法-建库-建表(增、删、改、查、表关联及子查询)
前言:MySQL是一个数据库管理系统,也是一个关系数据库.它是由Oracle支持的开源软件,MySQL可以在各种平台上运行UNIX,Linux,Windows等.可以将其安装在服务器甚至桌面系统上. ...
- mysql 主从单库单表同步 binlog-do-db replicate-do-db
方案一:两边做主从. SELECT SUM(DATA_LENGTH)+SUM(INDEX_LENGTH) FROM information_schema.tables WHERE TABLE_SCHE ...
- MysQL使用一创建库与表
数据库简介 人类在进化的过程中,创造了数字.文字.符号等来进行数据的记录,但是承受着认知能力和创造能力的提升,数据量越来越大,对于数据的记录和准确查找,成为了一个重大难题 计算机诞生后,数据开始在计算 ...
- MySQL 多实例删库脚本
DB版本:5.5.14 OS:CentOS 6.3 在测试环境中,在一台服务器上创建多个实例,在每个实例中一个一个删库比较麻烦,因此用下面脚本,可以直接删除所有库,除了系统库以外: #!/bin/ba ...
随机推荐
- 【RF库XML测试】parse xml
Name:Parse XmlSource:XML <test library>Arguments:[ source | keep_clark_notation=False ]Parses ...
- Linux 日常运维
查看用户信息:w 查看系统负载:uptime 查看系统资源使用情况:vmstat 查看进程动态:top 查看网卡流量:sar 查看网卡流量:nload 查看磁盘读写:iostat 查看磁盘读写:iot ...
- Nginx 访问日志
配置访问日志: [root@localhost ~]$ cat /usr/local/nginx/conf/nginx.conf http { log_format main '$remote_add ...
- Linux man 命令
man命令可以用来查看Linux命令的帮助信息 .配置文件的帮助信息等等,通过不同的代号可以查看不同的帮助信息: 代号 含义 1 查看Linux命令的帮助信息(默认) 2 查看内核提供的函数的帮助信息 ...
- Jar命令
JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包;当然也是有区别的,JAR包中有一个META-INF\MANIFEST.MF文件,当你打成JAR包时,它会自动生成. 一.ja ...
- ScaleType属性
FIT_CENTER 把原图按照比例放大缩小到ImageView的高度,显示在ImageView的center(中部/居中显示). 1 2 CENTER_CROP 会拉伸图片以原图填满ImageV ...
- Fragment切换问题
片断一: add hind @Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) { switch (check ...
- React Native(十二)——嵌套WebView中的返回处理
情景描述: 从一个名为"My"的组件点击进去,进入一个列表(该列表内容为webView中内容),其中一个webView也可以点击进入详情页(也为webView),但是如果对导航栏不 ...
- iOS - 直播总结(理论到实践)
一.直播原理及流程 1.一个完整直播app原理 直播原理:把主播录制的视频,推送到服务器,在由服务器分发给观众观看. 直播环节:推流端(采集.美颜处理.编码.推流).服务端处理(转码.录制.截图.鉴黄 ...
- 基于ThinkPHP3.23的简单ajax登陆案例
本文将给小伙伴们做一个基于ThinkPHP3.2.的简单ajax登陆demo.闲话不多说.直接进入正文吧. 可能有些小伙伴认为TP自带的跳转页面挺好,但是站在网站安全的角度来说,我们不应该让会员看到任 ...